exponenta event banner

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

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

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

  1. В диалоговом окне выберите «Файл» > «Создать файл регистрации».

  2. В диалоговом окне «Создание файла регистрации» укажите сведения о регистрации. Затем нажмите кнопку ОК.

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

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