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