我正在尝试通过 PlatformIO 对我的 STM32 进行编程。我正在使用内置的眨眼示例,所以我“知道;”我的代码不是导致问题的原因。我正在使用 macOS - M1 Max - Monterey(12.13.1)。
这是我正在使用的板:https://ubld.it/products/stm32-midi-dev
程序构建得很好,但是在尝试上传时,出现以下错误:
dyld[54244]: Library not loaded: /opt/local/lib/libusb-1.0.0.dylib
Referenced from: /Users/***/.platformio/packages/tool-stm32duino/dfu-util/dfu-util
Reason: tried: '/opt/local/lib/libusb-1.0.0.dylib' (no such file), '/usr/local/lib/libusb-1.0.0.dylib' (no such file), '/usr/lib/libusb-1.0.0.dylib' (no such file)
/Users/***/.platformio/packages/tool-stm32duino/maple_upload: line 53: 54244 Abort trap: 6 ${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} -R ${dfuse_addr} -R
*** [upload] Error 134
我的platformio.ini文件如下:
[env:genericSTM32F103CB]
platform = ststm32
board = genericSTM32F103CB
framework = arduino
board_build.core = maple
upload_protocol = dfu
我尝试过以下方法:
brew install libusb
- 但它已经安装了brew uninstall libusb
- 然后 - brew install libusb
我已阅读错误消息并了解到文件似乎不存在,但不确定下一步是什么,因为我尝试重新安装上面的 libusb。
这是我的完整上传输出(如果有帮助):
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103CB.html
PLATFORM: ST STM32 (15.3.0) > STM32F103CB (20k RAM. 128k Flash)
HARDWARE: STM32F103CBT6 72MHz, 20KB RAM, 128KB Flash
DEBUG: Current (blackmagic) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES:
- framework-arduinoststm32-maple @ 3.10000.201129 (1.0.0)
- tool-dfuutil @ 1.9.211020
- tool-openocd @ 2.1100.211028 (11.0)
- tool-stm32duino @ 1.0.1
- toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://docs.platformio.org/en/latest/librarymanager/ldf.html
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 30 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Checking size .pio/build/genericSTM32F103CB/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 21.1% (used 4312 bytes from 20480 bytes)
Flash: [= ] 14.3% (used 18712 bytes from 131072 bytes)
Configuring upload protocol...
AVAILABLE: blackmagic, cmsis-dap, dfu, jlink, serial, stlink
CURRENT: upload_protocol = dfu
Looking for upload port...
Auto-detected: /dev/cu.usbmodem1101
Uploading .pio/build/genericSTM32F103CB/firmware.bin
Failed to open serial device.
dyld[54773]: Library not loaded: /opt/local/lib/libusb-1.0.0.dylib
Referenced from: /Users/***/.platformio/packages/tool-stm32duino/dfu-util/dfu-util
Reason: tried: '/opt/local/lib/libusb-1.0.0.dylib' (no such file), '/usr/local/lib/libusb-1.0.0.dylib' (no such file), '/usr/lib/libusb-1.0.0.dylib' (no such file)
/Users/***/.platformio/packages/tool-stm32duino/maple_upload: line 53: 54773 Abort trap: 6 ${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} -R ${dfuse_addr} -R
*** [upload] Error 134
提前感谢您的帮助。对于嵌入式来说还很陌生。
===编辑=== 当我继续研究时,我认为这与 homebrew 没有安装在 libusb 的正常位置有关。 Homebrew Mac M1 找不到安装
好的。感谢 PlatformIO 的 Ivan,他给了我以下解决方案。现在效果很好。
没有适用于 macOS ARM 的 STM32Duino /dfu-binaries 的新版本:
我可以请你尝试接下来的事情吗?
~/.platformio/packages/tool-stm32duino/maple_upload
DFU_UTIL=~/.platformio/packages/tool-dfuutil/bin/dfu-util
我的 2021 M1 Mac (Ventura 13.6) 上也有同样的问题。我按照你的指示操作,但仍然收到此错误:
Checking size .pio/build/bluepill_f103c8_128k/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [== ] 21.1% (used 4312 bytes from 20480 bytes)
Flash: [= ] 14.9% (used 19504 bytes from 131072 bytes)
Configuring upload protocol...
AVAILABLE: blackmagic, cmsis-dap, dfu, jlink, serial, stlink
CURRENT: upload_protocol = dfu
Looking for upload port...
Auto-detected: /dev/cu.wlan-debug
Uploading .pio/build/bluepill_f103c8_128k/firmware.bin
dyld[22077]: Library not loaded: /usr/local/opt/libusb/lib/libusb-1.0.0.dylib
Referenced from: <196384F2-82B2-3D72-BA1C-183785B95BB9> /Users/***/.platformio/packages/tool-dfuutil/bin/dfu-util
Reason: tried: '/usr/local/opt/libusb/lib/libusb-1.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libusb/lib/libusb-1.0.0.dylib' (no such file), '/usr/local/opt/libusb/lib/libusb-1.0.0.dylib' (no such file), '/usr/local/lib/libusb-1.0.0.dylib' (no such file), '/usr/lib/libusb-1.0.0.dylib' (no such file, not in dyld cache)
/Users/***/.platformio/packages/tool-stm32duino/maple_upload: line 54: 22077 Abort trap: 6 ${DFU_UTIL} -d ${usbID} -a ${altID} -D ${binfile} -R ${dfuse_addr} -R
*** [upload] Error 134
有人知道我为什么会收到此错误吗?