我正在使用优秀的http://platformio.org/和Visual Studio Code来开发Teensy 3.6(Arduino兼容板)。
这很有效。但我想通过SWD(串行线调试)做更好的调试。 所以我断开了与Arduino兼容的USB芯片,并通过SWD和JLINK连接。与此类似:https://mcuoneclipse.com/2017/04/29/modifying-the-teensy-3-5-and-3-6-for-arm-swd-debugging/
我可以使用" J-Link Lite"来刷新我通过platformio构建的固件。软件就好了。我也可以毫无问题地运行J-Link GDB服务器。 但我无法让IDE集成工作。
我的platformio.ini
看起来像这样:
[env:teensy36]
platform = teensy
board = teensy36
framework = arduino
upload_protocol = jlink
debug_tool = jlink
仍然忽略upload_protocol,当我通过IDE调用上传(platformio.exe run --target upload
)时,我得到的是
Linking .pioenvs\teensy36\firmware.elf
Checking program size
text data bss dec hex filename
17348 172 2696 20216 4ef8 .pioenvs\teensy36\firmware.elf
Building .pioenvs\teensy36\firmware.hex
Uploading .pioenvs\teensy36\firmware.hex
Teensy Loader, Command Line, Version 2.1
Read ".pioenvs\teensy36\firmware.hex": 17520 bytes, 1.7% usage
Soft reboot is not implemented for Win32
Waiting for Teensy device...
(hint: press the reset button)
所以它仍然试图通过Arduino兼容的USB连接而不是通过SWD连接上传。如何让platformio更改上传方法或upload_protocol?
答案 0 :(得分:2)
从Project Configuration File platformio.ini开始,它提供了如何配置Jlink GDB服务器的示例:
[env:bluepill_f103c8]
...
; Debug options
debug_tool = custom
debug_server =
JLinkGDBServer
-singlerun
-if
SWD
-select
USB
-port
2331
-device
STM32F103C8
如果PATH中未包含JLinkGDBServer.exe,则需要指定JLinkGDBServer.exe的完整文件名。
我试过这个,它有效。
还有另一个使用JlinkGDBServerCL.exe的示例 - J-Link and ST Nucleo。