
來源:公眾號【魚鷹談單片機】
作者:魚鷹Osprey
ID :emOsprey
大家好,我是魚鷹。
最近一段時間,魚鷹一直在研究 zephyr 下的 DAP 調試器實現,畢竟 zephyr 號稱支持 300+ 款開發板,這意味著,你只要寫一次代碼,就能在各種開發板上使用,也就意味著,基于 zephyr 實現的 DAP 可以在任意開發板上使用,這是非常吸引人的一個點。
跨平臺!
歷經磨難,終于讓魚鷹實現了 HID 和 WINUSB 的 DAP 復合設備。

目前串口有點小問題,后面修復就好。
另外支持 openocd 和 keil 下的使用。

有些道友可能以為這是一句廢話,真正了解的都知道,兩者還是有一定區別的,魚鷹在這里就踩了一個小坑。
另外在 keil 上使用的時候,發現能識別兩個設備,但是只能用 HID,不能用 WinUSB。然后對比各種描述符,猜測各種描述符是否可能導致該問題,卻發現都不是根本原因,最后在 DAP 數據返回時發現了問題。
另外 zephyr 的參考例子也有很多問題,可謂費了魚鷹的九牛二虎之力才算搞定,也因此對 USB 設備有了更深的理解,對 zephyr 的框架也有更多的了解。
還有 UBS BOS 描述符也踩了比較多坑, 畢竟之前不了解。
不過結局還是好的。
后面再測試一下下載速度,再完成 U 盤升級功能,就比較完美了,后面就可以基于此添加各種小功能了。