關(guān)于自制調(diào)試器的那些事兒(一)
大家好,我是魚鷹。最近魚鷹想自制一個(gè) CMSIS-DAP 的調(diào)試器,并且準(zhǔn)備采用藍(lán)牙的方式無線調(diào)試,所以把官網(wǎng)的關(guān)于 CMSIS-DAP 的資料大體都過了一遍。
除了 SWD 通信那個(gè) DAP_Transfer 命令之外,基本上理解都差不多了。
官網(wǎng) DAP 命令解釋如下鏈接:
https://www.keil.com/pack/doc/CMSIS/DAP/html/group__DAP__Commands__gr.html
其實(shí)在學(xué)習(xí) USB 的時(shí)候,魚鷹用的就是 CMSIS-DAP 1.0 的官方工程,只是把很多東西刪掉,只保留了 CDC 的功能分享給大家,為的就是讓大家能專注于 USB 本身的學(xué)習(xí)上。
并且魚鷹也嘗試了該工程的調(diào)試下載功能,可以用,但好像不怎么穩(wěn)定,并且速度捉急。后來才了解到,由于 1.0 版本采用的是 USB 的 HID 模式,雖然在 windows 上可以免驅(qū),但是速度最大只能到 64 KB/s,這個(gè)是由于 USB 2.0 全速模式的限制(12 Mb/s),高速模式其實(shí)也能達(dá)到很高的速度,完全夠用。
后來魚鷹才了解到,DAP 2.0 除了支持調(diào)試下載之外,還增加了 SWO (即 ITM 的功能)輸出、虛擬串口、拖曳燒錄(類似 U 盤)等實(shí)用功能,相當(dāng)給力。另外采用了 winUSB 的驅(qū)動(dòng)(win10 免驅(qū)),即不走 HID 模式,而是走批量傳輸(目前 ST-link 和 J-link都采用這種),所以速度完全可以和他們媲美。
也就是說,如果使用 DAP-2.0 的固件,即使是全速 USB(STM32103 系列基本都是全速 USB),速度完全夠用。魚鷹在采用 USB 雙緩沖模式下,虛擬 U 盤讀速度可以達(dá)到 900 KB/s(魚鷹:探究 USB2.0 的真實(shí)傳輸速度是多少?),接近了理論速度。
而據(jù)魚鷹了解到的 BLE 藍(lán)牙知識(shí),2 M 速率模式下,無線傳輸速度可達(dá) 150KB/s,應(yīng)該調(diào)試下載都是問題不大的,就是不知道實(shí)際情況是怎么樣的。
猶記得幾年前魚鷹在 csdn 寫了一個(gè)關(guān)于野火 DAP 的固件修復(fù)的帖子,其實(shí)那個(gè)時(shí)候只是有基本概念,知道可以實(shí)現(xiàn),但不知道具體實(shí)現(xiàn),之后雖然勉強(qiáng)在野火的燒錄器實(shí)現(xiàn)了燒錄調(diào)試功能,但不理想,也就沒有下文了。
但魚鷹知道,很多人因?yàn)檫@篇博客關(guān)注魚鷹的公眾號(hào),還在后臺(tái)詢問固件的消息。但不了了之,在此說聲抱歉。
但只要后面有一個(gè)成熟的 DAP 固件出爐,就一定會(huì)分享給大家,這樣野火的板子不小心燒掉后,也能補(bǔ)救一下,甚至自己做一個(gè)調(diào)試器也是沒有任何問題的。
當(dāng)然源碼就不一定會(huì)提供了。不過如果魚鷹實(shí)現(xiàn)了更優(yōu)的固件(更穩(wěn)定、下載速度更高、功能更強(qiáng)),早起的源碼也不是不能分享,哈哈。
硬漢的 H7-Tool 工具也有 CMSIS-DAP 的固件,實(shí)現(xiàn)了 HID + winUSB 功能(想用哪個(gè)用哪個(gè)),還是高速模式,所以速度還是很給力的。可惜并沒有源碼提供學(xué)習(xí),只能自己摸索一下了(魚鷹買這個(gè)工具的時(shí)候,主要就是想學(xué)習(xí)這個(gè),可是那個(gè)時(shí)候不知道沒有提供這個(gè)的源碼)。
接下來,魚鷹可能會(huì)陸陸續(xù)續(xù)分享一些調(diào)試器相關(guān)的知識(shí),此篇就作為該系列的開篇吧。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
電流變送器相關(guān)文章:電流變送器原理