15946|10

34

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

怎么确定一个程序需要多大Flash内存的单片机? [复制链接]

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

不知道我应该怎么确定最后的程序需要多大内存的单片机呢?应该看什么?

最新回复

你有没有打开过生成的TXT文件? @c000 B2 40 80 5A 20 01 D2 42 FF 10 57 00 D2 42 FE 10 56 00 D2 D3 27 00 D2 D3 22 00 E2 43 58 00 B2 40 E4 02 60 01 B2 D0 10 00 64 01 32 D2 32 D0 18 00 FD 3F 31 40 00 04 B0 12 56 C0 0C 43 B0 12 00 C0 B0 12 5A C0 F2 E3 21 00 00 13 F2 E3 21 00 00 13 32 D0 10 00 FD 3F 1C 43 30 41 03 43 FF 3F @ffe0 50 C0 @ffe4 50 C0 50 C0 @ffea 50 C0 50 C0 50 C0 4A C0 44 C0 50 C0 50 C0 50 C0 50 C0 50 C0 32 C0 q 复制代码 上面这个是我打开的一个TXT文件的内容,可以看到其格式为: @地址 内容 只要数数有多少个字节的内容,就知道占用多少的flash空间了。 注意TXT文件是用ASCII储存的,去掉空格、地址和回车符,再统计字数,2个字符对应1个字节的空间,很容易数出占用了多少flash空间。 ——好吧,我承认我是特地来搞笑的,大家无视我就好了……  详情 回复 发表于 2015-4-26 23:42
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

单片机程序不能直接烧写到不同的型号上去的!
在建立工程的时候不是有个型号选择么?要把那个也改掉重新编译才行。
另外,a43的大小并不是程序实际大小,建议生成TXT文件,打开之后就能看到,地址,程序都用ASCII写出来了,数程序部分占用几个字节的数据就行了。
另外,编译器在编译的时候也会提示使用了多少flash多少ram空间,只是不清楚你用的是什么编译器,显示的位置不方便指出来。
 
 

回复

230

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
我也好想知道啊,这个怎么弄的?
 
 
 

回复

1万

帖子

141

TA的资源

版主

4
 
看编译报告,一般在列表文件中,有的编译软件在集成环境下都会有显示。另一个办法是看二进制文件的长度,但编译器一般不输出二进制文件,需要使用HEX转BIN软件进行转换,但现在的编译器已无需此法,只有那些古老的编译器才需要用此法。
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

5
 
hex文件里有对应的软件代码大小可以看到
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

6
 
常见泽1 发表于 2015-4-24 13:03
hex文件里有对应的软件代码大小可以看到

能不能烦请详细讲解一下?
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

7
 
qiushenghua 发表于 2015-4-24 08:21
单片机程序不能直接烧写到不同的型号上去的!
在建立工程的时候不是有个型号选择么?要把那个也改掉重新编译才行。
另外,a43的大小并不是程序实际大小,建议生成TXT文件,打开之后就能看到,地址,程序都用ASCII写出来了,数程序部分占用几个字节的数据就行了。
另外,编译器在编译的时候也会提示使用了多少flash多少ram空间,只是不清楚你用的是什么编译器,显示的位置不方便指出来。

修改型号我注意了

我用的是IAR 5.30

是不是我应该根据生成的TXT的大小大致估计我的Flash内存需要多大?
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

8
 
chunyang 发表于 2015-4-24 12:57
看编译报告,一般在列表文件中,有的编译软件在集成环境下都会有显示。另一个办法是看二进制文件的长度,但编译器一般不输出二进制文件,需要使用HEX转BIN软件进行转换,但现在的编译器已无需此法,只有那些古老的编译器才需要用此法。

我用的是IAR for 430 的5.30版本

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

点评

IAR本身应有报告,注意观察。列表文件的扩展名为LST。  详情 回复 发表于 2015-4-24 22:44
 
 
 

回复

1万

帖子

141

TA的资源

版主

9
 
作死教练 发表于 2015-4-24 21:20
我用的是IAR for 430 的5.30版本

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

IAR本身应有报告,注意观察。列表文件的扩展名为LST。
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

6366

帖子

4914

TA的资源

版主

10
 
IAR编译成功后,会提示你程序使用了多少FLASH和RAM,你看看你的编译输出信息里面是不是选上了要求输出这些信息。
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

11
 
你有没有打开过生成的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空间。


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

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表