exponenta event banner

Общие целевые параметры

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

Описание

Если целевой процессор напрямую не поддерживается Polyspace ®, можно создать собственный целевой процессор. Вы указываете цельmcpu представление общего «микроконтроллера/процессорного блока», а затем явное указание размеров фундаментальных типов данных, эндианнессы и других характеристик.

Настройки

В интерфейсе пользователя настольных продуктов Polyspace открывается диалоговое окно Общие параметры целевого процессора (Generic target options), если для параметра Тип целевого процессора (Target processor type) задано значение mcpu. Параметр Тип целевого процессора доступен в узле Target & Compiler на панели Конфигурация.

Используйте диалоговое окно для указания имени нового mcpu цель, например My_target. Этот новый целевой объект добавляется в список опций Тип целевого процессора.

Характеристики по умолчанию для нового целевого объекта: перечислены как тип [size]

  • случайная работа [8]

  • короткий [16]

  • интервал [16]

  • долго [32]

  • длинная [32]

  • плавание [32]

  • дважды [32]

  • длинный двойник [32]

  • указатель [16]

  • выравнивание [32]

  • символ подписан

  • endianness является little-endian

Зависимость

Пользовательский целевой объект может быть создан только в том случае, если Target processor type (-target) имеет значение mcpu.

Пользовательский конечный объект недоступен, когда Compiler (-compiler) имеет значение одного из visual* варианты.

Параметры командной строки

При использовании командной строки используйте -target mcpu вместе с этими параметрами целевой спецификации.

ВыборОписаниеДоступно сПример
-little-endian

Архитектурами Little-endian являются Byte First (LSF). Например: i386.

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

mcpupolyspace-code-prover -lang c -target mcpu -little-endian
-big-endian

Архитектуры Big-endian - это наиболее значимые байты (MSF). Например: SPARC, m68k.

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

mcpupolyspace-code-prover -target mcpu -big-endian
-default-sign-of-char [signed | unsigned]

Укажите знак по умолчанию для char.

signed: Указывает, что char имеет подпись, переопределяя значение по умолчанию для целевого объекта.

unsigned: Указывает, что char неподписанный, переопределяющий значение по умолчанию для целевого объекта.

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

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

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

mcpupolyspace-code-prover -target mcpu -char-is-16bits
-short-is-8bitsОпределить short 8 бит, независимо от знакаmcpupolyspace-code-prover -target mcpu -short-is-8bits
-int-is-32bitsОпределить int 32 бита, независимо от знака. Выравнивание также устанавливается равным 32 битам.mcpu, hc08, hc12, mpc5xxpolyspace-code-prover -target mcpu -int-is-32bits
-long-is-32bits

Определить long 32 бита, независимо от знака. Выравнивание также устанавливается равным 32 битам.

Если набор проектов int до 64 бит, этот параметр использовать нельзя.

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

Задает наибольшее выравнивание объектов структуры или массива по 32, 16 или 8 битовым границам.

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

mcpu, hc08, hc12, mpc5xx.

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

polyspace-code-prover -target mcpu -align 16

См. также:

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

Примеры

Цепочки инструментов GCC

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

  • Встроенный инструментарий GNU Arm компании ARM Ltd

  • HighTec EDV-Systeme

  • Перекрестная цепочка инструментов Linaro ® GNU

  • MENTOR ® Embedded Sourcery™ CodeBench

  • Платформа для разработки программного обеспечения QNX ®

  • Кроссворки Rowley Associates

  • STMicroelectronics ® StartSTUDIO ® для STM32

  • Техасский Instruments™ композитор кода Studio™

  • Компилятор Wind River ® GNU

Использовать polyspace-configure для отслеживания системы сборки и извлечения информации о конфигурации компилятора. Команда создает проект Polyspace. Чтобы создать файл параметров, который затем будет передан в Polyspace в командной строке, выполните команду polyspace-configure с -output-options-file.

Кроме того, если вы предпочитаете задать сведения о конфигурации компилятора вручную:

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

При выборе одного из gnu#.x компиляторы для Compiler (-compiler), можно указать один из поддерживаемых типов целевого процессора. Посмотрите Target processor type (-target). Если целевой тип процессора не указан непосредственно как поддерживаемый, можно создать целевой тип с помощью этой опции.

Например, можно создать следующие цели:

  • Трикор: Используйте следующие опции:

    -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

Эмулировать компиляторы Microchip MPLAB XC16 и XC32

Если исходный код создается с помощью компиляторов Microchip MPLAB XC16 или XC32, можно настроить анализ Polyspace так, чтобы код компилировался с Polyspace. Введите эти параметры в командной строке или укажите их на панели «Конфигурация» интерфейса пользователя рабочего стола Polyspace.

КомпиляторЦелевые семейства процессоровВарианты
XC16 MPLAB

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
XC32 MPLABPIC32
-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.

Совет

Если в качестве расширений кода в IDE используется Polyspace, введите эту опцию в файл опций анализа. См. файл параметров.