Укажите заменяющие отображения кода

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

Укажите заменяющую таблицу кода как заменяющую библиотеку кода:

  • В интерактивном режиме, при помощи Заменяющего Инструмента Кода

  • Программно, при помощи интерфейса программирования MATLAB®

Выберите подход для создания регистрационного файла

В следующей таблице перечислены ситуации, чтобы помочь вам решить, когда использовать интерактивный или программируемый подход к созданию регистрационного файла:

Если...Затем...
Регистрация заменяющей таблицы кода впервыеИспользуйте заменяющий инструмент кода.
Вы использовали Заменяющий Инструмент Кода, чтобы составить таблицуИспользуйте Заменяющий Инструмент Кода, чтобы быстро указать таблицу.
Замена быстрого прототипирования кодаИспользуйте Заменяющий Инструмент Кода, чтобы быстро сгенерировать, указать, и протестировать записи.
Создание регистрационного файла, чтобы использовать в качестве шаблона или отправной точки для определения подобных регистрационных файловИспользуйте Заменяющий Инструмент Кода, чтобы сгенерировать код, который можно скопировать и изменить.
Изменение существующих регистрационных файловИспользуйте редактора MATLAB, чтобы обновить регистрационный файл.
Определение нескольких заменяющих библиотек кода в одном регистрационном файлеИспользуйте редактора MATLAB, чтобы создать новое или расширить существующий регистрационный файл.
Определение заменяющей иерархии библиотеки кода в регистрационном файлеИспользуйте редактора MATLAB, чтобы создать новое или расширить существующий регистрационный файл.

Создайте регистрационный файл в интерактивном режиме с заменяющим инструментом кода

Инструмент Code Replacement обеспечивает быстрый, простой способ к вам создать регистрационный файл для заменяющей таблицы кода. Это идеально для начала работы, быстрого прототипирования и генерации регистрационного файла, который вы хотите использовать в качестве отправной точки для подобной регистрации.

  1. После того, как вы подтвердите и сохраните заменяющую таблицу кода, выберите File> Generate registration file, чтобы открыть диалоговое окно Generate registration file.

  2. Введите информацию о регистрации. Минимально, задайте:

    Для...Задать...
    Registry nameТекст, называющий заменяющую библиотеку кода. Например, Sin Function Example.
    Table list

    Текст, называющий одну или несколько заменяющих таблиц кода, чтобы включать в библиотеку. Задайте каждую таблицу как одно из следующего:

    • Имя табличного файла на пути поиска файлов MATLAB

    • Абсолютный путь к табличному файлу

    • Путь к табличному файлу относительно $(MATLAB_ROOT)

    Можно задать несколько таблиц. Если вы делаете, разделите табличные спецификации запятой. Например:

    crl_table_sinfcn, c:/work_crl/crl_table_muldiv

    Смотрите Регистрационные Файлы, Которые Задают Несколько Заменяющих Библиотек Кода для примеров каждого типа табличной спецификации.

    Опционально, можно задать:

    Для...Задать...
    DescriptionТекст, который описывает цель и содержимое библиотеки.
    Target HW deviceТекст, называющий одно или несколько аппаратных устройств заменяющие поддержки библиотеки кода. Разделите имена запятой. Чтобы поддержать все типы устройства, введите звездочку (*). Например, TI C28x, TI C62x.
    Base CRLТекст, называющий заменяющую библиотеку кода, что вы хотите служить основной библиотекой для библиотеки, которую вы указываете. Используйте это поле, чтобы задать иерархии библиотеки. Например, можно задать общий TI device library как основная библиотека для более определенной библиотеки устройства TI C28x.
    Generate data alignment specificationОтметьте, который включает спецификацию выравнивания данных.

Создайте регистрационный файл программно

Интерфейс программирования для создания регистрационного файла для заменяющей таблицы кода идеален для:

  • Изменение регистрационных файлов создается с Заменяющим Инструментом Кода

  • Тиражирование и изменение подобных регистрационных файлов

  • Определение нескольких заменяющих библиотек кода в одном регистрационном файле

Основной рабочий процесс для создания регистрационного файла программно состоит из следующих шагов:

  1. Задайте функцию rtwTargetInfo. Генератор кода распознает эту функцию файлом настройки. Функциональное определение должно включать, по крайней мере, следующее содержимое:

    function rtwTargetInfo(cm)
    
    cm.registerTargetInfo(@loc_register_crl);
    
    function this = loc_register_crl
    
    this(1) = RTW.TflRegistry;
    this(1).Name = 'crl-name';
    this(1).TableList = {'table',...};
    
    Для...Замена...
    this(1).Name = 'crl-name';crl-name с текстом, называющим заменяющую библиотеку кода. Например, Sin Function Example.
    this(1).TableList = {'table',...};

    table с текстом, который идентифицирует заменяющую таблицу кода, которая содержит ваши заменяющие записи кода. Задайте таблицу как одно из следующего:

    • Имя табличного файла на пути поиска файлов MATLAB

    • Абсолютный путь к табличному файлу

    • Путь к табличному файлу относительно $(MATLAB_ROOT)

    Можно задать несколько таблиц. Если вы делаете, разделите табличные спецификации запятыми.

    Опционально, можно задать:

    Для...Замена...
    this(1).Description = 'text'text с текстом, который описывает цель и содержимое библиотеки.
    this(1).TargetHWDeviceType = {'device-type',...}device-type с текстом, который называет аппаратное устройство заменяющими поддержками библиотеки кода. Можно задать несколько типов устройства. Отдельное устройство вводит с запятой. Например, TI C28x, TI C62x. Чтобы поддержать все типы устройства, введите звездочку (*).
    this(1).BaseTfl = 'base-lib'

    base-lib с текстом, который называет заменяющую библиотеку кода, что вы хотите служить основной библиотекой для библиотеки, которую вы указываете. Используйте это поле, чтобы задать иерархии библиотеки. Например, можно задать общую библиотеку TI device как основная библиотека для библиотеки TI C28x device.

    Смотрите Регистрационные Файлы, Которые Задают Заменяющие Иерархии Библиотеки Кода для примера.

    Например:

    function rtwTargetInfo(cm)
    
    cm.registerTargetInfo(@loc_register_crl);
    
    function this = loc_register_crl
    
    this(1) = RTW.TflRegistry;
    this(1).Name = 'Sin Function Example';
    this(1).TableList = {'crl_table_sinfcn'};
    this(1).TargetHWDeviceType = {'*'};
    this(1).Description = 'Example - sin function replacement';
    
  2. Сохраните файл с именем rtwTargetInfo.m.

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

