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