急,单片机bin或者hex转obj的问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:40:10
有无可用的工具,如果不能转的话,原因是什么?能否手工转换,希望能详细一点,满意加分。

没有bin/hex 转成hex文件
bin/hex其实是一样的文件..可以想换转化的
hex比bin的好处是..有各种校验.不容易出错
bin是存二进制文件.可以直接烧写

obj文件是.编译器编译后的结果.他没有经过链接
也就是说.里面的代码还没有具体定位到单片机的存储器的固定地址
比如
void delay(void){}; 他的编译的时候.是没有生成运行地址的
但是通过链接器链接后..就会把delay 放到对应的地址上
因为c环境一般来说..都是编译好好自动帮你链接的.所以看不见而已

如果你以后用gcc 这种编译器..自己写makefile这种文件.就知道了

所以bin/hex->obj是不可能的..因为他根本就不知道..某个函数是在某个文件里面的..即不知道在某个obj里面的..他就没有办法转化.
////////////////////////////////////////////////////////
另外我不知道为什么你需要obj文件....好像没有什么地方.需要用到这种方法的,,...你想的东西,或许有其他办法解决吧.

单片机的BIN是二进制文件,HEX是十六进制文件,obj是实体文件(包含各种"属性").
单片机的编程环境的目的就是要为了生成能直接烧入到芯片中的二进制代码,但是这整个过程,被分成了两部分完成,一是右单片机编程环境通过编译后生成"上层"十六进制文件(此文件绝对不是烧入到单片机中的二进制文件或是十六进制文件),二是有烧写软件和烧写器完成将"上层"的十六进制文件经过数据格式的转换处理来变成单片机能接受的"低层"二进制文件.
所以说这个两部分功能的接口就是"上层"的十六进制文件.
而obj文件则是记录你编译中各种"属性"(这里的"属性"概念同C++或VC++中的"属性"概念相似)的一个文件,对于HEX文件来讲,其实属于一个过渡文件.

一般情