前面讲过TI的out转换为bin,其中也说hex转bin,通过VC2005编写了一个hex转bin的工具(点击下载),下面说说hex转bin的方法。
hex文件的格式说明参见百度百科http://baike.baidu.com/view/1229888.htm,文中提到了三类地址
00类型对应的记录地址,
02类型对应的扩展段地址,
04类型对应的扩展线性地址。
可以看出hex文件支持32位地址空间,地址的起地址从0x0000 0000开始,02扩展段地址相当于地址的高16bit,04扩展线性地址相当于段地址,00记录地址相当于段内偏移地址,最终对应的存储器地址=(扩展段地址<<16)+(扩展线性地址<<4)+记录地址。如扩展段地址为0x0001,扩展线性地址为0x1111,记录地址为0x1234,最后的存储器地址为0x00022344=(0x0001<<16)+(0x1111<<4)+0x1234。转换为bin即在存储器位置开始写入数据记录中的内容,注意将ASCII形式的十六进制数转换为数值形式的。
bin文件已经不包含地址信息了,它仅包含从0x0000 0000地址开始往后顺寻写入二进制数字,又由于一般的程序文件不会占用32bit的地址空间,所以此二进制文件的起始地址实际是Flash存储器的段内的偏移地址,只需将bin文件的数据顺序写入Flash即可。