PlatformIO生成hex文件失败问题

发布于:2023-01-16 ⋅ 阅读:(613) ⋅ 点赞:(0)

错误的脚本

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

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】


网站公告

今日签到

点亮在社区的每一天
去签到