前言
大家好,我是小舒,今天我?guī)砹艘粋€開源項目。學(xué)習(xí)單片機的小伙伴,對J-link一定不會陌生。J-link可以使用JATA和SWD接口進(jìn)行在線Debug和程序的燒錄,曾經(jīng)一段時間,某寶上J-Link鋪天蓋地,各種各樣,價格百家爭艷一個比一個低,讓單片機初學(xué)者有了非常多的選擇。J-Link的在線Debug也方便了我們的學(xué)習(xí),讓我們認(rèn)識到了單片機是如何一步一步執(zhí)行程序的。J-Link和Keil簡直是絕配。
收費的J-Link
但是好景不長,因為J-Link不是開源的,具有版權(quán),正主給某寶發(fā)了涵,仿佛一夜之間,J-Link都被下架了,不僅僅如此,在使用Keil調(diào)試/燒錄程序的時候,會彈出對話框,警告你的J-Link可能是一個盜版。
除了后來的AD涵之外,這可能是單片機初學(xué)者面對的第一個盜版警告,一個方便的工具,自此變得一點都不簡單,正版200元不等,夠買一塊STM32的單片機開發(fā)板了。燒錄工具也是有開源的,可以不用擔(dān)心版權(quán)問題。
CMSIS
學(xué)習(xí)過STM32的小伙伴,對CMSIS一定不陌生,他是ARM Cortex? 微控制器軟件接口標(biāo)準(zhǔn),可以為MCU和外設(shè)實現(xiàn)一致且簡單的軟件接口,從而簡化軟件的重用、縮短新MCU的學(xué)習(xí)過程、縮短新設(shè)備的上市時間。
顧名思義,只要Cortex? 系列的內(nèi)核,就可以使用。
CMSIS-DAP / DAP-Link
ARM Cortex? 內(nèi)核的MCU在市場上的產(chǎn)品隨處可見,如Cortex M系列內(nèi)核的有:ST公司的STM32系列MCU產(chǎn)品、NXP公司的LPC系列MCU產(chǎn)品、國產(chǎn) 的MM32系列MCU產(chǎn)品、GD32系列MCU產(chǎn)品等等,目前它們的年出貨量是以億為單位。該內(nèi)核的單片機在燒錄時會用到JTAG或者SWD接口的下載器,而常用的J-Link和ST-Link如前文所說,價格較貴且存在版權(quán)問題,而CMSIS-DAP是ARM官方開源的下載器,具備SWD調(diào)試接口,同時還帶虛擬串口,拖拽式下載等功能。既能實現(xiàn)比肩J-Link的下載速度有沒有版權(quán)問題,一舉多得。
Github開源站點
CMSIS-DAP在Github上開源,其硬件開源地址為:
https://github.com/ARMmbed/mbed-HDKGithub
其軟件開源地址為:
https://github.com/ARMmbed/DAPLink
Github
CMSIS-DAP目前源碼固件主要使用在LPC11U35以及MK20DX128VFM5的硬件上,成熟的硬件方案有三個:
-
DIPDAP(主芯片:LCP11U35FHI33/501)
-
STDAP(主芯片:STM32F103CBT6)
-
SWDAP(主芯片:LCP11U35FHI33/501)
CMSIS-DAP可以對ARM Cortex內(nèi)核(如 Cortex M3)進(jìn)行仿真調(diào)試,并且提供源碼和硬件,這樣可以使用戶可以輕松的集成一個仿真調(diào)試器到自己的項 目上而無需擔(dān)心版權(quán)問題。
我已經(jīng)驗證開源方案
作為一名電子愛好者,當(dāng)然不會放過開源的機會,我實現(xiàn)了這個開源方案,并且用在了我的項目開發(fā)中,并給他起了一個很萌的名字:小猛龍。
CMSIS-DAPDebug場景如下:
使用現(xiàn)有的資料實現(xiàn)開源項目,雖有了一丟丟的成就感,但是如果能實現(xiàn)J-Link的下載速度,那才是最有成就感的。
在和J-Link的對比測試中,hex的大小為725k(win10環(huán)境下占用空間大校),J-Link燒錄所用的時間為17秒多;而CMSIS-DAP用時18秒多。
并且在MAC平臺上也可以使用CMSIS-DAP
我已經(jīng)實現(xiàn)了這個項目,在缺芯的大背景之下,我依然堅持做了100片,需要的伙伴可以點擊如下小程序。