Target processor type (-target)

Задайте размер типов данных и конечность путем выбора предопределенного целевого процессора

Описание

Укажите процессор, на котором вы развертываете свой код.

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

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Target & Compiler. Чтобы увидеть размеры типов, нажмите кнопку Edit справа от раскрывающегося списка Target processor type.

Для некоторых компиляторов в пользовательском интерфейсе отображаются только процессоры, разрешенные для этого компилятора. Для этих компиляторов вы также не можете увидеть размеры типов данных в пользовательском интерфейсе. Размеры типов данных см. в приведенной ниже таблице ссылок.

Командная строка и файл опций: Используйте опцию -target. См. «Информация о командной строке».

Зачем использовать эту опцию

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

Например, переменная может переполняться для меньших значений на 32-разрядном процессоре, таком как i386, по сравнению с 64-разрядным процессором, таким как x86_64. Если вы выбираете x86_64 для анализа Polyspace, но развертываете код на процессоре i386, результаты Polyspace не всегда применяются.

После выбора целевого процессора можно указать, подписан ли знак char по умолчанию или не подписан. Чтобы определить, какую сигнальность задать, скомпилируйте этот код с помощью настроек компилятора, которые вы обычно используете:

#include <limits.h>
int array[(char)UCHAR_MAX]; /* If char is signed, the array size is -1
Если код компилируется, знак char по умолчанию является беззнаковым. Например, на компиляторе GCC, код компилируется со -fsigned-char флаг и не удается скомпилироваться со -funsigned-char флаг.

Настройки

По умолчанию: i386

Эта таблица показывает размер каждого основного типа данных, который рассматривает Polyspace. Для некоторых целей можно изменить размер по умолчанию, нажав кнопку Edit справа от выпадающего списка Target processor type. Необязательные значения для этих целевых объектов показаны в [скобках] в таблице.

Цельcharкороткийintдолгодлинный длинныйплаваниедваждыдлинный двойной[a]ptrЗнак по умолчанию charиндиецВыравнивание
i38681632326432649632подписанныйМало32
sparc816323264326412832подписанныйБольшой64
m68k[b]81632326432649632подписанныйБольшой64
powerpc816323264326412832неподписанныйБольшой64
c-16781616323232646416подписанныйМало64
tms320c3x323232326432326432подписанныйМало32
sharc21x6132323232643232 [64]32 [64]32подписанныйМало32
necv85081632323232326432подписанныйМало32 [16, 8]
hc08[c]81616 [32]32323232 [64]32 [64]16[d]неподписанныйБольшой32 [16]
hc1281616 [32]32323232 [64]32 [64]326подписанныйБольшой32 [16]
mpc5xx8163232643232 [64]32 [64]32подписанныйБольшой32 [16]
c188161632 [24][e]3232323216 [24]подписанныйМало8
x86_648163264 [32][f]64326412864подписанныйМало64 [32]
mcpu... (Advanced)[g]8 [16]8 [16]16 [32]3232 [64]3232 [64]32 [64]16 [32]подписанныйМало32 [16, 8]
Цели для ARM® компилятор v5См. ARM v5 Compiler (-compiler armcc).
Цели для ARM v6 компилятораСм. ARM v6 Compiler (-compiler armclang).
Цели для NPX CodeWarrior® компиляторСм. NXP CodeWarrior Compiler (-compiler codewarrior).
Цели для компилятора CosmicСм. Cosmic Compiler (-compiler cosmic).
Цели для компиляторСм. Diab Compiler (-compiler diab).
Цели для зеленых холмов® компиляторСм. Green Hills Compiler (-compiler greenhills).
Цели для компилятора IAR Embedded WorkbenchСм. IAR Embedded Workbench Compiler (-compiler iar-ew).
Цели для компилятора MPLAB XC8 C См. MPLAB XC8 C Compiler (-compiler microchip)
Цели для Renesas® компиляторСм. Renesas Compiler (-compiler renesas).
Цели для компилятора TASKINGСм. TASKING Compiler (-compiler tasking).
Цели для компилятора Instruments™ Texas См. Texas Instruments Compiler (-compiler ti).

[a] Для целей, где размер long double превышает 64 бита, размер, используемый для расчетов, не всегда совпадает с размером, указанным в этой таблице. Исключение составляют:

  • Для целей i386, x86_64 и m68k, 80 биты используются для расчетов, следуя практике в простых компиляторах.

  • Для целевой tms320c3x, 40 биты используются для расчетов, следуя TMS320C3x спецификациям.

  • Если вы используете Visual компилятор, размер long double используемые для расчетов те же самые, что и размер double, следуя спецификации Visual C++® компиляторы.

[b] Семейство M68k (68000, 68020 и так далее) включает процессор «ColdFire»

[c] Не-ANSI C заданные ключевые слова и зависимые от реализации компилятора прагмы и средства прерывания не учитываются этой поддержкой

[d] Все виды указателей (ближний или дальний указатель) имеют 2 байта (hc08) или 4 байта (hc12) ширины физически.

[e] The c18 target поддерживает тип short long как 24 бита в размере.

[f] Используйте опцию -long-is-32bits для поддержки Microsoft® C/C + + Win64 цель.

[g]  mcpu - реконфигурируемый объект микроконтроллера/процессорного модуля. Можно использовать этот тип для настройки одного или нескольких типовых целевых объектов. Для получения дополнительной информации смотрите Generic target options.

Совет

Если ваш процессор не указан в списке, используйте аналогичный процессор, который имеет те же характеристики, или создайте mcpu типовой целевой процессор. См. Generic target options.

Можно также создать пользовательский целевой объект, явно указав размеры основных типов и так далее с помощью опции -custom-target.

Информация о командной строке

Параметр: -target
Значение: i386 | sparc | m68k | powerpc | c-167 | tms320c3x | sharc21x61 | necv850 | hc08 | hc12 | mpc5xx | c18 | x86_64 | mcpu
По умолчанию: i386
Пример (Bug Finder): polyspace-bug-finder -target m68k
Пример (Code Prover): polyspace-code-prover -target m68k
Пример (Bug Finder Server): polyspace-bug-finder-server -target m68k
Пример (Code Prover Server): polyspace-code-prover-server -target m68k

Можно переопределить значения по умолчанию для некоторых целей с помощью определенных опций командной строки. Смотрите раздел Command-Line Опций в Generic target options.