请问STM32编译通过后,常量是保存在FLASH还是RAM

2019-10-15 07:15发布

比如我用switch语句。里面的case后面都是0x01,0x02,0x03......这样的常数,那么下载运行,这些常数会占内存RAM吗。如果有很多个case,会不会占用一大片ram?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
yyx112358
1楼-- · 2019-10-15 08:49
可以用反汇编来看
函数语句中的常数,比如switch case还有如i=100这样的算是程序的一部分,是放在FLASH ROM里面的。
此外,用const定义的变量也是放在ROM里面的,比如const uint8_t Font_Tbl[10000]={....}这种。如果去掉const 那就算是变量,是占用RAM的。
const定义的参数不算,比如void func(const int a , const int *a)都会占用栈空间
dengxingling8
2楼-- · 2019-10-15 11:55
存在flash区

一周热门 更多>