Задайте размер типов данных и порядка байтов путем создания собственного целевого процессора
Если целевой процессор непосредственно не поддерживается Polyspace®, можно создать собственную цель. Вы задаете целевой mcpu
представление типового "Микро Контроллера/Процессора" и затем явным образом задает размеры основополагающих типов данных, порядка байтов и других характеристик.
В пользовательском интерфейсе десктопных решений Polyspace открывается диалоговое окно Generic target options, когда вы устанавливаете Target processor type на mcpu
. Опция Target processor type доступна на узле Target & Compiler в панели Configuration.
Используйте диалоговое окно, чтобы задать имя нового mcpu
цель, например, My_target
. Та новая цель добавляется к списку опций Target processor type.
Характеристики по умолчанию новой цели: перечисленный как тип
[size]
символьный
[8]
короткий
[16]
int16
длинный
[32]
долго длинный
[32]
[32]
плавающий
двойной
[32]
долго двойной
[32]
указатель
[16]
выравнивание
[32]
char подписывается
порядок байтов является прямым порядком байтов
Пользовательская цель может только быть создана когда Target processor type (-target)
установлен в mcpu
.
Пользовательская цель не доступна когда Compiler (-compiler)
установлен в один из visual
опции.*
При использовании командной строки используйте -target mcpu
наряду с этими целевыми опциями спецификации.
Опция | Описание | Доступный с | Пример |
---|---|---|---|
-little-endian | Архитектуры с прямым порядком байтов являются Менее значительным байтом, Первым (LSF). Например: i386. Указывает что менее значительный байт короткого целого (e.g. 0x00FF), хранится на уровне первого байта (0xFF) и старшего значащего байта (0x00) на уровне второго байта. | mcpu | polyspace-bug-finder -target mcpu -little-endian |
-big-endian | Архитектуры с обратным порядком байтов являются Старшим значащим байтом, Первым (MSF). Например: SPARC, m68k. Указывает что старший значащий байт короткого целого (e.g. 0x00FF), хранится на уровне первого байта (0x00) и менее значительного байта (0xFF) на уровне второго байта. | mcpu | polyspace-bug-finder -target mcpu -big-endian |
-default-sign-of-char [signed | unsigned] | Задайте знак по умолчанию
| Все цели | polyspace-bug-finder -default-sign-of-char unsigned -target mcpu |
-char-is-16bits |
Несовместимый с | mcpu | polyspace-bug-finder -target mcpu -char-is-16bits |
-short-is-8bits | Задайте short как 8 битов, независимо от знака | mcpu | polyspace-bug-finder -target mcpu -short-is-8bits |
-int-is-32bits | Задайте int как 32 бита, независимо от знака. Выравнивание также установлено в 32 бита. | mcpu , hc08 , hc12 , mpc5xx | polyspace-bug-finder -target mcpu -int-is-32bits |
-long-is-32bits | Задайте Если ваш проект устанавливает | Все цели | polyspace-bug-finder -target mcpu -long-is-32bits |
-long-long-is-64bits | Задайте long long как 64 бита, независимо от знака. Выравнивание также установлено в 64 бита. | mcpu | polyspace-bug-finder -target mcpu -long-long-is-64bits |
-double-is-64bits | Задайте double и long double как 64 бита, независимо от знака. | mcpu , sharc21x61 , hc08 , hc12 , mpc5xx | polyspace-bug-finder -target mcpu -double-is-64bits |
-pointer-is-24bits | Задайте указатель как 24 бита, независимо от знака. | c18 | polyspace-bug-finder -target c18 -pointer-is-24bits |
-pointer-is-32bits | Задайте указатель как 32 бита, независимо от знака. | mcpu | polyspace-bug-finder -target mcpu -pointer-is-32bits |
-align [32|16|8] | Задает самое большое выравнивание struct, или массив возражает против этих 32, контуров на 16 или 8 битов. Следовательно, устройство хранения данных массива или struct строго определяется размером отдельных объектов данных без дополнения конца и члена. |
Кроме | polyspace-bug-finder -target mcpu -align 16 |
Смотрите также:
Можно также использовать опцию -custom-target
задавать размеры в байтах основополагающих типов данных, со знаком из плоскости char
, выравнивание структур и базовые типы стандартного typedef
- s, такие как size_t
, wchar_t
и ptrdiff_t
.
Если вы используете какой-либо из этих наборов инструментальных средств GCC для вашей разработки программного обеспечения, можно установить анализ Polyspace так, чтобы код скомпилировал с Polyspace:
Отделение GNU ARM Ltd встроенный набор инструментальных средств
HighTec EDV-Systeme
Перекрестный набор инструментальных средств Linaro® GNU
MENTOR® Embedded Sourcery™ CodeBench
QNX® Software Development Platform
Партнеры Роули CrossWorks
STMicroelectronics® TrueSTUDIO® для STM32
Техас компоновщик Instruments™ кода Studio™
Ветер компилятор River® GNU
Используйте polyspace-configure
прослеживать вашу систему сборки и информацию об извлечении о вашей настройке компилятора. Команда создает проект Polyspace. Чтобы сгенерировать файл опций, который вы затем передаете Polyspace в командной строке, запустите polyspace-configure
с -output-options-file
.
В качестве альтернативы, если вы предпочитаете устанавливать детали своей настройки компилятора вручную:
Выберите gnu#.x
компилятор, который соответствует вашей версии компилятора для Compiler (-compiler)
.
Задайте свою цель при помощи Параметров командной строки. Для примера целей можно задать, видеть Цели для GCC Основанные Компиляторы.
Задайте свои макроопределения компилятора с Preprocessor definitions (-D)
.
Если вы выбираете один из gnu#.x
компиляторы для Compiler (-compiler)
, можно задать один из поддерживаемых типов целевого процессора. Смотрите Target processor type (-target)
. Если тип целевого процессора непосредственно не перечислен, как поддержано, можно создать цель при помощи этой опции.
Например, можно создать эти цели:
Tricore: Используйте эти опции:
-target mcpu -int-is-32bits -long-long-is-64bits -double-is-64bits -pointer-is-32bits -enum-type-definition auto-signed-first -wchar-t-type-is signed-int
PowerPC: Используйте эти опции:
-target mcpu -int-is-32bits -long-long-is-64bits -double-is-64bits -pointer-is-32bits -wchar-t-type-is signed-int
ARM: Используйте эти опции:
-target mcpu -int-is-32bits -long-long-is-64bits -double-is-64bits -pointer-is-32bits -enum-type-definition auto-signed-first -wchar-t-type-is unsigned-int
MSP430: Используйте эти опции:
-target mcpu -long-long-is-64bits -double-is-64bits -wchar-t-type-is signed-long -align 16
Если вы создаете свой исходный код с помощью Микрочипа MPLAB XC16 или компиляторы XC32, можно настроить анализ Polyspace так, чтобы код скомпилировал с Polyspace. Введите эти опции в командной строке или задайте их в панели Configuration пользовательского интерфейса рабочего стола Polyspace.
Компилятор | Семейства целевых процессоров | Опции |
---|---|---|
MPLAB XC16 | PIC24 dsPIC |
-compiler gnu4.6 -to compile -D__XC__ -D__XC16__ -target=mcpu -wchar-t-type-is unsigned-int -align 16 -long-long-is-64bits |
MPLAB XC32 | PIC32 |
-compiler gnu4.8 -custom-target true,8,2,4,-1,4,8,4,4,8,4,8,1,big,unsigned_long,long,int -D__PIC32M -D__PIC32MX -D__PIC32MX__ -D__XC32 -D__XC32__ -D__XC -D__XC__ -D__mips=32 -D__mips__ -D_mips |
Набор макросов задал с опцией Preprocessor definitions (-D)
минимальный набор. Задайте дополнительные макросы по мере необходимости, чтобы гарантировать ваши компиляции кода Polyspace.