首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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,定位并打开其所在的目录:

比如打开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系列

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225G0FO7P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券