Поддерживаемый Keil или расширения языка IAR

Анализ Polyspace® может интерпретировать подмножество общих построений языка C/C++ и расширенных ключевых слов по умолчанию. Для специфичных для компилятора ключевых слов необходимо задать выбор компилятора. Если вы задаете keil или iar для Compiler (-compiler), верификация Polyspace позволяет расширения языка, характерные для компиляторов Keil или IAR.

Специальный функциональный тип данных регистра

Встроенные приложения управления часто чтение и данные порта записи, регистры таймера набора, и читают входные получения. Чтобы иметь дело с этими требованиями, не используя ассемблер, некоторые компиляторы микропроцессора задают специальные типы данных, такие как sfr и sbit. Типичные объявления:

sfr A0 = 0x80; 
sfr A1 = 0x81; 
sfr ADCUP = 0xDE; 
sbit EI = 0x80; 

Объявления находятся в заголовочных файлах, таких как regxx.h для основного 80Cxxx микро процессор. Объявления настраивают компилятор к целевому процессору.

Вы получаете доступ к регистру или порту при помощи sfr и данных sbit можно следующим образом. Однако эти типы данных не являются частью Стандарта C99.

int status,P0; 

void main (void) { 
  ADCUP = 0x08; /* Write data to register */ 
  A1 = 0xFF; /* Write data to Port */ 
  status = P0; /* Read data from Port */ 
  EI = 1; /* Set a bit (enable all interrupts) */ 
} 

Чтобы анализировать этот тип кода, используйте эти опции:

Анализ затем поддерживает расширения языка Keil или IAR, даже если некоторые структуры, ключевые слова и синтаксис не являются частью стандарта C99.

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

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

Если вы отключаете ключевое слово и используете его в качестве идентификатора вместо этого, можно столкнуться с ошибкой компиляции, когда вы компилируете свой код с Polyspace. Смотрите Ошибки, Связанные с Keil или IAR Compiler.

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

  • Keil: bdata, far, idata, huge, sdata

  • IAR: saddr, reentrant, reentrant_idata, non_banked, plm, bdata, idata, pdata, code, xdata, xhuge, interrupt, __interrupt, __intrinsic

    Ключевое слово data не удалено.