2019-07-14 17:10发布
aaa2412 发表于 2018-10-2 11:37 第一个问题并没有回答,第二个问题 中加入const后code增加正常,关键是RW-DATA减少了,这不是很奇怪吗
7762642422d 发表于 2018-10-2 11:46 1.我估计KEIL不会把两个函数中局部的1KB算作1个而是算作2个。这就变成了2KB,你可以试下。 2.flash中的const值在使用时直接从Flash获取不走ram,加了const比不加,当然RW-DATA会减少。
aaa2412 发表于 2018-10-2 12:02 本帖最后由 tszhao 于 2015-8-7 09:55 编辑 1 是把两个函数中的局部1KB算作两个,
最多设置5个标签!
1.我估计KEIL不会把两个函数中局部的1KB算作1个而是算作2个。这就变成了2KB,你可以试下。
2.flash中的const值在使用时直接从Flash获取不走ram,加了const比不加,当然RW-DATA会减少。
本帖最后由 tszhao 于 2015-8-7 09:55 编辑
1 是把两个函数中的局部1KB算作两个,
2 我可能没说清楚,加入的const变量以前没有,不是说以前定义了个变量现在加上了const,而是以前就没有这个变量,我在别的keil STM32的程序中新加入一个const变量时只是code增加,RW-data不变,
刚才我在实验函数内部局部数组时如 uchar temp【10】,code增加,然而RW-data减少,而且是code增加多少RW-data就减少多少,他们的变化正好是相反的。
3还有个问题请教一下:
C:Documents and SettingsAdministrator桌面1.bmp
C:Documents and SettingsAdministrator桌面2.bmp
第一次提交图片,不知道能不能看到。关键是红 {MOD}圆圈标注的,我在FLASH中用绝对地址定义的一个两个字节的数组,此数组类型是不是const编译后RO-data变化太大了吧???
1.你实测算作2个,那么编译器给的结论只是个参考(具体要看bin文件的构成、大小等)。
2.加入一个新的const变量,该变量存放在flash中,即代码段(code),当然是code增加,该const变量不会复制到内存,故不会占用ram,自然RW-DATA段不会增加。
3.没图。你要点下图片就能添加进回复里。
给你点建议:
a.提问题要非常清楚(别让回答你问题的字数比你问题的字数还多!),你都说不清楚还有谁比你清楚?
b.一定要仔细,比如如何添加图片,你如果加入图片后,仔细看就会知道如何添加图片(点下图片即可添加),尽管这是个简单的事情,但如果都自己办不好,那还是说明不仔细。
c.你多少去看下编译原理,可以先粗略的看下,或者看看汇编的书。力求能逐渐的自己解决问题。
一周热门 更多>