-compiler
iar-ew
)Задайте компилятор IAR Embedded Workbench
Задайте iar-ew
для Compiler (-compiler)
если вы компилируете свой код с помощью компилятора IAR Embedded Workbench. Путем определения компилятора можно избежать ошибок компиляции от синтаксиса, который не является частью Стандарта, но прибывает из расширений языка.
Затем задайте свой тип целевого процессора. Если вы выбираете iar-ew
для Compiler, в пользовательском интерфейсе Polyspace® десктопные решения, вы видите, что только процессоры допускали компилятор IAR Embedded Workbench. Ваш выбор целевого процессора определяет размер основополагающих типов данных, порядок байтов целевой машины и определенных определений ключевого слова.
Если вы задаете iar-ew
компилятор, необходимо задать путь к заголовочным файлам компилятора. Смотрите Обеспечивают Стандартные Заголовки Библиотеки для Анализа Polyspace.
Цели используют следующие размеры по умолчанию в битах для фундаментальных типов. Вы не видите эти размеры в пользовательском интерфейсе десктопных решений Polyspace.
Цель | 'char' | короткий | int | долго | долго долго | float | 'double' | долго дважды | ptr | Знак по умолчанию char | Порядок байтов | Выравнивание | Определение size_t | Определение wchar_t |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arm | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | Без знака | Мало | 64 | int без знака | со знаком короткий |
avr | 8 | 16 | 16 | 32 | 64 | 32 | 32 | 32 | 16 | Без знака | Мало | 8 | int без знака | короткое целое без знака |
msp430 | 8 | 16 | 16 | 32 | 64 | 32 | 32 | 32 | 16 | Без знака | Мало | 16 | int без знака | короткое целое без знака |
rh850 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | Без знака | Мало | 32 | int без знака | со знаком короткий |
riscv | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | без знака | Мало | 64 | int без знака | int без знака |
rl78 | 8 | 16 | 16 | 32 | 64 | 32 | 32 | 32 | 16 | Без знака | Мало | 16 | int без знака | короткое целое без знака |
Ваша спецификация компилятора также определяет значения многих специфичные для компилятора макросы. В случае, если вы хотите знать, как Polyspace задает определенный макрос, используйте опцию -dump-preprocessing-info
.
Чтобы заменить макроопределение, используйте опцию Preprocessor definitions (-D)
.
Чтобы не задать макрос, используйте опцию Disabled preprocessor definitions (-U)
.
Polyspace не поддерживает использование $Super$$
и $Sub$$
исправить определения символа. Например, следующие компиляции кода правильно, но Polyspace рассматривает тот main()
вызывает extern func ($Super$$func)
вместо функционального func
заданный в этом коде ($Sub$$func)
:
/* void func() declared in another file */
extern void $Super$$func(int i);
int setup = 0;
void setup_func(int i) {
setup = i;
}
/* this function should be called instead of the original extern func() */
void $Sub$$func(int i) {
setup_foo(i);
/* does some extra setup work */
/* ... */
}
int main() {
assert(setup = 0);
func(1); // Should call $Sub$$func instead of $Super$$func
assert(setup = 1);
return 0;
}
$Sub$$
с пустой строкой во всех ваших файлах после предварительной обработки. Смотрите Command/script to apply to preprocessed files (-post-preprocessing-command)
.Polyspace не поддерживает некоторые построения, характерные для компилятора IAR.
Для списка неподдерживаемых построений смотрите codeprover_limitations.pdf
в
. Здесь, polyspaceroot
\polyspace\verifier\code_prover_desktop
MATLAB® папка установки, например, polyspaceroot
C:\Program Files\Polyspace\R2019a
.
Если вы используете Polyspace в качестве Вас Расширения кода в ИДАХ, введите эту опцию в файл опций анализа. Смотрите файл опций.
Параметр:
-compiler iar-ew -target |
Значение:
arm | avr | msp430 | rh850 | riscv | rl78 |
Значение по умолчанию:
arm |
Пример (Bug Finder):
polyspace-bug-finder -compiler iar-ew -target rl78 |
Пример (Code Prover):
polyspace-code-prover -compiler iar-ew -target rl78 |
Пример (сервер Bug Finder):
polyspace-bug-finder-server -compiler iar-ew -target rl78 |
Пример (сервер Code Prover):
polyspace-code-prover-server -compiler iar-ew -target rl78 |