由C到HEX

franklin   2008-8-27 21:38 楼主
我最近正在使用AVR单片机,使用AVR studio这个开发工具,同时机器上还安装了AVR gcc,我使用C语言编程,我的问题是使用C语言编写的程序在编程HEX文件之前,是不是先由编译器转换成为汇编指令,然后被转换成为HEX文件的,如果不是,那么真正的过程是怎么样的。谢谢!

回复评论 (4)

楼主研究得真仔细,呵呵.转换过程大概也就是这样的了
点赞  2008-8-28 07:56
Hex文件本身只是一种目标代码的载体,包含了地址信息,并给每条record添加了chksum以便下载时校验;其他形式的目标代码文件还可以是Bin文件(纯粹的数据,无额外信息)。
楼主说的C -> Hex 过程应该就是C的编译过程,大体为:
c源码 -> compile(生成obj) -> link。
一旦源码被编译后即成为了目标机可识别的ASM指令序列,而Hex文件则是一个合集,附加实际存储到rom时所需的地址信息,并予以保存。用这种统一格式存储的好处就是下载器的接口可以标准化。
点赞  2008-8-28 08:18
HEX其实跟bin是一样的,只不过换了一个表示方式。
点赞  2008-8-28 20:32
LZ为什么关心这个问题?没什么意义,实在好奇,用记事本打开HEX文件看看。
点赞  2008-9-5 01:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复