打印
[开发工具]

ST-Link下载程序的协议,有米有开方?

[复制链接]
114|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
封存into|  楼主 | 2025-3-2 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很好奇stlink是如何将HEX文件下载到目标芯片里的?
只是将pc的usb转为ttl信号,写入目标芯片中?
该有个通信协议之类的?

使用特权

评论回复
沙发
公羊子丹| | 2025-3-3 07:47 | 只看该作者
ST-Link 确实有自己的通信协议,不过 ST 官方没有完全公开,它通过 SWD 或 JTAG 和 MCU 交互来写入程序。

使用特权

评论回复
板凳
周半梅| | 2025-3-3 07:48 | 只看该作者
你可以看看 OpenOCD 里对 ST-Link 的支持,虽然 ST 没有开源协议,但 OpenOCD 逆向了一些基本功能,可以作为参考。

使用特权

评论回复
地板
帛灿灿| | 2025-3-3 07:50 | 只看该作者
ST-Link 不是简单的 USB 转 TTL,而是 USB 转 SWD/JTAG,它通过 SWD 直接访问 MCU 的 Flash 存储器来写入 HEX 文件。

使用特权

评论回复
5
童雨竹| | 2025-3-3 07:51 | 只看该作者
你可以抓取 ST-Link 和 STM32 之间的 SWD 信号,看看具体的通信过程,有些人用 Saleae 逻辑分析仪解析过这些信号。

使用特权

评论回复
6
万图| | 2025-3-3 07:53 | 只看该作者
如果你想自己实现一个 ST-Link 兼容工具,可以看看 DAPLink,这是 ARM 开源的调试协议,支持 SWD 和 JTAG。

使用特权

评论回复
7
Wordsworth| | 2025-3-3 07:54 | 只看该作者
ST 官方有提供 ST-Link USB 协议文档,不过是受限的,只有签 NDA(保密协议)才能获取完整的技术细节。

使用特权

评论回复
8
Bblythe| | 2025-3-3 07:56 | 只看该作者
除了 STCubeProgrammer,还有一些第三方工具,比如 PyOCD 也支持 ST-Link,可以研究它们是如何实现的。

使用特权

评论回复
9
Pulitzer| | 2025-3-3 07:57 | 只看该作者
ST-Link 其实支持多种 Flash 编程方式,比如通过 Bootloader 直接写入 Flash,或者用 Debug 模式写入。

使用特权

评论回复
10
Uriah| | 2025-3-3 07:59 | 只看该作者
你可以用 Wireshark + USBPcap 抓取 PC 和 ST-Link 之间的 USB 通信数据,看看它们是如何交互的。

使用特权

评论回复
11
Clyde011| | 2025-3-3 08:00 | 只看该作者
有人做过基于 STM32 的开源 ST-Link 替代方案,比如 Black Magic Probe,它的固件是开源的,可以参考一下它的实现方式。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