Generic target options

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

Описание

Если целевой процессор непосредственно не поддерживается 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) на уровне второго байта.

mcpupolyspace-bug-finder -target mcpu -little-endian
-big-endian

Архитектуры с обратным порядком байтов являются Старшим значащим байтом, Первым (MSF). Например: SPARC, m68k.

Указывает что старший значащий байт короткого целого (e.g. 0x00FF), хранится на уровне первого байта (0x00) и менее значительного байта (0xFF) на уровне второго байта.

mcpupolyspace-bug-finder -target mcpu -big-endian
-default-sign-of-char [signed | unsigned]

Задайте знак по умолчанию char.

signed: Задает тот char подписывается, значение по умолчанию переопределяющей цели.

unsigned: Задает тот char значение по умолчанию, переопределяющей цели без знака.

Все целиpolyspace-bug-finder -default-sign-of-char unsigned -target mcpu
-char-is-16bits

char заданный, когда 16 битов и все объекты имеют минимальное выравнивание 16 битов

Несовместимый с -short-is-8bits и -align 8

mcpupolyspace-bug-finder -target mcpu -char-is-16bits
-short-is-8bitsЗадайте short как 8 битов, независимо от знакаmcpupolyspace-bug-finder -target mcpu -short-is-8bits
-int-is-32bitsЗадайте int как 32 бита, независимо от знака. Выравнивание также установлено в 32 бита.mcpu, hc08, hc12, mpc5xxpolyspace-bug-finder -target mcpu -int-is-32bits
-long-is-32bits

Задайте long как 32 бита, независимо от знака. Выравнивание также установлено в 32 бита.

Если ваш проект устанавливает int к 64 битам вы не можете использовать эту опцию.

Все целиpolyspace-bug-finder -target mcpu -long-is-32bits
-long-long-is-64bitsЗадайте long long как 64 бита, независимо от знака. Выравнивание также установлено в 64 бита.mcpupolyspace-bug-finder -target mcpu -long-long-is-64bits
-double-is-64bitsЗадайте double и long double как 64 бита, независимо от знака.mcpu, sharc21x61, hc08, hc12, mpc5xxpolyspace-bug-finder -target mcpu -double-is-64bits
-pointer-is-24bitsЗадайте указатель как 24 бита, независимо от знака.c18polyspace-bug-finder -target c18 -pointer-is-24bits
-pointer-is-32bitsЗадайте указатель как 32 бита, независимо от знака.mcpupolyspace-bug-finder -target mcpu -pointer-is-32bits
-align [32|16|8]

Задает самое большое выравнивание struct, или массив возражает против этих 32, контуров на 16 или 8 битов.

Следовательно, устройство хранения данных массива или struct строго определяется размером отдельных объектов данных без дополнения конца и члена.

mcpu, hc08, hc12, mpc5xx.

Кроме mcpu, все цели поддерживают только 16 или 32 бита.

polyspace-bug-finder -target mcpu -align 16

Смотрите также:

Можно также использовать опцию -custom-target задавать размеры в байтах основополагающих типов данных, со знаком из плоскости char, выравнивание структур и базовые типы стандартного typedef- s, такие как size_t, wchar_t и ptrdiff_t.

Примеры

Наборы инструментальных средств GCC

Если вы используете какой-либо из этих наборов инструментальных средств 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.

В качестве альтернативы, если вы предпочитаете устанавливать детали своей настройки компилятора вручную:

Цели для GCC основанные компиляторы

Если вы выбираете один из 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

Если вы создаете свой исходный код с помощью Микрочипа 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 XC32PIC32
-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.