汽车电子expert成长之路

本博客发布的个人原创精品----嵌入式系统技术文章,欢迎大家参考学习,并转发分享!

CodeWarrior IDE使用Tips--使用burner将elf文件转换生成HEX和BIN文件

0
阅读(470) 评论(0)

CodeWarrior IDE使用Tips--使用burner将elf文件转换生成HEX和BIN文件的方法和步骤详解

作者按:本文旨在回答读者关心的如何CodeWarrior 2.10和10.6如何生成HEX和BIN文件问题,并对所有Freescale/NXP汽车Freescale/NXP汽车级MCU应用程序集成开发环境(IDE)中生成S19、HEX和bin等常见格式编程文件的方法进行了全面系统的总结,以供大家参考学习!


内容提要

引言

第一步、找到并创建burner工具快捷方式

第二步、将burner快捷方式拷贝到想要转换的elf文件所在目录

第三步、设置Burner对话框选项

①设置Burner对话框Input/Ouput栏选项----配置输入输出文件

②设置Burner对话框Content栏选项----设置输出文件格式和转换起始地址

第四步、以burner对话框配置生成的命令文件为基础,创建burner工具控制脚本文件

第五步、使用burner工具控制脚本提取elf文件中的编程数据并输出为HEX/BIN编程文件

总结


引言


之前的文章《S32DS 使用 tips--工程属性配置(编译选项和C编译器、汇编器及链接器设置)》中介绍了如何利用S32DS IDE集成的Create flash image工具生成S19/HEX/BIN等编程文件的方法步骤;在CodeWarrior 6.x(S08系列MCU)和CodeWarrior 5.x中默认会生成S19文件(默认文件名均为Project.abs.s19),要获得HEX和BIN文件格式的编程文件,可以通过其集成的burner工具进行转换,也还是十分方便的;


CodeWarrior 2.10和CodeWarrior 10.6下应用工程编译后默认也会生成S19文件(只是后缀为.mot, 其实质为S19文件,将其后缀改为.s19即可当做S19文件使用,亦可被所有可使用S19文件作为编程文件的Flash编程器识别),但是却没有简单的工程设置选项可以轻易生成/转换获得HEX和BIN文件格式的编程文件。


实际上在CodeWarrior IDE中集成的burner工具(针对S08、S12(x)以及MagniV S12Z系列),其功能十分强大,不但可以将CodeWarrior IDE自动编译生成的.abs文件,并提取其中的编程数据将其转换为S19/BIN/HEX等不同格式输出为变成文件,还可以将任何合法的elf文件识别并完成同样的功能;

本文就结合之前的《 CodeWarrior IDE使用Tips之burner工具使用详解(实现不同类型存储器地址间的转换和NVM编程格式文件的输出)》介绍一种使用burner工具将CodeWarrior 10.x IDE中Qorivva MOC56xx应用工程编译生成的elf文件编程信息进行提取并转换生成HEX和BIN格式编程文件的方法和步骤,以供大家参考学习!


第一步、找到并创建burner工具快捷方式


首先,使用全局搜索工具(Window自带的或者开源工具Everything),搜索burner.exe,定位并打开其所在的目录:

10.jpg

比如打开CodeWarrior 10.6.4下burner工具的安装目录,在其中选中burner.exe右键-->选择<创建快捷方式(S)>,这样就会在该目录下生成一个“burner.exe - 快捷方式”:

11.jpg

Tips:CodeWarrior 6.x和CodeWarrior 5.x IDE安装之后就会自动安装burner工具,而在CodeWarrior 10.x IDE中若仅安装支持Qorivva MPC56xx的安装包,则不包含burner工具,也就不会自动安装burner工具,需要下载并安装时选择S12Z或者S08/RS08支持包,才会安装burner工具:

13.jpg

其中,

选择S12Z了,其burner安装目录为:<CodeWarrior 10.x IDE 安装根目录>\MCU\S12lisa_Tools\Build_Tools;

