首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PlatformIO不会在VS代码中创建firmware.bin

PlatformIO不会在VS代码中创建firmware.bin
EN

Stack Overflow用户
提问于 2020-07-23 21:16:34
回答 1查看 3.9K关注 0票数 2

我下载了一些固件的更新版本,需要将其编译成firmware.bin文件(firmware.hex不能工作)。大多数在线教程都说它使用PlatformIO,但是每当我构建固件时,一切都按计划进行,它编译时没有任何错误,并说它成功了。然而,在大多数youtube视频或在线文档中,最后几行内容包括以下内容

代码语言:javascript
复制
Archiving .pio\build\mega2560\libFrameworkArduino.a
Archiving .pio\build\mega2560\lib9e6\libU8glib-HAL_ID1932.a
Linking .pio\build\mega2560\firmware.elf
Building .pio\build\mega2560\firmware.hex
Checking size .pio\build\mega2560\firmware.elf
Building .pio\build\mega2560\firmware.bin
RAM:   [======    ]  60.6% (used 4963 bytes from 8192 bytes)
Flash: [======    ]  63.7% (used 161682 bytes from 253952 bytes)
================================================ [SUCCESS] Took 222.23 seconds ================================================

而我的看起来是这样的:

代码语言:javascript
复制
Archiving .pio\build\mega2560\libFrameworkArduino.a
Archiving .pio\build\mega2560\lib9e6\libU8glib-HAL_ID1932.a
Linking .pio\build\mega2560\firmware.elf
Building .pio\build\mega2560\firmware.hex
Checking size .pio\build\mega2560\firmware.elf
RAM:   [======    ]  60.6% (used 4963 bytes from 8192 bytes)
Flash: [======    ]  63.7% (used 161682 bytes from 253952 bytes)
================================================ [SUCCESS] Took 222.23 seconds ================================================

当然,这里有一个firmware.elffirmware.hex,但是没有firmware.bin许多其他地方说platformio默认创建一个.bin文件,所以我不认为它是我忘记做的事情,但是它是什么呢?我是否需要编辑我的Platformio.ini文件,或者其他什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-02 10:12:18

我在为arduino建房子的时候也遇到过同样的问题。我找到的解决方案是在工作场所中添加一个extra_script.py文件,然后编译bin。

参考文献

基本上,您希望将extra_scripts行添加到platformio.ini文件中。

代码语言:javascript
复制
; you env might be different to might platform, board and framework be
[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino

extra_scripts = post:extra_script.py

extra_script.py文件驻留在与platformio.ini相同的文件夹中,

代码语言:javascript
复制
from os.path import join
Import("env", "projenv")

# Custom BIN from ELF
env.AddPostAction(
    "$BUILD_DIR/${PROGNAME}.elf",
    env.VerboseAction(" ".join([
                "$OBJCOPY",
                "-O",
                "binary",
                "$TARGET",
                "$BUILD_DIR/${PROGNAME}.bin"
            ]), "Building $TARGET"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63063252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档