Для настройки модели для генерации определенных конструкций C в сгенерированном коде доступно несколько стандартных методов. Используя блоки, S-функции, диаграммы Stateflow, блоки MATLAB Function, объекты данных и пользовательские классы памяти, можно сгенерировать конструкции C, такие как: типы данных, структуры, массивы, поток управления конструкции, функции, директивы препроцессора и указатели. Для начала см. Раздел «Подготовка модели для генерации кода».
Создайте псевдонимы типов данных путем генерации typedef
операторы.
Определение, инициализация и декларирование Параметра данных
Управляйте размещением файла объявления, определения и инициализации данных параметра.
Определение и декларирование сигнальных данных
Управляйте размещением файла объявления и определения данных о сигнале.
Создайте преобразование типа данных с помощью блока Data Type Conversion, Диаграммы Stateflow или Блока MATLAB function.
Применить const
и volatile
ключевые слова для глобальной переменной, которая представляет данные параметра.
Реляционные и логические операторы
Реализуйте реляционные и логические операторы, используя блоки Simulink, Диаграммы Stateflow и Блоки MATLAB function.
Выполните побитовые операции с помощью блока Bitwise Operator, диаграммы Stateflow или блока MATLAB Function.
Чтобы сгенерировать тип перечисленных данных, задайте класс перечисления в файле MATLAB.
Используйте блок Switch, диаграмму Stateflow или блок MATLAB Function, чтобы создать if-else
оператор в сгенерированном коде.
Используйте блок Switch Case или блок MATLAB Function, чтобы создать switch
оператор в сгенерированном коде.
Используйте блок For-Iterator Subsystem, Диаграмма Stateflow или блок MATLAB Function, чтобы создать for
цикл в сгенерированном коде.
Используйте блок White Iterator Subsystem, Диаграмма Stateflow или блок MATLAB Function, чтобы создать while
цикл в сгенерированном коде.
Используйте блок While Iterator Subsystem или Диаграмма Stateflow, чтобы создать do while
цикл в сгенерированном коде.
Чтобы сгенерировать вызов функции, добавьте подсистему, которая реализует операции, которые вы хотите.
Функциональное прототипирование
Создайте вызов функции с помощью графических функций или управления прототипом функции.
Интегрируйте унаследованные функции C в сгенерированный код либо путем создания S-функции, либо путем вызова внешней функции C.
Определения макросов (# define)
Сгенерируйте данные параметра как макрос с постоянными значениями.
Условные включения (# if/# endif)
Включите предварительные условия в свой сгенерированный код путем реализации вариантов блоков в вашей модели.
Создайте плоскую структуру или вложенные структуры, которые хранят данные о параметрах в сгенерированном коде.
Создайте плоскую структуру, которая содержит данные о сигнале в сгенерированном коде.
Создайте структуру, поля которой также являются структурами.
Сохраните логические данные в битовых полях в сгенерированном коде.
Создайте массив данных о параметрах в сгенерированном коде.
Создайте массив сигнальных данных в сгенерированном коде.
Сгенерируйте код, который получает доступ к данным из вашего рукописного кода через указатель.