Интеграция кода С с использованием блока MATLAB function

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

Вы можете вызвать внешний код С из Simulink® моделировать с использованием блока MATLAB Function. Следуйте этим шагам высокого уровня:

  1. Начните с существующего кода С, состоящего из источника (.c) и заголовок (.h) файлы.

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

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

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

  4. Протестируйте свою модель Simulink и убедитесь, что она работает правильно.

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

    Чтобы обусловить свой код, чтобы выполнить другие команды для симуляции и генерации кода, можно использовать 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. В Library Browser из User-Defined Functions добавьте в модель блок MATLAB Function и дважды кликните блок, чтобы открыть редактор.

  5. Введите код, который вызывает doubleIt программа:

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

  7. Подключите блок Отображения к порту выхода.

  8. В диалоговом окне Model Configuration Parameters откройте панель Simulation Target.

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

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

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

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

Эта процедура применяется только к симуляции.

Simulink генерирует код для блоков MATLAB Function и Stateflow® для симуляции модели. Когда вы вызываете внешний код С, используя блоки MATLAB Function или Stateflow, можно управлять определениями типов для импортированных шин и перечислениями в симуляции модели.

Simulink может сгенерировать определения типов, или можно предоставить заголовочный файл, содержащий определения типов. Управление этим поведением осуществляется с помощью флажка Generate typedefs for imported bus and enumeration types в диалоговом окне Model Configuration Parameters.

Чтобы включить пользовательский файл заголовка, определяющий типы перечисления и шины:

  1. Снимите флажок Generate typedefs for imported bus and enumeration types.

  2. Список файла заголовка на панели Simulation Target, в Header file текстовом поле.

Чтобы сконфигурировать Simulink, чтобы автоматически сгенерировать определения типов:

  1. Установите флажок Generate typedefs for imported bus and enumeration types.

  2. Не перечисляйте заголовочный файл, соответствующий шинам или перечислениям.

См. также

| | | | | | | |

Похожие примеры

Подробнее о