IAR 编译优化 #pragma optimize

这篇具有很好参考价值的文章主要介绍了IAR 编译优化 #pragma optimize。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在IAR工具菜单栏中 点击 【help】-> 【Serach】 搜索optimize 

 说明:单独指定的优化等级优先级高于编译器统一指定的优化。

1、格式

#pragma optimize=[goal][level][vectorize][disable]

Parameters

goal

Choose between:

size, optimizes for size

balanced, optimizes balanced between speed and size

speed, optimizes for speed.

no_size_constraints, optimizes for speed, but relaxes the normal restrictions for code size expansion.

level

Specifies the level of optimization—choose between none, low, medium, or high.

vectorize

Enables generation of NEON vector instructions.

disable

Disables one or several optimizations (separated by spaces). Choose between:

no_code_motion, disables code motion

no_cse, disables common subexpression elimination

no_inline, disables function inlining

no_relaxed_fp, disables the language relaxation that optimizes floating-point expressions more aggressively

no_tbaa, disables type-based alias analysis

no_scheduling, disables instruction scheduling.

no_vectorize, disables generation of NEON vector instructions

no_unroll, disables loop unrolling

 2、Example

2.1、速度和空间优化

#pragma optimize=speed
int SmallAndUsedOften()
{  
/* Do something here. */
} 
#pragma optimize=size
int BigAndSeldomUsed()
{  
/* Do something here. */
}

2.2、最高速优化

如果想设置优化速度到最高等级,则如下设置即可

#pragma optimize=speed high
int SmallAndUsedOften()
{
/* Do something here. */
}

2.3、禁用优化

如果需要针对某个函数禁用所有优化文章来源地址https://www.toymoban.com/news/detail-684705.html

/// @brief 延时us级别 实测误差  1us > 1.192us
/// @param us 延时时间
#pragma optimize = none //防止优化
void sleep_us(uint32_t us)
{
        for (size_t i = 0; i < us; i++)
        {
                for (size_t j = 0; j < 11; j++)
                {
                }
        }
}

到了这里,关于IAR 编译优化 #pragma optimize的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编译工具链 之四 ARM-MDK、IAR、GCC 的 .MAP 文件、.LST 文件

       .map 文件和 .lst 文件是嵌入式开发中最有用的俩调试辅助文件。现在主要从事 RISC-V 架构,主要与 GCC 打交道,今天就重点学习一下 GCC 的 .map 文件、 .lst 文件,并辅助以 ARMCC 和 IAR 作为对比。   本文中的 DEMO 主要是使用 https://gitee.com/itexp/STM32_BareMetal 这个代码,其中配

    2024年01月19日
    浏览(83)
  • 深度学习——优化器Optimizer

    2024年02月16日
    浏览(39)
  • MATLAB - 凸优化(Convex Optimization)

                  凸优化(Convex optimization)是在凸约束(convex constraints)条件下使凸目标函数(convex objective function)最小化的过程,或者等同于在凸约束条件下使凹目标函数最大化的过程。对于许多凸优化问题,满足局部最优(local optimality)条件的点都能被有效地找到。由

    2024年02月05日
    浏览(37)
  • 智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)

    引言 小时候,蜣螂还是比较多见的,还顽皮地将粪球给它弄走,或者给它来点障碍。现在放牛的几乎看不到了,蜣螂没东西可推了,也慢慢从我们的视线中消失了。 2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法(Sparrow Search Algorithm,SSA)之后,又提出了一种全新的

    2024年02月02日
    浏览(46)
  • 【python】Bayesian Optimization(贝叶斯优化)优化svm回归问题

    贝叶斯优化(Bayesian Optimization)是一种用于黑盒函数优化的序列模型优化方法。它在较少的函数评估次数下,尝试寻找全局最优解。 贝叶斯优化使用高斯过程(Gaussian Process)作为先验模型来建模未知的目标函数。通过对目标函数进行一系列评估和建模迭代,贝叶斯优化能够

    2024年02月12日
    浏览(38)
  • 损失函数loss和优化器optimizer

    损失函数与优化器的关联_criterion(outputs, labels)_写代码_不错哦的博客-CSDN博客 https://blog.csdn.net/shenjianhua005/article/details/123971915?ops_request_misc=request_id=6583569ecbdc4daf89dbf2d43eac9242biz_id=utm_medium=distribute.pc_search_result.none-task-blog-2~all~koosearch~default-2-123971915-null-null.142^v93^koosearch_v1utm_term=

    2024年02月08日
    浏览(40)
  • CST 优化器设置 Optimizer-Settings 使用cst自动优化参数

    优化器位于simulation选项中的optimizer按钮,点击即可进入优化器设置。 进入优化器后会看到如图所示的选项卡 在Simulation type中可以选择在求解器求解时就进行优化或者利用后处理数据进行优化 在对话框中一共有三个属性页(settings goals info)用于优化设置,先来看setting。 2.

    2024年02月01日
    浏览(36)
  • 神经网络——torch.optim优化器的使用

    optimizer.step()是大多数优化器支持的简化版本。 一旦使用例如计算梯度,就可以调用该函数。 backward()反向传播。 文章目录 一、 官方文档 1. 什么是torch.optim? 2. How to use an optimizer(如何使用优化器) 2.1 Constructing it(构建它) 2.2 Per-parameter options(每个参数选项)     2.3 Ta

    2024年02月03日
    浏览(42)
  • GWO灰狼优化算法综述(Grey Wolf Optimization)

           GWO通过模拟灰狼群体捕食行为,基于狼群群体协作的机制来达到优化的目的。          GWO算法具有结构简单、需要调节的参数少、容易实现等特点,其中存在能够自适应调整的收敛因子以及信息反馈机制,能够在局部寻优与全局搜索之间实现平衡,因此在对问题的

    2024年02月01日
    浏览(58)
  • 【Unity Optimize】使用图集(Sprite Atlas)优化项目

    Unity中的图集(Sprite Atlas)是一种用于优化游戏性能和内存的纹理集。Sprite Atlas 可以应用于 2D 和 3D 项目中的 UI、粒子系统、贴图等等。 使用Unity可以很方便地创建Sprite Atlas,只需要创建一个Sprite Atlas GameObject,然后将纹理分配给它。在创建Sprite Atlas时,需要将纹理名称按角色

    2024年02月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包