而S08/RS08,其burner安装目录为:<CodeWarrior 10.x IDE 安装根目录>\MCU\prog;

无论哪个版本的CodeWarrior IDE,其自带安装的burner工具功能都是相同的,都可以用于本文介绍的方法。


第二步、将burner快捷方式拷贝到想要转换的elf文件所在目录

然后,将上一步创建的burner工具快捷方式拷贝到目标elf文件所在目录,本文想要转换的elf为CodeWarrior 10.6.4中创建的一个MPC5604B的应用工程所生成的二进制可执行文件,在其工程目录下的FLASH子目录下:

14.jpg

双击该快捷方式,即可打开burner工具,选择Close,关闭帮助(Tip of the Day)窗口:

15.jpg

第三步、设置Burner对话框选项


①设置Burner对话框Input/Ouput栏选项----配置输入输出文件

在burner工具中,选择菜单Burner-->Burner Dialog打开Burner对话框(或者直接点击右边的Burner对话框快捷图标也可):

16.jpg

在Burner对话框中的Input/Ouput栏中,默认的输入文件为%ABS_FILE%,输出文件为%ABS_FILE%.s19:

17.jpg

在Burner对话框中Input/Ouput栏,选择输入文件为当前目录下要转换的elf文(注意文件类型需要选择为*.elf才可以识别目标elf文件):

18.jpg

然后再将输出文件改为output.hex:

19.jpg

本例设置完成后的Burner对话框Input/Ouput栏选项如下:

20.jpg

Tips:这里是转换输出为HEX文件,所以输出文件名为output.hex,若要输出bin文件,则将其后缀修改为.bin,同时选择对于的文件类型即可。


②设置Burner对话框Content栏选项----设置输出文件格式和转换起始地址


接下来,设置输出格式为Intel Hex,转换起始地址为0,长度为0x80000,即可将elf文件中位于MPC5604B Code-Flash地址0x00000~0x7FFFF的512KB编程数据输出到目标地址0开始的hex文件中:

21.jpg

Tips:这里是转换输出为HEX文件,若想要输出bin文件,请将格式选择为Binary。


另外,这里设置转换的起始地址、长度和目标地址需要根据实际MCU的part number对于的地址进行设置。这里只能设置一端联系的转换地址。若要实现多段不连续地址的转换,可以通过修改burner脚本文件(.bll)实现。


第四步、以burner对话框配置生成的命令文件为基础,创建burner工具控制脚本文件


将上一步配置生成的burner控制脚本从burner对话框的Command File栏中拷贝出来:

22.jpg

然后,在elf文件所在目录下创建一个burner工具控制脚本文件,使用任意文本编辑器打开,粘贴从burner对话框中拷贝的脚本,并保存:

23.jpg

24.jpg

Tips:在此基础上,若要生成bin文件,并增加对MPC5604B的片上64KB Data-Flash的转换,则可以参考《 CodeWarrior IDE使用Tips之burner工具使用详解(实现不同类型存储器地址间的转换和NVM编程格式文件的输出)》修改burner工具控制脚本文件内容如下:


25.jpg


MPC5604B的Code-Flash和Data-Flash地址映射如下图:

26.jpg


第五步、使用burner工具控制脚本提取elf文件中的编程数据并输出为HEX/BIN编程文件


完成以上步骤之后,关闭burn工具,双击elf所在目录的burner快捷方式重新打开burner工具,并将第三步获得burner工具控制脚本拖拽到burner中即可生成所需的hex和bin文件:

27.jpg


总结


至此,我已经将所有Freescale/NXP汽车Freescale/NXP汽车级MCU应用程序集成开发环境(IDE)中生成S19、HEX和bin等常见格式编程文件的方法介绍完了,做一总结如下:

28.jpg


胡恩伟

NXP汽车电子FAE

若对本文观点有任何意见和建议欢迎留言指出。

如果喜欢,可以关注本人公众号,阅读更多精彩内容。