这个指什么啊

[复制链接]
849|22
手机看帖
扫描二维码
随时随地手机跟帖
wangzsa|  楼主 | 2019-1-24 10:21 | 显示全部楼层 |阅读模式
我们平常看片子什么56Kflashl啦 等等这些这里的56K 指的是我们在编译的时候
下面给出的
Program Size: Code=3696 RO-data=162148 RW-data=36 ZI-data=628

还是指生成的HEX文件的大小。

多谢各位。
wangzsa|  楼主 | 2019-1-24 10:25 | 显示全部楼层
还有 CODE的大小怎么算的..

使用特权

评论回复
zhuww| | 2019-1-24 10:29 | 显示全部楼层
FLASH指程序存储器的大小,Code大小则是你的程序编译后的机器码(BIN文件)的大小,Code尺寸必须小于等于程序存储器的大小。

使用特权

评论回复
zhanglli| | 2019-1-24 10:31 | 显示全部楼层
编译时给出程序存储器空间的意义在于制定跳转、调用指令以及代码超出时警告。

使用特权

评论回复
wangzsa|  楼主 | 2019-1-24 10:52 | 显示全部楼层
OK
大致有数了

就是说HEX文件的大小和flash的大小并没有直接的关系
这样理解可以么?

使用特权

评论回复
lium| | 2019-1-24 10:55 | 显示全部楼层

56K是说芯片内部最多56K字节可以供程序使用
BIN是实际程序大小

使用特权

评论回复
guoyt| | 2019-1-24 10:58 | 显示全部楼层
FLASH的大小是芯片本身决定的,跟你的HEX文件当然无关了

使用特权

评论回复
hanwe| | 2019-1-24 11:01 | 显示全部楼层
有关系,你HEX文件的大小和必须要小于飞Flash的大小,不然你没法下载。

使用特权

评论回复
yufe| | 2019-1-24 11:05 | 显示全部楼层

Flash的大小决定了你的程序量。

使用特权

评论回复
llia| | 2019-1-24 11:08 | 显示全部楼层
对,但你必须选能装的下你程序代码的FLASH空间,FLASH正如装水的碗,程序则是水。

使用特权

评论回复
wangpe| | 2019-1-24 11:11 | 显示全部楼层
HEX是一种二进制文件格式,属于intel格式,另外还一种二进制格式是srec格式,即motorola格式。HEX文件的大小不是真实二进制程序的大小, 一般HEX文件都比真正的二进制程序bin文件大很多,所以你所说的HEX文件的大小必须要小于flash的大小有误

使用特权

评论回复
zhuww| | 2019-1-24 11:15 | 显示全部楼层


bin文件是二进制文件,它的每一个字节都会被烧录到目标存储器,但是必须由你来确定从哪烧起。
hex文件是bin文件按照一定的规则用文本方式表示,其中包含了,那些二进制值是烧录在哪个位置等信息。

使用特权

评论回复
lium| | 2019-1-24 11:17 | 显示全部楼层
嗯,这些信息是给烧录器使用的,因此这不是最终烧入进存储器的字节数。

使用特权

评论回复
wangpe| | 2019-1-24 11:20 | 显示全部楼层
Code=3696 +  RO-data=162148

使用特权

评论回复
lium| | 2019-1-24 11:23 | 显示全部楼层
代码+只读数据大小 就是写入的大小,这里不包含各个段之间空余的部分,实际会大一些

使用特权

评论回复
hanwe| | 2019-1-24 11:25 | 显示全部楼层
烧录到芯片里面的应该是.bin文件。HEX文件到.bin文件有一种对应关系。.

使用特权

评论回复
llia| | 2019-1-24 11:28 | 显示全部楼层

bin文件的大小小于.hex文件的1/2。
具体详细情况请百度。

使用特权

评论回复
yufe| | 2019-1-24 11:32 | 显示全部楼层
就是芯片的存储空间的大小,你编写的程序太大了,就放不下了

使用特权

评论回复
wangpe| | 2019-1-24 11:34 | 显示全部楼层
flash指的是芯片内部存储容量的大小,有芯片制造商设计是确定,是固定的。

使用特权

评论回复
langgq| | 2019-1-24 11:37 | 显示全部楼层
下载到芯片内的字节数就是你编译时的CODE数,因此要求CODE<=flash。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