exponenta event banner

Точное представление данных путем записи кода TLC для класса хранения

Если создание собственного класса хранения с помощью свойств словаря Embedded Coder Dictionary или Custom Storage Class Designer не соответствует вашим требованиям к управлению представлением данных в сгенерированном коде, можно написать код TLC, который явно управляет влиянием класса хранения на код. Например, чтобы создать класс хранения, который дает произвольно вложенные структуры, необходимо написать код TLC. В конструкторе пользовательских классов хранения для этих расширенных классов хранения установлено значение Type Other. Невозможно создать такой класс хранения в словаре Embedded Coder Dictionary, поэтому для использования класса хранения в редакторе сопоставлений кодов необходимо настроить словарь модели для обращения к пакету, содержащему класс хранения, как описано в разделе См. Определения генерации кода в пакете.

Пример см. в разделе Создание кода, удаляющего данные из литерального адреса памяти. Общие сведения о коде TLC см. в разделе Зачем использовать компилятор целевого языка?.

Создать класс пользовательских атрибутов для класса хранения

Как описано в разделе Разрешить пользователям класса хранения указывать значение свойства, свойства экземпляра позволяют пользователям класса хранения управлять влиянием класса хранения на каждый элемент данных. Например, встроенный класс хранения ExportToFile имеет несколько специфичных для экземпляра свойств, таких как Header file и Definition file.

При создании класса хранения с типом, равным Other, чтобы добавить собственные свойства экземпляра, которые не встроены в Custom Storage Class Designer, создайте класс пользовательских атрибутов для пакета. Класс пользовательских атрибутов - это класс MATLAB ®, создаваемый как подкласс Simulink.CustomStorageClassAttributes. Каждое свойство, добавляемое в класс пользовательских атрибутов, отображается пользователю класса хранения как свойство, зависящее от экземпляра.

Чтобы создать класс пользовательских атрибутов, см. раздел Определение классов данных.

Запись кода TLC для класса хранения

Чтобы управлять эффектом класса хранения, напишите код TLC, который указывает код, создаваемый для каждого элемента данных.

  1. В папке пакета (например, +myPackage), создайте tlc папка.

  2. Копирование шаблона TLC, например TEMPLATE_v2.tlc из папки matlabroot/toolbox/rtw/targets/ecoder/csc_templates (открыто) в ваш tlc папка.

  3. Напишите код TLC, следуя комментариям в файле шаблона. В комментариях описывается, как указать, например, как созданный код объявляет, определяет и обращается (по значению или по ссылке) к каждому элементу данных.

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

Чтобы создать класс хранения в пакете, откройте Custom Storage Class Designer в расширенном режиме.

  1. В командной строке введите:

    cscdesigner -advanced
  2. Выберите пакет и создайте класс хранения.

  3. Для класса хранения установите для параметра Тип значение Other. На панели Другие атрибуты (Other Attributes) укажите имя файла TLC и имя класса пользовательских атрибутов.

  4. Задайте свойства на панели Другие атрибуты (Other Attributes).

    • Группируется: выберите этот параметр, если предполагается объединить несколько элементов данных в одном объекте в созданном коде. Например, встроенные классы хранения BitField и Struct сгруппированы, поскольку они могут объединять несколько элементов данных в одну структурную переменную.

    • Имя файла TLC: Введите имя файла TLC. Конструктор классов настраиваемого хранилища предполагает, что файл существует в пакете tlc , поэтому укажите только имя файла, а не путь к файлу.

    • Имя класса атрибутов CSC (необязательно) Если создан пользовательский класс атрибутов, введите полное имя класса, включая имя пакета. Например, укажите myPackage.myCustomAttsClass. Дополнительные сведения см. в разделе Создание класса пользовательских атрибутов для класса хранения.

  5. На панелях «Общие» и «Комментарии» задайте значения для остальных свойств.

Чтобы применить класс хранения к объектам данных, создайте объекты данных из пакета и настройте объекты для использования классом хранения. Дополнительные сведения о применении пользовательского класса хранения к объектам данных см. в разделе Применение класса хранения. Чтобы применить класс хранения в модели с помощью редактора сопоставления кодов, необходимо настроить словарь встроенного кодера, используемый моделью для ссылки на пакет. При обращении к пакету класс хранения появляется в словаре встроенного кодера и становится доступным в редакторе сопоставлений кода. Дополнительные сведения см. в разделе Определения генерации кода в пакете.

Связанные темы