STM32F103C8T6的64K ROM怎么能烧进99K?

2019-08-18 20:28发布

STM32F103C8T6 ROM 64K RAM 20K

.map文件里的数据
      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   

     37686       2080      63746        488     237224     142676   Grand Totals
     37686       2080      63746        100     237224     142676   ELF Image Totals (compressed)
     37686       2080      63746        100          0          0   ROM Totals

==============================================================================

    Total RO  Size (Code + RO Data)               101432 (  99.05kB)
    Total RW  Size (RW Data + ZI Data)            237712 ( 232.14kB)
    Total ROM Size (Code + RO Data + RW Data)     101532 (  99.15kB)

==============================================================================

上面这个能烧写进去,且能正常运行。

==============================================================================


      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   

     63076       2672      70416        712     237176     160605   Grand Totals
     63076       2672      70416        172     237176     160605   ELF Image Totals (compressed)
     63076       2672      70416        172          0          0   ROM Totals

==============================================================================

    Total RO  Size (Code + RO Data)               133492 ( 130.36kB)
    Total RW  Size (RW Data + ZI Data)            237888 ( 232.31kB)
    Total ROM Size (Code + RO Data + RW Data)     133664 ( 130.53kB)

==============================================================================

上面这个烧写时KEIL报错,无法烧写成功。


程序里面有EMWIN,是不是某些因素影响了这个结果。如何看到正确的ROM有多大?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
冥羿
1楼-- · 2019-08-18 22:58
据说:生产的时候C8T6和CBT6是一个批次,进行FLASH测试,128K测试过了,这个芯片就是CBT6,如果128K测试不过,就加上C8T6的丝印。
jinggx
2楼-- · 2019-08-19 01:27
本帖最后由 jinggx 于 2017-5-18 00:13 编辑

output窗口就有,你为啥去看map文件?你要看那就去研究清楚ro,rw,zi的意义以及如何存储吧。别只会做加法!
szczyb1314
3楼-- · 2019-08-19 06:56
 精彩回答 2  元偷偷看……
q872529868
4楼-- · 2019-08-19 07:53
szczyb1314 发表于 2017-5-18 08:39
程序大小是code+R0的大小:
第一个:37686+2080=38.77KB64KB
你的第二个程序稍稍有点大了

按照您的计算方法好像是对的,但是又有点新问题。
Program Size: Code=60656 RO-data=67044 RW-data=728 ZI-data=237128  
这是keil的编译信息,按照您的计算方法60656+67044=124.7K
但是奇怪的是程序能烧写进去,且能运行。

如果按照.map里面结果来算
==============================================================================


      Code (inc. data)   RO Data    RW Data    ZI Data      Debug   

     60656       2614      67044        728     237128     155815   Grand Totals
     60656       2614      67044        192     237128     155815   ELF Image Totals (compressed)
     60656       2614      67044        192          0          0   ROM Totals

==============================================================================
60656+2614=61.7K,这个结果好像是正确的。

另外我的内存好像也爆掉了,但是怎么又能运行?请说下内存的计算方法。谢谢。


http://blog.csdn.net/slj_win/article/details/11897595
按照百度的方法,我的flash,ram都爆了。
q872529868
5楼-- · 2019-08-19 12:10
自己顶下。
q872529868
6楼-- · 2019-08-19 13:49
再顶一下

一周热门 更多>