Библиотека замещения кода регистра

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

Интерактивная разработка и загрузка файла регистрации

  1. В crtool выберите File > Generate registration file.

  2. В диалоговом окне Generate registration file укажите регистрационную информацию. Затем нажмите OK.

    ПараметрОписание
    Имя реестра (обязательно)Имя библиотеки замещения кода.
    Список таблиц (обязательно) Разделенный запятыми список одной или нескольких таблиц замещения кода, которые вы хотите найти в библиотеке. Задавать таблицы можно с помощью их имен (если они расположены на путь поиска файлов MATLAB), абсолютных путей или относительных путей.
    Базовый CRLПозволяет задавать иерархии библиотек. Укажите имя зарегистрированной библиотеки, которая будет служить основе для регистрируемой в данный момент библиотеки. Для примера библиотека устройств TI может быть основой для библиотеки C28x TI.
    Целевое HW-устройствоРазделенный запятыми список одного или нескольких аппаратных устройств, поддерживаемых этой библиотекой. Указать поддержку всех устройств со звездочкой (*).
    ОписаниеОписание назначения и содержимого библиотеки.
    Сгенерируйте спецификацию выравнивания данных Флаг, который включает выравнивание данных.
  3. Чтобы использовать библиотеку замены зарегистрированного кода, обновите текущий сеанс работы с MATLAB командой:

    >> sl_refresh_customizations

Программно разрабатывайте и загружайте файл регистрации

  1. Откройте файл функции MATLAB. В меню MATLAB выберите New > Function.

  2. Сохраните файл функции с именем rtwTargetInfo.m.

  3. Скопируйте и вставьте следующий код в файл, чтобы использовать его в качестве шаблона.

    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
    
  4. В шаблоне укажите следующую регистрационную информацию:

    ПараметрОписание
    Имя реестра (обязательно)Имя библиотеки замещения кода.
    Список таблиц (обязательно) Разделенный запятыми список одной или нескольких таблиц замещения кода, которые вы хотите найти в библиотеке. Задавать таблицы можно с помощью их имен (если они расположены на путь поиска файлов MATLAB), абсолютных путей или относительных путей.
    Базовый CRLПозволяет задавать иерархии библиотек. Укажите имя зарегистрированной библиотеки, которая будет служить основе для регистрируемой в данный момент библиотеки. Для примера библиотека устройств TI может быть основой для библиотеки C28x TI.
    Целевое HW-устройствоРазделенный запятыми список одного или нескольких аппаратных устройств, поддерживаемых этой библиотекой. Указать поддержку всех устройств со звездочкой (*).
    ОписаниеОписание назначения и содержимого библиотеки.
    Сгенерируйте спецификацию выравнивания данных Флаг, который включает выравнивание данных.
  5. Сохраните файл в пути MATLAB.

  6. Чтобы использовать библиотеку замены зарегистрированного кода, обновите текущий сеанс работы с 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

Похожие темы