Создайте библиотеку замещения кода путем определения в файле регистрации имени библиотеки, таблиц замещения кода и другой информации. После того, как вы определяете и регистрируете свою библиотеку, она становится доступной генератору кода для замены кода.
В crtool выберите File > Generate registration file.
В диалоговом окне Generate registration file укажите регистрационную информацию. Затем нажмите OK.
Параметр | Описание |
---|---|
Имя реестра (обязательно) | Имя библиотеки замещения кода. |
Список таблиц (обязательно) | Разделенный запятыми список одной или нескольких таблиц замещения кода, которые вы хотите найти в библиотеке. Задавать таблицы можно с помощью их имен (если они расположены на путь поиска файлов MATLAB), абсолютных путей или относительных путей. |
Базовый CRL | Позволяет задавать иерархии библиотек. Укажите имя зарегистрированной библиотеки, которая будет служить основе для регистрируемой в данный момент библиотеки. Для примера библиотека устройств TI может быть основой для библиотеки C28x TI. |
Целевое HW-устройство | Разделенный запятыми список одного или нескольких аппаратных устройств, поддерживаемых этой библиотекой. Указать поддержку всех устройств со звездочкой (*). |
Описание | Описание назначения и содержимого библиотеки. |
Сгенерируйте спецификацию выравнивания данных | Флаг, который включает выравнивание данных. |
Чтобы использовать библиотеку замены зарегистрированного кода, обновите текущий сеанс работы с MATLAB командой:
>> sl_refresh_customizations
Откройте файл функции MATLAB. В меню MATLAB выберите New > Function.
Сохраните файл функции с именем rtwTargetInfo.m
.
Скопируйте и вставьте следующий код в файл, чтобы использовать его в качестве шаблона.
function rtwTargetInfo(cm) cm.registerTargetInfo(@loc_register_crl); end function this = loc_register_crl this(1) = RTW.TflRegistry; %instantiates a registration entry this(1).Name = 'Example Code Replacement Library'; this(1).TableList = {'example_code_replacement_table.m'}; this(1).TargetHWDeviceType = {'*'}; this(1).Description = 'This registers an example library'; end
В шаблоне укажите следующую регистрационную информацию:
Параметр | Описание |
---|---|
Имя реестра (обязательно) | Имя библиотеки замещения кода. |
Список таблиц (обязательно) | Разделенный запятыми список одной или нескольких таблиц замещения кода, которые вы хотите найти в библиотеке. Задавать таблицы можно с помощью их имен (если они расположены на путь поиска файлов MATLAB), абсолютных путей или относительных путей. |
Базовый CRL | Позволяет задавать иерархии библиотек. Укажите имя зарегистрированной библиотеки, которая будет служить основе для регистрируемой в данный момент библиотеки. Для примера библиотека устройств TI может быть основой для библиотеки C28x TI. |
Целевое HW-устройство | Разделенный запятыми список одного или нескольких аппаратных устройств, поддерживаемых этой библиотекой. Указать поддержку всех устройств со звездочкой (*). |
Описание | Описание назначения и содержимого библиотеки. |
Сгенерируйте спецификацию выравнивания данных | Флаг, который включает выравнивание данных. |
Сохраните файл в пути MATLAB.
Чтобы использовать библиотеку замены зарегистрированного кода, обновите текущий сеанс работы с MATLAB командой:
>> sl_refresh_customizations
Зарегистрируйте одну библиотеку замещения кода
function rtwTargetInfo(cm) cm.registerTargetInfo(@loc_register_crl); end function this = loc_register_crl this(1) = RTW.TflRegistry; %instantiates a registration entry this(1).Name = 'Example Code Replacement Library'; this(1).TableList = {'example_code_replacement_table.m'}; this(1).TargetHWDeviceType = {'*'}; this(1).Description = 'This registers an example library'; end
Зарегистрируйте несколько библиотек замещения кода
function rtwTargetInfo(cm) cm.registerTargetInfo(@loc_register_crl); end function thisCRL = loc_register_crl % 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 = {'*'}; end
Зарегистрируйте иерархию замещения кода
function rtwTargetInfo(cm) cm.registerTargetInfo(@loc_register_crl); end function thisCRL = loc_register_crl % 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(1).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'}; % 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'}; end