MDK AC5,AC6,GCC以及IAR在const局部变量存储位置的异同

|-------------------------------------------------------------|
| 这个是在RTX5全家桶源码升级时遇到的,给大家分享下,基本上已经升级完毕测试完毕了,且支持MDK6,这几天录制视频分享 |

直接说结论
1、一般情况下,const修饰后基本都是存到Flash里面的,全局变量或者静态局部变量是均存储到Flash,而局部变量是有区别的。
2、GCC,MDK AC5和AC6的const局部变量是存到RAM,而IAR不同,是依然保持存到Flash。
3、由于各个优化等级选项太多,不逐一测试了,每个编译器仅测试了一个选项/
4、测试版本MDK5.43, IAR9.30, Embedded Studio 5.50

MDK AC5优化和测试

MDK AC6优化和测试

IAR优化和测试

GCC优化和测试

相关推荐
an12321219 天前
ARM---编译工具链|程序段|GPIO外设驱动
gcc·gpio
Tairitsu_H9 天前
[Linux] 编辑器vim、编译器和动静态链接
linux·vim·gcc·g++·动态链接·静态链接
Molesidy14 天前
【Embedded Development】 Keil或IAR如何制作静态库并装载入Keil或IAR工程当中进行编译烧录之库封装——lib库的生成
keil·lib·iar
yanlaifan22 天前
编译器gcc介绍
gcc
捷瑞电子工坊24 天前
Ubuntu 下安装 VSCode 和 gcc 的简单步骤
vscode·ubuntu·代码编辑器·安装教程·gcc·deb·snap
GKxx1 个月前
在 HarmonyOS 上从源码构建 GCC 16(gcc/g++ + libstdc++ + libsanitizer):完整记录
c++·华为·harmonyos·鸿蒙·gcc
bingcheby1 个月前
PS通过AXI总线控制PL的LED灯实验之四---编程下载调试
驱动开发·fpga开发·iar
编程的一拳超人1 个月前
C++AI编译错误自动修复神器-告别手动Debug的终极方案
clang·gcc·c++ 工程实践·c++ ai 工具开发实战·msvc解析
同勉共进2 个月前
记一例 vibe coding + gcc bug 导致的线程池死锁问题
c++·线程池·gcc·死锁·vibe coding
潘潘的嵌入式日记2 个月前
改完Keil工程文件被缓存覆盖?——uvprojx编辑的进阶四坑
xml·嵌入式·keil·调试·mdk·工程文件