作者按:本文旨在回答读者关心的如何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,定位并打开其所在的目录:
比如打开CodeWarrior 10.6.4下burner工具的安装目录,在其中选中burner.exe右键-->选择,这样就会在该目录下生成一个“burner.exe - 快捷方式”:
Tips:CodeWarrior 6.x和CodeWarrior 5.x IDE安装之后就会自动安装burner工具,而在CodeWarrior 10.x IDE中若仅安装支持Qorivva MPC56xx的安装包,则不包含burner工具,也就不会自动安装burner工具,需要下载并安装时选择S12Z或者S08/RS08支持包,才会安装burner工具:
其中,
选择S12Z了,其burner安装目录为:\MCU\S12lisa_Tools\Build_Tools;
而S08/RS08,其burner安装目录为:\MCU\prog;
无论哪个版本的CodeWarrior IDE,其自带安装的burner工具功能都是相同的,都可以用于本文介绍的方法。
第二步、将burner快捷方式拷贝到想要转换的elf文件所在目录
然后,将上一步创建的burner工具快捷方式拷贝到目标elf文件所在目录,本文想要转换的elf为CodeWarrior 10.6.4中创建的一个MPC5604B的应用工程所生成的二进制可执行文件,在其工程目录下的FLASH子目录下:
双击该快捷方式,即可打开burner工具,选择Close,关闭帮助(Tip of the Day)窗口:
第三步、设置Burner对话框选项
设置Burner对话框Input/Ouput栏选项----配置输入输出文件
在burner工具中,选择菜单Burner-->Burner Dialog打开Burner对话框(或者直接点击右边的Burner对话框快捷图标也可):
在Burner对话框中的Input/Ouput栏中,默认的输入文件为%ABS_FILE%,输出文件为%ABS_FILE%.s19:
在Burner对话框中Input/Ouput栏,选择输入文件为当前目录下要转换的elf文(注意文件类型需要选择为*.elf才可以识别目标elf文件):
然后再将输出文件改为output.hex:
本例设置完成后的Burner对话框Input/Ouput栏选项如下:
Tips:这里是转换输出为HEX文件,所以输出文件名为output.hex,若要输出bin文件,则将其后缀修改为.bin,同时选择对于的文件类型即可。
设置Burner对话框Content栏选项----设置输出文件格式和转换起始地址
接下来,设置输出格式为Intel Hex,转换起始地址为,长度为0x80000,即可将elf文件中位于MPC5604B Code-Flash地址0x00000~0x7FFFF的512KB编程数据输出到目标地址0开始的hex文件中:
Tips:这里是转换输出为HEX文件,若想要输出bin文件,请将格式选择为Binary。
另外,这里设置转换的起始地址、长度和目标地址需要根据实际MCU的part number对于的地址进行设置。这里只能设置一端联系的转换地址。若要实现多段不连续地址的转换,可以通过修改burner脚本文件(.bll)实现。
第四步、以burner对话框配置生成的命令文件为基础,创建burner工具控制脚本文件
将上一步配置生成的burner控制脚本从burner对话框的Command File栏中拷贝出来:
然后,在elf文件所在目录下创建一个burner工具控制脚本文件,使用任意文本编辑器打开,粘贴从burner对话框中拷贝的脚本,并保存:
Tips:在此基础上,若要生成bin文件,并增加对MPC5604B的片上64KB Data-Flash的转换,则可以参考《CodeWarrior IDE使用Tips之burner工具使用详解(实现不同类型存储器地址间的转换和NVM编程格式文件的输出)》修改burner工具控制脚本文件内容如下:
MPC5604B的Code-Flash和Data-Flash地址映射如下图:
第五步、使用burner工具控制脚本提取elf文件中的编程数据并输出为HEX/BIN编程文件
完成以上步骤之后,关闭burn工具,双击elf所在目录的burner快捷方式重新打开burner工具,并将第三步获得burner工具控制脚本拖拽到burner中即可生成所需的hex和bin文件:
总结
至此,我已经将所有Freescale/NXP汽车Freescale/NXP汽车级MCU应用程序集成开发环境(IDE)中生成S19、HEX和bin等常见格式编程文件的方法介绍完了,做一总结如下:
以上就是今天跟大家分享的内容。希望对大家有用。
本微信公众号已经发布的个人原创精品----嵌入式系统技术文章链接如下,欢迎大家参考学习,并转发分享(可直接点击下列文章题目跳转阅读):
1. 汽车电子ECU bootloader开发系列
2. 浅谈嵌入式MCU开发系列
3. 外设使用Tips系列
4. S32DS 使用Tips系列
5. CodeWarrior IDE使用Tips系列
领取专属 10元无门槛券
私享最新 技术干货