PlatformIO生成hex文件失败问题

错误的脚本

百度可以搜索到若干文章,如果不信,官网文档中也是这样的代码:

Import("env")
env.AddPostAction(
    "$BUILD_DIR/${PROGNAME}.elf",
    env.VerboseAction(" ".join([
        "$OBJCOPY", "-O", "ihex", "-R", ".eeprom",
        "$BUILD_DIR/${PROGNAME}.elf", "$BUILD_DIR/${PROGNAME}.hex"
    ]), "Building $BUILD_DIR/${PROGNAME}.hex")
)

HEX生成出错

使用后处理Python脚本自动执行编译指令,PlatformIO生成hex失败,错误信息如下:

以上内容可知似乎是该指令执行时候语法错误。

解决方式

gcc交叉编译工具并不很熟悉,那就百度吧,百度再次理所当然地失望,那就谷歌吧,问题解决!

使用新的脚本,唯一的变化就是指令语法加了'':

Import("env")

# # Custom HEX from ELF

env.AddPostAction(

    "$BUILD_DIR/${PROGNAME}.elf",

    env.VerboseAction(" ".join([

        "$OBJCOPY", "-O", "ihex", "-R", ".eeprom",

        '"$BUILD_DIR/${PROGNAME}.elf"', '"$BUILD_DIR/${PROGNAME}.hex"'  # 加个单引号

    ]), "Building $BUILD_DIR/${PROGNAME}.hex")

)

CLI中使用

pio run -e nucleo_h743zi -v

 nucleo_h743zi有所不同,错误的话会有提示……

可以查看到展开后的完整指令是,路径要加单引号'':

arm-none-eabi-objcopy -O ihex -R .eeprom E:\02_svns\myprojects\9. Arduino\02_Devlop\01_First_A_STM32_FreeRT_Pjt\.pio\build\nucleo_h743zi/firmware.elf E:\02_svns\myprojects\9. Arduino\02_Devlop\01_First_A_STM32_FreeRT_Pjt\.pio\build\nucleo_h743zi/firmware.hex

参考链接:

Can't generate hex file using post process - #3 by ksimpson - PlatformIO Community

其他

打开终端

 【pio run -e nucleo_h743zi -v】

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值