【原创】Codewarrior10.x下生成的image文件后缀都是.hex
0赞坐在回北京的高铁上,最近忙碌的心慢慢静了下来,终于又可以整理整理头绪,把这段时间的积累和沉淀捋一捋,写几篇文章分享出来。我现在还真是非常享受高铁上这会儿静静的写文章的感觉(哎,我都为俺这辈子没做成一个作家感到可惜了,走上了程序员这条不归路啊,哈哈,嘘,低调低调…),所以现在出个差,我是宁愿做高铁也不灰机了,用大张伟的那首歌词来形容的话,就是“这feel倍儿爽”,呵呵~
不过在我刚刚文思泉涌时,突然冒出个小插曲,为这段本来宁静的旅程又增添了不少浓浓的乐趣。刚刚做在我旁边的大姐,上一秒还操着一口非常正宗的东北话打电话,我正回味着这亲切的乡音呢,结果下一秒挂掉电话换上一口特温柔韩语跟旁边的同伴热聊了起来(让我又回到来自星星的你的赶脚),顿时把我下巴惊掉一地啊,这…也可以?这到底是俺们正宗东北人儿学的标准韩语还是正宗韩国人学的标准东北话啊,咳咳,我表示大脑转不过来了,呵呵,还是回过头来老实的写俺的博客吧!
回到正事上来,最近有同事问到我在使用Codewarrior10.6时生成image文件时,为啥无论选择哪一种生成的文件类型(bin, S19 or hex)最后编译之后生成的都是.hex文件,如下两图所示,对此很多人都表示很疑惑,那已不是意味着Codewarrior10.x生成不了其他image文件了,这样的话可就麻烦了,因为很多烧写工具不支持hex文件的,bin文件居多,有些飞思卡尔自己的烧写工具只支持是.srec文件。
但是如果深入研究一下就会发现问题了,在你选择不同的生成文件类型时,打开同是.hex后缀的文件会发现里面的内容格式是不一样的,生成binary格式时打开的文件是纯二进制数据流,而生成serc格式即S19格式时打开的文件是字符型S19格式。这下问题就昭然若揭了,实际上在我们选择生成不同的image文件类型时,编译后生成的数据格式已经改变了,只不过后缀名都统一被Codewarrior改成.hex,所以我们只需要把相应格式的文件后缀改成对应的后缀就可以了,对binary格式文件将.hex改成.bin,将Serc格式文件改成.srec即可。至于原因,我还真不知道是Codewarrior故意为之,还是这真的是个bug。
Ok. 这个问题就写到这了,虽然问题较小,但是不清楚怎么回事估计又要折腾半天了,哈哈。整理一下准备下一篇文章,未完待续~