Если создание вашего собственного класса памяти при помощи свойств в Словаре Embedded Coder или Custom Storage Class Designer не удовлетворяет ваши требования для управления представлением данных в сгенерированном коде, можно записать код TLC, который явным образом управляет влиянием, которое класс памяти оказывает на код. Например, чтобы создать класс памяти, который дает к произвольно вложенным структурам, необходимо записать код TLC. В Custom Storage Class Designer этим усовершенствованным классам памяти установили Type на Other
. Вы не можете создать такой класс памяти в Словаре Embedded Coder, таким образом, вы не можете использовать класс памяти в качестве настройки генерации кода по умолчанию в Коде, Сопоставляющем Редактор.
Для примера смотрите, Генерируют Код, Который Разыменовывает Данные из Литерального Адреса памяти. Для получения общей информации о коде TLC, смотрите Почему Использование Компилятор Выходного языка? (Simulink Coder).
Как описано в Позволяют Пользователям Класса памяти Задавать Значение свойства, специфичные для экземпляра свойства позволяют пользователям класса памяти управлять влиянием, которое класс памяти оказывает на каждый элемент данных. Например, встроенный класс памяти ExportToFile
имеет несколько специфичных для экземпляра свойств, таких как Header file и Definition file.
Когда вы создаете класс памяти с набором Type к Other
, чтобы добавить ваши собственные специфичные для экземпляра свойства, которые не встроены в Custom Storage Class Designer, создайте custom attributes class для своего пакета. Класс пользовательских атрибутов является классом MATLAB®, который вы создаете как подкласс Simulink.CustomStorageClassAttributes
. Каждое свойство, которое вы добавляете в свой класс пользовательских атрибутов, появляется пользователю класса памяти как специфичное для экземпляра свойство.
Чтобы создать ваш класс пользовательских атрибутов, смотрите, Задают Классы Данных (Simulink).
Чтобы управлять эффектом вашего класса памяти, запишите код TLC, который задает код, чтобы сгенерировать для каждого элемента данных.
В вашей папке пакета (например, +myPackage
), создайте tlc
папка.
Скопируйте шаблон TLC, такой как TEMPLATE_v1.tlc
от папки matlabroot/toolbox/rtw/targets/ecoder/csc_templates
(открытый) в ваш tlc
папка.
Запишите свой код TLC, после комментариев в файле шаблона. Комментарии описывают, как задать, например, как сгенерированный код объявляет, задает, и доступы (значением или ссылкой) каждый элемент данных.
Чтобы создать ваш класс памяти в вашем пакете, вы открываете Custom Storage Class Designer в усовершенствованном режиме.
В командной строке, введите:
cscdesigner -advanced
Выберите свой пакет и создайте класс памяти.
Для класса памяти, набор Type к Other
. В Другой панели Атрибутов задайте имя своего файла TLC и имя вашего класса пользовательских атрибутов.
Установите свойства на Другой панели Атрибутов.
Сгруппирован: Выберите эту опцию, если вы намереваетесь объединить несколько элементов данных в одну сущность в сгенерированном коде. Например, встроенные классы памяти BitField
и Struct
сгруппированы, потому что они могут агрегировать несколько элементов данных в одну переменную структуры.
Имя файла TLC: Введите имя своего файла TLC. Custom Storage Class Designer принимает, что файл существует в пакете tlc
папка, поэтому задайте только имя файла, не путь к файлу.
CSC приписывает имя класса: (дополнительный), Если вы создали класс пользовательских атрибутов, введите полное имя класса, включая имя пакета. Например, задайте myPackage.myCustomAttsClass
. Для получения дополнительной информации смотрите, Создают Класс Пользовательских атрибутов для Класса памяти.
На Общих панелях и панелях Комментариев, задайте значения для остающихся свойств.