SW4STM32生成 hex文件的设置方法
开发环境:WIN7_64 + SW4STM32
联系方式:yexiaopeng1992@126.com
修改:
2018年1月21日
在这周,有一个热心的网友向我发了邮件,讲述了生成hex的相关方法,并提供了pdf文档,经过验证是可以的。既然知识来源于网络,也应该通过网路回馈给大家。
pdf文档地址:点我下载
在pdf文档中有如图说明:
所以,可以在图示位置,将原来的
arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin";
替换为
arm-none-eabi-objcopy -O ihex "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.hex"
即可。
修改:
2017年10月26日
原先提到的方法生成的hex文件自带的地址是0x00000000,使用另外的下载工具,如ST-LINK UNITY或者是J-FLASH的时候,自动识别了hex文件的地址,此地址无法修改。而STM32的hex文件应该下载到0x08000000,所有该方法生成的hex文件是无法使用的。
暂时未找到指定地址的配置参数,特此说明。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
使用SW4STM32默认生成的是*.elf文件和*.bin文件,但有时我们需要hex文件,这时候就需要SW4STM32生成hex文件。
因为SW4STM32使用的是arm-none-eabi-工具,其链接生成文件的设置地方为Project->setting->Build Step
图中框内命令是修改后的,其修改前为:
arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin"; arm-none-eabi-size "${BuildArtifactFileName}"
修改后未:
arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin"; arm-none-eabi-objcopy -I binary -O ihex "${BuildArtifactFileBaseName}.bin" "${BuildArtifactFileBaseName}.hex";arm-none-eabi-size "${BuildArtifactFileName}"
标红部分为:arm-none-eabi-objcopy -I binary -O ihex "${BuildArtifactFileBaseName}.bin" "${BuildArtifactFileBaseName}.hex";
命令格式为: arm-none-eabi-objcopy -I binary -O ihex a.bin b.hex;//表示将a.bin文件转换为b.hex文件