В команде или крупной организации, чтобы позволить многому пользователю сгенерировать код, который соответствует стандартной архитектуре, можно создать и совместно использовать определения генерации кода, такие как классы памяти, с теми пользователями. При конфигурировании настроек генерации кода для различных моделей пользователи могут применить определения данным и функциональным элементам в моделях, генерируя стандартизированный код.
Чтобы управлять внешним видом по умолчанию элементов модели в сгенерированном коде, вы применяете настройки к категориям элементов, таким как данные и функции, при помощи редактора Отображений Кода. Для получения дополнительной информации смотрите, Конфигурируют генерацию кода 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 и Управлении и Функционального Размещения в Памяти Вставкой Прагм.
При определении класса памяти во Встроенном Словаре CoderEmbedded 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 (см., Обращаются к Определениям Генерации кода в Пакете), когда вы вносите изменения в определение кода (включая к свойствам кроме имени) или удаляете определение:
Перезагрузите пакет. В каждом словаре нажмите кнопку Manage Packages, чтобы открыть диалоговое окно Manage Packages. От Select package выпадающий список выберите пакет. Используйте кнопки, чтобы разгрузить, и затем перезагрузить пакет.
Перезагрузка пакета повреждает точки использования в редакторе Отображений Кода для затронутых моделей, которые необходимо зафиксировать вручную.
Зафиксируйте точки использования в редакторе Отображений Кода для затронутых моделей. Чтобы записать скрипт, который фиксирует редактор Отображений Кода точки использования, смотрите, Конфигурируют Данные По умолчанию и Функциональную Генерацию кода Программно.
Если вы создаете определение кода в Словаре Embedded Coder:
Изменять название определения кода не повреждает точки использования. Simulink распространяет новое имя к точкам использования.
Удаление определения кода повреждает точки использования в редакторе Отображений Кода для затронутых моделей. В редакторе списки отображают Unresolved
. Зафиксируйте эти, использование указывает вручную. Чтобы зафиксировать их путем записи скрипта, смотрите, Конфигурируют Данные По умолчанию и Функциональную Генерацию кода Программно.
Вы не можете создать определения генерации кода программно. Однако для Словарных определений Embedded Coder, можно удалить, скопировать и переместить определения кода между моделями и словарями данных при помощи этих функций:
Код, сопоставляющий редактор | Словарь Embedded Coder