How to write the stm32g0's dts file for RB3 Gen2 ?
CMSIS里提供的GCC ld链接文件疑问
大家晚上好啊
stm32G071RBT6跑TOUCHGFX的时候使用仪表控件,更新数值的时候会卡死,怎么解决
STM32G070 I2C主机只发送设备地址读测试是否产生stop位
STM32G030K6Tx使用ADC+DMA进行6通道ADC采集,DMA传输错位问题。
夜深了,睡不着
晚上好啊,兄弟们
第三季度啦,兄弟们
STM32G070RBT6TR ADC采集定点电压误差较大,有没有优化方向
微信公众号
手机版
kemi的解答:
Keil 的优化等级决定了编译器在生成目标代码时所做的优化程度,直接影响代码的执行效率、体积以及调试的便利性。以下是各优化等级的核心意义:
🔧 常见优化等级及其意义
表格复制
🧠 总结建议
表格复制
如需进一步控制优化行为,Keil 还支持对单个文件或函数使用
#pragma OPTIMIZE(x)进行局部优化设置关于这个问题,你可以看看相关IDE的编译手册。
这里的-O0表示不做代码优化,适合开发调试阶段。
禁用所有优化,编译和build速度最快。
生成的代码与源代码高度对应,便于单步调试和问题定位。
代码体积大、栈使用多,包含大量“死代码”(未用到的代码也会被编译进来)。
运行速度最慢。
适用场景:
开发初期、调试阶段、单步跟踪、定位复杂bug时。
完成调试和功能验证后,可以适当调高优化等级。
而-Ox表示有对源代码进行不同程度优化,x越大,优化等级越高,优化越厉害,兼顾性能和代码大小,源码跟生成代码的对应性越差,这样往往是为了追求更快的执行速率。但是,有个问题就是调试体验差,我们可以发现当优化等级越高时,很多调试做不了。还有,优化等级越高对我们程序员写代码的规范度、严谨度也有更高的要求!!
[md]有说产品端不要同-O0,推荐用-Os。优先级高的话确实需要代码写的好。