Если создание вашего собственного класса памяти при помощи свойств в Словаре 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
. Для получения дополнительной информации смотрите, Создают Класс Пользовательских атрибутов для Пользовательского Класса памяти.
На Общих панелях и панелях Комментариев, задайте значения для остающихся свойств.