Укажите заменяющую библиотеку кода

Прежде чем можно будет использовать заменяющие таблицы кода, заданные в регистрационном файле, обновить индивидуальные настройки Simulink® в текущем сеансе работы с MATLAB. Чтобы инициировать обновление, введите следующую команду:

sl_refresh_customizations

Укажите Библиотеку, которая Включает Несколько Заменяющих Таблиц Кода

Используйте интерфейс программирования, чтобы создать регистрационный файл, который задает заменяющую библиотеку кода, которая включает несколько заменяющих таблиц кода. Следующий пример задает библиотеку, которая включает несколько таблиц. Поля TableList задают таблицы, которые находятся в других местах. Таблицы находятся на пути поиска файлов MATLAB или в местоположениях, заданных с путем.

function rtwTargetInfo(cm)

cm.registerTargetInfo(@locCrlRegFcn);

function thisCrl = locCrlRegFcn

  % Register a code replacement library for use with model: rtwdemo_crladdsub
  thisCrl(1) = RTW.TflRegistry;
  thisCrl(1).Name = 'Addition & Subtraction Examples';
  thisCrl(1).Description = 'Example of addition/subtraction op replacement';
  thisCrl(1).TableList = {'crl_table_addsub'};
  thisCrl(1).TargetHWDeviceType = {'*'};

  % Register a code replacement library for use with model: rtwdemo_crlmuldiv
  thisCrl(2) = RTW.TflRegistry;
  thisCrl(2).Name = 'Multiplication & Division Examples';
  thisCrl(2).Description = 'Example of mult/div op repl for built-in integers';
  thisCrl(2).TableList = {'c:/work_crl/crl_table_muldiv'};
  thisCrl(2).TargetHWDeviceType = {'*'};

  % Register a code replacement library for use with model: rtwdemo_crlfixpt
  thisCrl(3) = RTW.TflRegistry;
  thisCrl(3).Name = 'Fixed-Point Examples';
  thisCrl(3).Description = 'Example of fixed-point operator replacement';
  thisCrl(3).TableList = {fullfile('$(MATLAB_ROOT)', ...
     'toolbox','rtw','rtwdemos','crl_demo','crl_table_fixpt')};
  thisCrl(3).TargetHWDeviceType = {'*'};

Регистрационные файлы, которые задают заменяющие иерархии библиотеки кода

Используя интерфейс программирования, можно организовать несколько заменяющих библиотек кода в иерархии. Следующий пример показывает регистрационный файл, который задает четыре заменяющих таблицы кода, организованные в иерархии четырех заменяющих библиотек кода. Таблицы включают записи, которые увеличиваются в специфике: общие записи, записи для устройств TI, записи для устройств TI C6xx и записи, характерные для устройства TI C67x.

function rtwTargetInfo(cm)

cm.registerTargetInfo(@locCrlRegFcn);

function thisCrl = locCrlRegFcn

  % Register a code replacement library that includes common entries
  thisCrl(1) = RTW.TflRegistry;
  thisCrl(1).Name = 'Common Replacements';
  thisCrl(1).Description = 'Common code replacement entries shared by other libraries';
  thisCrl(1).TableList = {'crl_table_general'};
  thisCrl(1).TargetHWDeviceType = {'*'};

  % Register a code replacement library for TI devices
  thisCrl(2) = RTW.TflRegistry;
  thisCrl(2).Name = 'TI Device Replacements';
  thisCrl(2).Description = 'Code replacement entries shared across TI devices';
  thisCrl(2).TableList = {'crl_table_TI_devices'};
  thisCrl(2).TargetHWDeviceType = {'TI C28x', 'TI C55x', 'TI C62x', 'TI C64x', 'TI 67x'};
  thisCrl(2).BaseTfl = 'Common Replacements';

  % Register a code replacement library for TI c6xx devices
  thisCrl(3) = RTW.TflRegistry;
  thisCrl(3).Name = 'TI c6xx Device Replacements';
  thisCrl(3).Description = 'Code replacement entries shared across TI C6xx devices';
  thisCrl(3).TableList = {'crl_table_TIC6xx_devices'};
  thisCrl(3).TargetHWDeviceType = {'TI C62x', 'TI C64x', 'TI 67x'};
  thisCrl(3).BaseTfl = 'TI Device Replacements';

  % Register a code replacement library for the TI c67x device
  thisCrl(4) = RTW.TflRegistry;
  thisCrl(4).Name = 'TI c67x Device Replacements';
  thisCrl(4).Description = 'Code replacement entries for the TI C67x device';
  thisCrl(4).TableList = {'crl_table_TIC67x_device'};
  thisCrl(4).TargetHWDeviceType = {'TI 67x'};
  thisCrl(4).BaseTfl = 'TI c6xx Device Replacements';

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

Похожие темы