STLink + DAPLink 双剑合一

2019-12-14 13:05发布

本帖最后由 useronce 于 2016-6-24 10:44 编辑

今年打算弄一个基于 stm32 的 arduino 功能板,所以看到了 daplink 。毕竟先前弄的 stlink 2.1 放这上面不太尊重知识产权。
所以移植了 daplink 到 stlink v2.1 的硬件上。就有了下面这个设备。

mlink-1.png (43.35 KB, 下载次数: 0) 下载附件 2016-6-24 08:58 上传

在固件应用执行后,如何进 btl 呢? 注意一图的 BTL-JMP 和 GND 短接后,连到 PC 就可以强制进入了。软的方法是,
STLink 下,用 ST-LinkUpgrade.exe 切;DAPLink 下,放一个 DAPLink 应用的固件文件切。

这样的好处是,固件不用反复下载,几个操作就能切换到另一个 swd 仿真固件上。比如 stlink v2.1 的虚拟串口在 pn532 的通讯上有问题,
切到 daplink 的虚拟串口上就好了。daplink 的 swo 速度没有 stlink 的快,切回 stlink 就行了。非常适合折腾。

欢迎拍砖。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
kaomantou
1楼-- · 2019-12-15 23:42
这个牛叉,什么都能结合
mowin
2楼-- · 2019-12-16 05:30
 精彩回答 2  元偷偷看……
useronce
3楼-- · 2019-12-16 05:44
@mowin 0x08004000
bitcoin2
4楼-- · 2019-12-16 06:45
GEILI给力啊,这个不错的选择
huangqi412
5楼-- · 2019-12-16 10:20
上电进BOOT,删除一个文件选择进哪个调试器固件这个明白,删除文件是假删除,只是为了做选择。
STLink 下,用 ST-LinkUpgrade.exe 切;DAPLink 下,放一个 DAPLink 应用的固件文件切。    这个没懂,STLINK固件下,用ST升级软件会进ST的BOOT对么,ST的BOOT不是从8000000开始?如果是的话,此时ST的BOOT已经被你的BOOT覆盖了。假设不是,进了ST的BOOT如何能切到DAP固件。  在DAP固件下,放一个应用的固件文件切什么意思,此时还有U盘,拖个文件到U盘?
上电如果没有短接跳线帽就直接进其中一个调试器固件(这个默认调试器你是选的哪个),如果短接跳线帽就在BOOT人工选择调试器对吧。
useronce
6楼-- · 2019-12-16 13:23
通过 BTL-JMP 跳线帽,就是强制进 我的 BTL,然后出现一个虚拟盘符。

ST-LinkUpgrade.exe 会执行一个跳转,进入到 ST.BTL 的内部,进行重新枚举,下载新的 stlink 固件。
在我的 BTL 里面,保留了相同功能,也是重新枚举,从而实现以软的方式进入 我的 BTL。

mbed 的 DAPLink 是 CDC + MSC + SWD 的复合设备,所以,往 MSC 虚拟磁盘里,拖放一个目标芯片
的 hex/bin 就可以更新目标芯片的固件;而拖放一个 DAPLink 的固件文件,就可以跳转到我的 BTL 里
面,执行重新枚举,从而实现以软的方式进入 我的 BTL。此时(在我的 BTL 里,再把这个 DAPLink
固件文件拖放到 BTL 的虚拟磁盘里,就可以更新 DAPLink 的固件了。当然,做 STLink 的固件更新,
这个模式下,也能以相同方式实现而无需借助于 PC 端的工具)


一周热门 更多>