exponenta event banner

Ошибки, связанные с компилятором TASKING

При выборе tasking для опции Compiler (-compiler), вы можете столкнуться с этой проблемой.

Проблема

Во время анализа Polyspace ® появляется ошибка, связанная с типом данных регистра специальных функций.

Причина

При компиляции с помощью компилятора TASKING обычно используются следующие флаги компилятора, чтобы указать, где объявляются типы данных регистра специальных функций (SFR):

  • --cpu=xxx: Компилятор неявно #includes файл sfr/regxxx.sfr в исходных файлах. Однажды #include-ed, можно использовать регистры специальных функций (SFR-s), объявленные в .sfr файл.

  • --alternative-sfr-file: Компилятор использует альтернативный файл SFR вместо обычного файла SFR. Можно использовать регистры специальных функций (SFR-s), объявленные в этом альтернативном файле SFR.

Если указать компилятор TASKING для анализа Polyspace, в анализе будут сделаны следующие предположения относительно этих флагов компилятора:

  • --cpu=xxxАнализ выбирает конкретное значение xxx. При использовании другого значения в компиляторе TASKING во время анализа Polyspace может возникнуть ошибка.

    xxx значение, которое используется в анализе Polyspace, зависит от выбора Target processor type (-target):

    • tricore: tc1793b

    • c166: xc167ci

    • rh850: r7f701603

    • arm: ARMv7M

  • --alternative-sfr-fileАнализ предполагает, что вы не используете альтернативный файл SFR. При его использовании может возникнуть ошибка.

Решение

Использовать параметр командной строки -compiler-parameter в анализе Polyspace следующим образом. Этот параметр командной строки используется для информирования Polyspace о флагах компилятора. В интерфейсе пользователя можно ввести параметр командной строки в поле Other. Можно ввести опцию несколько раз.

  • --cpu=xxx: Для анализа Polyspace, используйте

    -compiler-parameter --cpu=xxx
    Здесь, xxx - это значение, используемое при компиляции с помощью компилятора.

  • --alternative-sfr-file: Для анализа Polyspace, используйте

    -compiler-parameter --alternative-sfr-file

    Если по-прежнему возникает ошибка, так как Polyspace не может найти .asfr файл, явно #include Ваш .asfr файл в предварительно обработанном коде с помощью опции Include (-include).

    Обычно путь к файлу: Tasking_C166_INSTALL_DIR\include\sfr\regCPUNAME.asfr. Например, если компилятор TASKING установлен в C:\Program Files\Tasking\C166-VX_v4.0r1\ и используется флаг, связанный с ЦП -Cxc2287m_104f или --cpu=xc2287m_104f, путь C:\Program Files\Tasking\C166-VX_v4.0r1\include\sfr\regxc2287m.asfr.

    При отслеживании команды построения можно также столкнуться с той же проблемой с альтернативными файлами sfr. Дополнительные сведения см. в разделе Требования к созданию проекта из Build Systems.