本帖最后由 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 就行了。非常适合折腾。
欢迎拍砖。
STLink 下,用 ST-LinkUpgrade.exe 切;DAPLink 下,放一个 DAPLink 应用的固件文件切。 这个没懂,STLINK固件下,用ST升级软件会进ST的BOOT对么,ST的BOOT不是从8000000开始?如果是的话,此时ST的BOOT已经被你的BOOT覆盖了。假设不是,进了ST的BOOT如何能切到DAP固件。 在DAP固件下,放一个应用的固件文件切什么意思,此时还有U盘,拖个文件到U盘?
上电如果没有短接跳线帽就直接进其中一个调试器固件(这个默认调试器你是选的哪个),如果短接跳线帽就在BOOT人工选择调试器对吧。
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 端的工具)
一周热门 更多>