在使用UV4编译生成目标文件的时候,在选项里可以配置生成hex文件,如下图,在下图中勾上Create HEX File前的复选框即可.
但是我们的目标是生成bin文件,因此需要另外两行用户指令来完成(其实我们可以不生成hex文件,只不过hex文件是用来给flash magic之个工具来用的).
在User选项卡中,如下图:
在上面选项卡中设置编译完后运行两条用户指令:
d:/Program Files/Keil/ARM/BIN/ElfDwT.exe./Flash/Blinky.axf
d:/Program Files/Keil/ARM/BIN40/fromelf.exe--bin --output ./Flash/Blinky.bin ./Flash/Blinky.axf
DlfDwT.exe是一个校验axf文件的工具,它的输入文件是axf文件.
fromelf.exe是一个将axf文件转化为bin文件的工具.
以上两条用户指令都不能缺少,
若缺少第一条指令,则生成的bin文件内缺少校验码.即0x1c~0x1f这四个字节为校验和.
缺少第二条指令则不能生成bin文件.
注:
生成的bin文件从0x1c~0x1f为校验码,它和0x00~0x1b这7个字总共8个字的和应为0x100000000,若不成立,则不能正常运行.
这样看来,在编译时没有进行校验和运算,因此,需要一个外部工具来完成这样的工作.同样,使用CoIDE时也存在这样的问题.
CoIDE编译时会生成bin文件,但是同样编译时没有进行校验和运算, 所以生成的bin文件中这4个字节都是0x00。
要生成带校验和的bin文件,可以使用CoIDE中的post-build功能。但需要安装了自带checksum功能的工具,如lpcxpresso。
打开工程配置build.xml,在Run User Programs区域的After Build/Rebuild标签下添加命令并打勾。
命令格式为:"checksum.exe路径" -p 芯片名 "bin文件路径"
例如:"D:\nxp\lpcxpresso_3.6.3_317\bin\checksum.exe" -p LPC1114"D:\ProgramFiles\CooCox\CoIDE\workspace\LPC1114\Debug\bin\LPC1114.bin"
参考:http://www.coocox.org/Forum/topic.php?id=905