visual-studio-code - PlatformIO不会在VS Code中创建firmware.bin

标签 visual-studio-code firmware platformio

我下载了一些固件的更新版本,需要将其编译成 firmware.bin 文件(firmware.hex 不起作用)。大多数在线教程都说要使用 PlatformIO 来实现此目的,但每当我构建固件时,一切都会按计划进行,编译时没有任何错误,并表示它成功了。但是,在大多数 YouTube 视频或在线文档中,最后几行包含类似

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 ================================================

虽然我的看起来像这样:

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.binMany other places说 platformio 默认创建一个 .bin 文件,所以我不认为这是我忘记做的事情,但那是什么?我需要编辑 Platformio.ini 文件或其他文件吗?

最佳答案

我在构建 arduino 时遇到了同样的问题。我找到的解决方案是在工作区添加一个 extra_script.py 文件来编译 bin。

引用文献

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

; 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 位于同一文件夹中

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"))

关于visual-studio-code - PlatformIO不会在VS Code中创建firmware.bin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63063252/

相关文章:

c++ - VSCode/platformio 中的多个包含问题

visual-studio-code - VSCode : keep focus in Source Control Viewlet when opening a file

computer-architecture - CPU如何访问存储在外部存储器中的BIOS指令?

c++ - 未显式引用对象的全局对象构造函数在最终二进制文件中被丢弃 - LD

embedded - 关于 Bus Pirate 设备编程器的意见?

c++ - 如何在不刷新的情况下运行 ESP32 的单元测试?

build - 使用 PlatformIO 自动增加内部版本号

ubuntu - 在 Ubuntu 12.04 上的 Visual Studio Code 中仅打开特定文件夹

node.js - 文件 : 'package.json' severity: 'Warning' message: 'Problems loading reference ' ': Unable to load schema from '' : Unable to to connect to

python - 如何在 Visual Studio Code 中使用基于断点的调试器来调试 CKAN?