完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用的是 GCC,不过原理是一样的。开发过程中会开优化,不过用 -Og 或 -O1 这种不怎么激进的优化模式。这种优化模式下只有一些很明显的简单优化,不至于影响程序调试。正是产品则会用 -Os 或 -O3 这样的激进优化,而且会开 LTO。
GCC 的优化等级有这些: * -O0 完全不优化。 * -Og 不影响调试的简单优化。 * -O1 简单优化。 * -O2 中度优化。 * -Os 在 -O2 的基础上针对代码体积做激进优化。 * -O3 在 -O2 的基础上针对代码速度做激进优化。 * -Ofast 在 -O3 的基础上针对速度做更激进的优化,代码体积可能会比 -O2 还要大。 * -flto 打开链接时优化(LTO)功能,允许优化算法跨函数。 |
|
|
|
在 KEIL 中禁止某个函数或某段代码被编译器优化,可以通过使用优化宏来实现。以下是一种常用的方法:
1. 在 KEIL 的编译选项中,打开“Options for Target”对话框。 2. 在对话框中的“C/C++”选项卡中,找到“Miscellaneous”选项。 3. 在“Miscellaneous”选项中,找到“Optimizations”字段。 4. 在“Optimizations”字段中,添加以下宏: ``` #pragma O0 // 禁止整个文件优化 ``` 或者 ``` #pragma opt_level = 0 // 禁止指定函数/代码段的优化 ``` 5. 编译代码时,凡是带有上述宏的函数或代码段将会被编译器禁止进行优化。 注意:以上方法是适用于 KEIL 编译器的,其他编译器可能需要采用不同的方法来禁止优化。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1945浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
749浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
584浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
567浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 09:36 , Processed in 0.812136 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号