Можно ли задать указанный раздел c, который является неоптимизированным кодом в коде C, когда я компилирую код серии ARM в IAR Embedded Workbench - PullRequest
0 голосов
/ 04 марта 2020

Я использую IAR Embedded Workbench для редактирования C кода и компиляции. Мне очень любопытно, если я установил уровень Оптимизации на Высокий в опциях проекта IAR, почему была изменена последовательность программирования в коде.

Я должен проверить причину изменения. это может быть связано со спекуляцией на ветвях.

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

спасибо.

1 Ответ

1 голос
/ 04 марта 2020

В настоящее время я не использую IAR. Поэтому я не могу проверить указанную директиву препроцессора c. Но следующее должно работать для функций с IAR, в соответствии с официальным руководством по разработке .

#pragma optimize=none
void foo(void)
{
    /* Do something, but don't optimize this function */ 
}

Описание
Используйте эту директиву прагмы для уменьшить уровень оптимизации или отключить определенные c оптимизации. Эта директива прагмы влияет только на функцию, которая следует сразу за директивой.

Цитата из руководства по разработке (стр. 253).

...