【问题标题】:Is it possible to set the specific section which is non-optimazed code in C code when I compile ARM-series code in IAR Embedded workbench当我在 IAR Embedded Workbench 中编译 ARM 系列代码时,是否可以在 C 代码中设置未优化代码的特定部分
【发布时间】:2020-03-04 03:02:55
【问题描述】:

我使用 IAR Embedded Workbench 来编辑 C 代码并进行编译。 我很好奇如果我在 IAR 项目选项中将优化级别设置为高,为什么代码中的编程顺序会改变。

我已经检查了更改的原因。可能与分支推测有关。

我想知道如果我想在High使用优化级别,我可以通过使用特殊标签或选项来设置不顺序更改的特定代码部分。

谢谢。

【问题讨论】:

    标签: c optimization iar


    【解决方案1】:

    目前我不使用 IAR。所以我无法测试特定的预处理器指令。 但根据官方development guide,以下内容应该适用于 IAR 的功能。

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

    说明
    使用此 pragma 指令来降低优化级别,或 关闭一些特定的优化。仅此 pragma 指令 影响指令后紧跟的函数。

    引自开发指南(第 253 页)。

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 2017-10-27
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 2011-06-14
      • 2017-07-19
      相关资源
      最近更新 更多