Интегрируйте код С при помощи блока MATLAB function

Если у вас есть код С, который вы хотите использовать в своем Simulink® модель, можно вызвать внешний код С к модели с помощью блока MATLAB Function. блоки MATLAB Function вызывают код С с помощью MATLAB® команды. Можно также сгенерировать код из моделей с блоками MATLAB Function, которые вызывают внешний код С.

Вызовите код С из модели Simulink

Чтобы вызвать внешний код С в модели Simulink, выполните эти шаги:

  1. Идентифицируйте источник (.c) и заголовок (.h) файлы, которые содержат код С, который вы хотите использовать в своей модели.

  2. Вставьте блок MATLAB Function в свою модель.

  3. В блоке MATLAB Function используйте coder.ceval функционируйте, чтобы вызвать код С. Чтобы передать данные ссылкой, использовать coder.ref, coder.rref, или coder.wref.

  4. Задайте исходные и заголовочные файлы C в панели Simulation Target окна Configuration Parameters. Включайте заголовочный файл с помощью двойных цитат, например, #include "program.h". Если необходимо получить доступ к исходным и заголовочным файлам C вне рабочей папки, перечислите путь в панели Simulation Target в текстовом поле Include Directories.

    В качестве альтернативы используйте coder.cinclude и coder.updateBuildInfo функции, чтобы задать исходные и заголовочные файлы в вашем коде MATLAB. Чтобы разработать интерфейс к внешнему коду, можно использовать coder.ExternalDependency класс. Чтобы видеть, какой рабочий процесс поддерживается, см. пользовательский код Импорта.

  5. Протестируйте свою модель Simulink и гарантируйте, что она функционирует правильно.

  6. Если у вас есть лицензия Simulink Coder™, можно сгенерировать код для целей. Чтобы использовать те же исходные и заголовочные файлы для генерации кода, откройте Параметры конфигурации, перейдите к Code Generation> панель Custom Code и включите Use the same custom code settings as Simulation Target. Можно также задать другой источник и заголовочные файлы.

    К conditionalize ваш код, чтобы выполнить другие команды для симуляции и генерации кода, можно использовать coder.target функция.

Использование coder.ceval в примере блок MATLAB Function

В этом примере показано, как вызвать простую программу C doubleIt от блока MATLAB Function.

  1. Создайте исходный файл doubleIt.c в вашей текущей рабочей папке.

    #include "doubleIt.h"
    
    double doubleIt(double u)
    {
         return(u*2.0);
    }
    
  2. Создайте заголовочный файл doubleIt.h в вашей текущей рабочей папке.

    #ifndef MYFN
    #define MYFN
    
    double doubleIt(double u);
    
    #endif
    
  3. Создайте новую модель Simulink. Сохраните его как myModel.

  4. В Браузере Библиотеки перейдите к библиотеке Simulink> User-Defined Functions и добавьте блок MATLAB Function в модель.

  5. Дважды кликните блок, чтобы открыть MATLAB Function Block Editor. Введите код, который вызывает doubleIt программа:

    function y = callingDoubleIt(u)
    
    y = 0.0;
    y = coder.ceval('doubleIt',u);
    
  6. Соедините блок Constant, который имеет значение 3.5 к входному порту блока MATLAB Function.

  7. Соедините блок Display с выходным портом.

    This image shows a MATLAB Function block set to output to a Display block. The MATLAB Function uses a constant block with a value of 3.5 as an input.

  8. Откройте окно Configuration Parameters и перейдите к панели Simulation Target.

  9. В разделе Insert custom C code in generated выберите Header file и введите #include "doubleIt.h".

  10. В разделе Additional build information выберите Source files, введите doubleIt.c, и нажмите OK.

    This image shows the Simulation Target pane. The text #include "doubleIt.h" has been included in the Header file section.

  11. Запустите симуляцию. Значение 7 появляется в блоке Display.

Управляйте импортированными определениями шины и перечисляемого типа

Когда вы вызываете внешний код С при помощи блоков MATLAB Function или Stateflow®, можно управлять определениями типа для импортированных шин и перечислений в модели. Simulink может сгенерировать определения типа для вас, или можно предоставить заголовочный файл, содержащий определения типа. Можно управлять этим поведением путем переключения параметра Generate typedefs for imported bus and enumeration types. Чтобы найти этот параметр, откройте окно Configuration Parameters, перейдите к панели Simulation Target и расширьте раздел Advanced parameters.

Чтобы сконфигурировать Simulink, чтобы автоматически сгенерировать определения типа, включите Generate typedefs for imported bus and enumeration types. Чтобы включать пользовательский заголовочный файл, который задает перечисление и типы шины, очистите Generate typedefs for imported bus and enumeration types и перечислите заголовочный файл в текстовом поле Header file.

Смотрите также

| | | | | | | |

Связанные примеры

Больше о