Задайте классы памяти, разделы памяти и шаблоны функций для программной архитектуры

В команде или крупной организации, чтобы позволить многому пользователю сгенерировать код, который соответствует стандартной архитектуре, можно создать и совместно использовать определения генерации кода, такие как классы памяти, с теми пользователями. При конфигурировании настроек генерации кода для различных моделей пользователи могут применить определения данным и функциональным элементам в моделях, генерируя стандартизированный код.

Создайте определения кода для использования в качестве настроек генерации кода по умолчанию

Чтобы управлять внешним видом по умолчанию элементов модели в сгенерированном коде, вы применяете настройки к категориям элементов, таким как данные и функции, при помощи редактора Отображений Кода. Для получения дополнительной информации смотрите, Конфигурируют генерацию кода C По умолчанию для Категорий Данных модели и Функций.

Чтобы создать определения, которые вы и другие пользователи можете использовать в редакторе Отображений Кода, используйте Словарь Embedded Coder.

Когда вы создаете определения в Словаре Embedded Coder, необходимо решить, где сохранить определения.

  • Если вы хотите использовать определения только в одной модели, создайте определения в Словаре Embedded Coder модели.

  • Если вы хотите использовать определения в многоуровневых моделях, включая модели в иерархии модели - ссылки, сохраните определения в Словаре Embedded Coder словаря данных Simulink®. Для получения общей информации о словарях данных, смотрите то, Что Словарь Данных? (Simulink).

Чтобы использовать Словарь Embedded Coder, и для ограничений относительно определений генерации кода в Словаре Embedded Coder, см. Словарь Embedded Coder.

Создайте определения кода, чтобы заменить настройки по умолчанию

Чтобы заменить настройки по умолчанию, которые вы задаете в редакторе Отображений Кода, вы применяете настройки генерации кода к отдельным элементам модели при помощи других инструментов, таких как Model Data Editor и Property Inspector. Для получения общей информации смотрите Среду для Конфигурирования Данных модели и Функций для Генерации кода.

Чтобы создать определения кода, которые можно применить через эти другие инструменты, используйте Custom Storage Class Designer. Можно задать разделы storage classes и memory, которые можно применить только к элементам данных. Для получения дополнительной информации смотрите, Создают Классы памяти при помощи Данных о Custom Storage Class Designer и Управлении и Функционального Размещения в Памяти Вставкой Прагм.

Ограничьте использование отображений класса памяти кода

При определении класса памяти в Словаре Embedded Coder можно задать, могут ли пользователи сопоставить класс памяти с параметрами, сигналами, или параметрами и сигналами. Чтобы ограничить использование класса памяти, свойство Data Initialization должно быть установлено в None. Затем в Property Inspector, под Allowed Usage, выбирают Parameters, Signals, или Parameters и Signals. Для получения дополнительной информации смотрите Embedded Coder Dictionary.

Постарайтесь не обеспечивать дублирующиеся определения в пакетах и словари

Если вы хотите использовать то же определение генерации кода в качестве настройки по умолчанию и для прямого приложения к отдельным элементам модели, вы не должны хранить одну копию определения в Словаре Embedded Coder и другую копию в пакете. Вместо этого сохраните определение в пакете (при помощи Custom Storage Class Designer). Затем сконфигурируйте один или несколько Словарей Embedded Coder, чтобы обратиться к определению в пакете. С этим методом, когда это необходимо, чтобы внести изменения в определение, вы вносите изменения только в одном месте, пакете.

Однако, если вы создаете класс памяти при помощи Custom Storage Class Designer и устанавливаете Type на FlatStructure, как описано в Генерируют Структурированные данные, или к Other, как описано в Точно Представлении данных Управления путем Записи Кода TLC для Класса памяти вы не можете сконфигурировать Словарь Embedded Coder, чтобы относиться к пакету. Поэтому вы не можете использовать класс памяти в редакторе Отображений Кода.

