怎么确定一个程序需要多大Flash内存的单片机?

2019-03-24 10:18发布

今天写了一个程序编译出来的txt大小是1k,而编译出来的d43大小是14k。
我把txt烧到430f149的开发板上运行正常,但是用UIF烧到430f122(4k)上面跑就有问题了
不知道是不是因为430f122的内存不够?
程序才20几行,我把所有的乱七八糟的都删了只留了一个控制p3.0输出高电平就有13k的d43文件了

不知道我应该怎么确定最后的程序需要多大内存的单片机呢?应该看什么? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
作死教练
1楼-- · 2019-03-25 14:21
chunyang 发表于 2015-4-24 12:57
看编译报告,一般在列表文件中,有的编译软件在集成环境下都会有显示。另一个办法是看二进制文件的长度,但编译器一般不输出二进制文件,需要使用HEX转BIN软件进行转换,但现在的编译器已无需此法,只有那些古老的编译器才需要用此法。

我用的是IAR for 430 的5.30版本

我在没有找到你说到的编译报告,也不清楚什么是列表文件,不知道能不能解释一下?
chunyang
2楼-- · 2019-03-25 15:24
作死教练 发表于 2015-4-24 21:20
我用的是IAR for 430 的5.30版本

我在没有找到你说到的编译报告,也不清楚什么是列表文件,不知道能不能解释一下?

IAR本身应有报告,注意观察。列表文件的扩展名为LST。
tiankai001
3楼-- · 2019-03-25 16:08
 精彩回答 2  元偷偷看……
qiushenghua
4楼-- · 2019-03-25 20:45
你有没有打开过生成的TXT文件?
  1. @c000
  2. B2 40 80 5A 20 01 D2 42 FF 10 57 00 D2 42 FE 10
  3. 56 00 D2 D3 27 00 D2 D3 22 00 E2 43 58 00 B2 40
  4. E4 02 60 01 B2 D0 10 00 64 01 32 D2 32 D0 18 00
  5. FD 3F 31 40 00 04 B0 12 56 C0 0C 43 B0 12 00 C0
  6. B0 12 5A C0 F2 E3 21 00 00 13 F2 E3 21 00 00 13
  7. 32 D0 10 00 FD 3F 1C 43 30 41 03 43 FF 3F
  8. @ffe0
  9. 50 C0
  10. @ffe4
  11. 50 C0 50 C0
  12. @ffea
  13. 50 C0 50 C0 50 C0 4A C0 44 C0 50 C0 50 C0 50 C0
  14. 50 C0 50 C0 32 C0
  15. q
复制代码

上面这个是我打开的一个TXT文件的内容,可以看到其格式为:

@地址
内容

只要数数有多少个字节的内容,就知道占用多少的flash空间了。
注意TXT文件是用ASCII储存的,去掉空格、地址和回车符,再统计字数,2个字符对应1个字节的空间,很容易数出占用了多少flash空间。


——好吧,我承认我是特地来搞笑的,大家无视我就好了……

一周热门 更多>

相关问题

    相关文章