jicheng0622

【原创】小技巧之实现IAR下S19、Bin、Hex文件格式转换

0
阅读(9957)

    今天有点小激动,搞了大半年的课题终于有点成果了,眼泪哗哗的,太不容易了,哈哈。所以趁着心情大好手感大好的时候,抓紧更更博客了。另外从零入手系列好久没更新了,也有博友问我啥时候更新,哎,大家的热情我还是很感激的,最近一直在搞 FPGA这块,Kinetis那部分放下一段时间了,不过用不了多长时间就会继续更新了。其实FPGA搞了一段时间发现还是搞ARM更顺手些,习惯了C的顺序编程,FPGA的并行编程一时之间还真转不过这个弯来,哈哈~

    本篇内容自己早就想好了,只不过不是被事耽搁就是手感不好就没有写出来,今天就拿出来说说吧,不然再过段时间就被我尘封在大脑皮层的深处了,呵呵。其实内容很简单,无非就是对IAR环境的设置(咳咳,可以说一点技术含量都没有),不过本篇博客核心思想是开阔一下大家的思路“原来这样就可以”。。。另外本篇最后给出了用CW自带的格式转换工具的用法链接,那部分是从飞思卡尔技术社区的安版主写的,有兴趣的可以去看看。下面进入正题吧:

    首先说说这三个文件格式的来头。bin文件是我们最常见的二进制文件,它是纯数据文件,也即是“所见即所得”,所以如果我们想看看需要下载到单片机flash的数据的大小,最简单的方法就是查看我们编译连接后生成的bin文件大小;hex文件则是Intel很早就推出的一种文件格式(Intel还是一如既往的很牛逼啊有木有),它除了有效数据信息之外还包含了一些多余信息(包括地址信息,校验码之类的等等信息),所以hex文件是很大的,而最终下到单片机的flash里的仍是其中的有效数据段,而其他的信息段则是作为flash编程软件的辅助信息的(包括地址信息)。因此我们常见的问题就来了,如果烧写或者下载Bin文件时,软件会弹出首地址框输入相应地址信息,而在烧写Hex文件的时候则不必再输入地址信息了,因为Hex里面已经包含了。嘿嘿,有“中枪”遇到这种情况的没,这就是原因啦。至于S19文件则是飞思卡尔提出的文件格式,与Hex原理类似,只不过格式不一样罢了。这里光原理就说了这么多了,所以至于具体Hex和S19文件格式我就不过做介绍了,大家可以google之,哈哈~

    好了,前面说了说理论基础,下面就说说具体怎么操作了,非常之简单,简单的我都不好意思说了,所以只能上图了,哈哈:

    如上图所演示的那样,相应的设置选择好了,点击“OK”,然后再make一下,就可以在工程根目录下的FLASH_512KB_PFLASH\Exe文件下找到刚才所选格式的文件了,如果你想再次生成别的格式的文件的话那再重新设置一次就可以了,而且不会覆盖其他格式的文件,然后你就可以用flash烧写软件把刚刚生成文件烧写到单片机里面去了。如果是Kinetis的话,建议看看我以前写的一篇《【原创】教你用J-Flash ARM工具单独烧写程序到Kinetis》博客,里面详细说了生成烧写文件之后该干的事了,哈哈,很配套吧。。。

    喝口水先~~其实很简单是吧,呵呵,IAR的强大还待我们去开发,未来某段时间我还会奉上关于IAR的一些丰富多彩的实用技巧,敬请期待,哈哈,未完待续~

    该链接为飞思卡尔技术社区的安版主写的关于用CW自带的burner小工具转换文件格式的小技巧,建议去瞅瞅,会有收获。http://www.freescaleic.org/caihong0217/blog/12-01/237545_7ea52.html