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

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

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

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

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

    ПараметрОписание
    (Необходимое) имя реестраЗаменяющее имя библиотеки кода.
    (Необходимый) список таблиц Список, разделенный запятыми одной или нескольких заменяющих таблиц кода, которые вы хотите в библиотеке. Задайте таблицы при помощи любой их имена (если расположено на пути поиска файлов MATLAB), абсолютные пути или относительные пути.
    Основной CRLПозволяет вам задать иерархии библиотеки. Обеспечьте имя зарегистрированной библиотеки, чтобы служить основой для библиотеки, которую вы в настоящее время указываете. Например, библиотека устройства TI может быть основой для библиотеки TI C28x.
    Целевое устройство 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 может быть основой для библиотеки TI C28x.
    Целевое устройство 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

Похожие темы