想由IAR工具得到BIN文件,但得到的文件都不是想要的,太大了, 打开后发现无效地址区都被填充了,又没找到SIM文件格式,就想办法解读了SIM的文件格式如下, 不敢独享,拿开让兄弟们补全下, 首先是文件头,类似于S19文件,不过不同的是S19是文本文件,SIM是BIN文件 且是可以用来仿真执行的BIN文件, @@Header: 14 Bytes 00--03: 0x7F 0x49 0x41 0x52 // 标识符 04--07: 0x00 0x00 0x00 0x00 // Flag(未用) 08--0B: // Data Length (Hi--Low) 0C--0D: // version (not used) 接下来的部分是数据区,数据区可以分好几个段,都按如下格式即可,第一个字节是标识符,我命名为:recordTag , @@Data: recordTag = 0x01 01----: 0x00 // segtype (not used) 02--03: 0x00 0x00// flags (not used) 04--07: // drec_start Data Start Address (Hi--Low) 08--0C: // drec_bytes Data Length (Hi--Low) 文件的执行首地址,以0x02标识头; @@EntryRecord: recordTag = 0x02 01--04: // Soft Entry Point. 05 : // ??这个是做什么用的呢? 接下是校验区,从源码上来看, @@EndRecord: recordTag = 0x03 01--04: // checksum //===checksum计算方法 文件所有数据的字节的补码 兄弟们可以打开SIM文件对照下,帮忙指出错误, 在此谢过. 打算弄一个SIM转BIN的工具出来,如果哪位兄弟有的话,是最好了,
|