exponenta event banner

Покрытие кода TLC для поддержки отладки

tlcdebug Обзор учебного пособия по выполнению

Цель: Научитесь использовать статистику покрытия TLC, чтобы помочь идентифицировать ошибки в коде TLC.

Папка: matlabroot/toolbox/rtw/rtwdemos/tlctutorial/tlcdebug (открыто)

В этом учебном пособии описывается, как определить, выполняется ли код TLC в соответствии с ожиданиями. Здесь используется та же модель, что и в предыдущем учебном пособии. Поскольку основное внимание уделяется пониманию потока управления при обработке файлов TLC, нет необходимости компилировать и выполнять автономную модель только для просмотра кода. Учебник продолжается следующим образом:

  1. Начало работы - причины и способы анализа покрытия TLC

  2. Открытие модели и создание кода - чтение файла журнала покрытия

Начало

Панель «Создание кода» > «Отладка» предоставляет опцию «Начать покрытие TLC» при создании кода. Выбор этого параметра приводит к созданию списка, в котором указывается, сколько раз каждая строка исходного файла TLC выполнялась во время создания кода. Объявление о товаре, name.log (где name является именем анализируемого файла TLC), помещается в папку сборки.

Примечание

Файл журнала для каждого .tlc вызванный или включенный файл создается в папке построения. Сосредоточиться на timesN.log.

Открытие модели и создание кода

  1. Копировать папку tlctutorial/tlcdebug/ в рабочую папку и cd к нему. Сделайте это, даже если вы уже скопировали его, чтобы убедиться, что у вас есть версия timesN.tlc у которого есть ошибка.

  2. В окне команд MATLAB ® создайте файл MEX для S-функции.

    mex timesN.c

    Это позволяет избежать выбора версии, поставляемой с программным обеспечением Simulink ® .

  3. Открытие модели simple_log.

  4. На панели Создание кода (Code Generation) диалогового окна Параметры конфигурации (Configuration Parameters) установите флажок Только генерировать код (Generate code only).

  5. На панели «Создание кода» > «Отладка» диалогового окна «Параметры конфигурации» выберите «Начать покрытие TLC при создании кода». (Не выбирайте «Запустить отладчик TLC» при создании кода. Вызов отладчика не требуется.) Нажмите кнопку «Применить».

  6. Нажмите Ctrl + B. Обычные сообщения появляются в окне команд MATLAB и в папке сборки (simple_log_grt_rtw) создается в рабочей папке.

  7. Введите папку построения. Найти файл timesN.logи скопируйте его в рабочую папку, переименовав в timesN_ilp.log для предотвращения перезаписи.

  8. Открыть файл журнала timesN_ilp.log в вашем редакторе. Выглядит почти как timesN.tlc, за исключением числа, за которым следует двоеточие в начале каждой строки. Это число представляет количество выполнения TLC строки при генерации кода. Код для Outputs() должен выглядеть следующим образом:

    0: %% Function: Outputs ========================================================
         0: %%
         1: %function Outputs(block, system) Output
         1:   %assign gain =SFcnParamSettings.myGain
         1:   /* %<Type> Block: %<Name> */
         0:   %%
         1:   /* Multiply input by %<gain> */
         1:   %assign rollVars = ["U", "Y"]
         1:   %roll idx = RollRegions, lcv = RollThreshold, block, "Roller", rollVars
         1:     %<LibBlockOutputSignal(0, "", lcv, idx)> = \
         1:     %<LibBlockInputSignal(0, "", lcv, idx)> * 1;
         0:   %endroll
         1: 
         0: %endfunction

    Обратите внимание, что комментарии не были выполнены. Были достигнуты TLC-операторы, что означает, что они выводят в сгенерированный C-код столько раз, сколько число, префиксированное к этим строкам.

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

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