Чтобы создать определение генерации кода в пакете при помощи Custom Storage Class Designer, смотрите, Создают Классы памяти при помощи Custom Storage Class Designer. Затем чтобы сконфигурировать Словарь Embedded Coder, чтобы относиться к пакету, смотрите, Обращаются к Определениям Генерации кода в Пакете.

Разверните определения генерации кода пользователям

В крупной организации с многоуровневыми моделями и пользователями, можно совместно использовать определения генерации кода путем хранения их во взаимно доступном месте. Процесс совместного использования определений кода называется deployment. Для получения дополнительной информации смотрите, Развертывают Определения Генерации кода.

Обеспечьте определения генерации кода

В модели вы применяете определение кода элементу модели путем выбора имени определения из списка, например, в Model Data Editor или в редакторе Отображений Кода. Кроме того, можно сопоставить раздел memory с классом памяти или функциональным шаблоном настройки при помощи списка в Custom Storage Class Designer или в Словаре Embedded Coder.

В зависимости от места хранения определения кода, изменяясь или удаляя определение может повредить эти точки использования, требуя, чтобы вы приняли меры.

Определения пакета

Если вы создаете определение кода в пакете, изменять название или удаление определения могут повредить точки использования, которые необходимо зафиксировать вручную.

  • Чтобы зафиксировать точки использования для отдельных элементов данных в модели, опционально, можно записать скрипт. Смотрите, что интерактивные и программируемые примеры в Применяют Встроенные и Индивидуально настраиваемые Классы памяти к Элементам данных.

  • Чтобы зафиксировать точки использования в пакете (например, когда вы меняете имя раздела memory, который использует класс памяти), используйте Custom Storage Class Designer. Вы не можете записать скрипт.

Если вы загружаете пакет в Словари Embedded Coder (см., Обращаются к Определениям Генерации кода в Пакете), когда вы вносите изменения в определение кода (включая к свойствам кроме имени) или удаляете определение:

  1. Перезагрузите пакет. В каждом словаре нажмите кнопку Manage Packages, чтобы открыть диалоговое окно Manage Packages. От Select package выпадающий список выберите пакет. Используйте кнопки, чтобы разгрузить, и затем перезагрузить пакет.

    Перезагрузка пакета повреждает точки использования в редакторе Отображений Кода для затронутых моделей, которые необходимо зафиксировать вручную.

  2. Зафиксируйте точки использования в редакторе Отображений Кода для затронутых моделей. Чтобы записать скрипт, который фиксирует редактор Отображений Кода точки использования, смотрите, Конфигурируют программно Данные По умолчанию и Функциональную Генерацию кода.

Словарные определения Embedded Coder

Если вы создаете определение кода в Словаре Embedded Coder:

  • Изменять название определения кода не повреждает точки использования. Simulink распространяет новое имя к точкам использования.

  • Удаление определения кода повреждает точки использования в редакторе Отображений Кода для затронутых моделей. В редакторе списки отображают Unresolved. Зафиксируйте эти, использование указывает вручную. Чтобы зафиксировать их путем записи скрипта, смотрите, Конфигурируют программно Данные По умолчанию и Функциональную Генерацию кода.

Взаимодействуйте с определениями генерации кода программно

Можно создать и взаимодействовать с определениями кода при помощи API Словаря Embedded Coder.

  1. Представляйте Словарь Embedded Coder при помощи coder.Dictionary объект. Используйте объект получить доступ к разделам словаря: Классы памяти, Разделы Памяти и Функциональные Шаблоны настройки. Если у вас есть пакет определений кода, используйте coder.Dictionary возразите, чтобы загрузить и обновить пакет в словаре.

  2. Представляйте раздел словаря при помощи coder.dictionary.Section объект. Используйте раздел для определений кода доступа.

  3. Представляйте определение кода при помощи coder.dictionary.Entry объект. Используйте запись, чтобы взаимодействовать с определением кода и его свойствами.

Можно также использовать функции, такие как coder.dictionary.copy и coder.dictionary.move выполнять операции на Словарях Embedded Coder. Для получения дополнительной информации смотрите, Конфигурируют программно Определения Кода.

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

|

Похожие темы