ArteryTek / platform-arterytekat32

AT AT32: development platform for PlatformIO
Apache License 2.0
30 stars 12 forks source link

请问使用Jlink如何配置 #4

Open yueduz opened 2 years ago

yueduz commented 2 years ago
[env:genericAT32F435ZMT7]
build_flags = 
    -Iinclude 
    -DAT_START_F435_V1
platform = arterytekat32
board = genericAT32F435CMU7
framework = at32firmlib
debug_tool = jlink
; SWD interface
upload_protocol = jlink

如上配置提示“DebugInvalidOptionsError: Unknown debug tool jlink. Please use one of atlink, atlink_dap_v2, cmsis-dap or custom:”

amoxu commented 2 years ago
[env:genericAT32F435ZMT7]
build_flags = 
  -Iinclude 
    -DAT_START_F435_V1
platform = arterytekat32
board = genericAT32F435CMU7
framework = at32firmlib
debug_tool = jlink
; SWD interface
upload_protocol = jlink

如上配置提示“DebugInvalidOptionsError: Unknown debug tool jlink. Please use one of atlink, atlink_dap_v2, cmsis-dap or custom:”

目前仅支持基于cmsis-dap的下载工具使用SWD协议下载或调试。

JLink的支持实现是在计划中的,但因为涉及到需要明确商业授权及其它相关风险,发布时间目前无法确定。

cmsis-dap是arm官方推荐的开源调试工具, ULINK( V2以上是以cmsis-dap实现的)及许多MCU厂家推出的烧录工具也都基于了cmsis-dap实现;雅特力的ATLINK同样也是基于cmsis-dap实现的; STLINK也可以通过烧录特定固件转变成为cmsis-dap。同时也因为软硬件均开源,电商平台上也有不少第三方产品。 判断是否为cmsis-dap的烧录工具的方法也非常简单,在系统识别到的USB设备信息里名称包含CMSIS-DAP的即可。

yueduz commented 2 years ago

我使用jlink的唯一原因是它不依赖ide就能使用rtt。其他link我没有找到类似功能。但是我目前可以通过自定义配置来使用jlink了,如果你觉得该问题应该关闭,那请关闭它。

JasonCLong commented 2 years ago

不支持 stlink 的原因也是涉及到商业授权的风险么,同时使用 stm 开发板的话把 stlink 固件烧来烧去也挺麻烦的

amoxu commented 2 years ago

@yueduz @l-jesse 目前已经在测试jlink/stlink的支持了,近期会发布新版本。 因为是通过openocd内部的开源方案支持,不依赖工具方的驱动及配套软件,因此也可能无法使用到Jlink专有功能如RTT等。 届时,也会增加提供Linux下调试支持。 欢迎测试并提供反馈。

yueduz commented 2 years ago

不包含jlink驱动也侵权吗。jlink驱动由用户自行安装,调用用户安装的驱动不算侵权吧?

amoxu commented 2 years ago

您可以参考Custom-J-Link as debugger and uploader在项目目录下的platformio.ini中配置upload_protocol = custom,并增加extra_scripts及debug_server的方式使platformio调用您本地已安装的JLink驱动。

dotnfc commented 1 year ago

upload 方式能支持 usb-dfu 和 tool-jlink 就太好了。 用 open-ocd 需要替换 libusb 驱动,这个不太方便。

https://registry.platformio.org/tools/platformio/tool-jlink/installation 这个是 pio 官方的包。STM32 系列直接支持。 希望,Aterytek 官方也能予以支持。