如果您的代碼中不小心將SWD口對(duì)應(yīng)的管腳功能設(shè)置為非SWD口,您需要:
● 用燒寫(xiě)器(不是CDK中的flash操作)將芯片代碼擦除
● 換芯片
為了避免在調(diào)試期間出現(xiàn)這樣的誤操作,我們建議您在代碼啟動(dòng)時(shí),加入2~3s的delay,以保證在重新上電后,CDK有足夠的時(shí)間獲得芯片的控制。
某些芯片(如APT32F102x系列),支持多組SWD。芯片出廠時(shí)會(huì)選擇其中之一作為默認(rèn)SWD口。如果實(shí)際應(yīng)用時(shí),這組默認(rèn)的SWD口需要用作其他功能,此時(shí)就需要更改芯片POR時(shí)的SWD口。
更改的方式有兩種。
1、改寫(xiě)IO控制寄存器(CONLR/CONHR),將目標(biāo)管腳的功能設(shè)為SWDIO和SWDCLK。設(shè)置完成后,SWD即刻轉(zhuǎn)移到目標(biāo)管腳上。
2、改寫(xiě)USER OPTION的內(nèi)容,這種更改將會(huì)改變芯片上電時(shí)默認(rèn)的SWD口。
下圖為APT32F102x系列的USER OPTION配置值和SWD重映射端口的關(guān)系圖:
USER OPTION的設(shè)置方式有三種:
APT當(dāng)前芯片(APT32F101,APT32F172)的SWD口在POR時(shí)都會(huì)出現(xiàn)200us~150ms的高電平。
(APT32F102x系列、APT32S003是PA0.5和PA0.12)
這個(gè)高電平不是管腳的輸出,而是為了兼容測(cè)試模式,POR后持續(xù)了一段時(shí)間的上拉狀態(tài)。
如果這個(gè)狀態(tài)影響到了實(shí)際應(yīng)用,可以參考的解決方案是加下拉電阻。
注:內(nèi)部上拉電阻在40Kohm左右,可以根據(jù)應(yīng)用加適當(dāng)?shù)南吕娮瑁ㄈ?Kohm)。
默認(rèn)的驅(qū)動(dòng)代碼中,
1. 所有中斷具有相同的優(yōu)先級(jí)(最高優(yōu)先級(jí)0)
2. 中斷嵌套功能是使能的
所以當(dāng)一個(gè)系統(tǒng)開(kāi)啟多個(gè)中斷之后,這些中斷之間可能會(huì)互相嵌套。這樣一來(lái),一些對(duì)時(shí)序敏感的中斷執(zhí)行就會(huì)出現(xiàn)和預(yù)料結(jié)果不一樣的情況。比如一些通信模塊和touch同時(shí)開(kāi)啟中斷,一旦通信模塊中斷處理時(shí)被touch的中斷嵌套,就可能導(dǎo)致通信失敗。
在這樣的應(yīng)用場(chǎng)景下,需要調(diào)高關(guān)鍵模塊的中斷優(yōu)先級(jí),或者調(diào)低次要模塊的中斷優(yōu)先級(jí)??梢酝ㄟ^(guò)修改NVIC中的IPR寄存器實(shí)現(xiàn)。具體代碼根據(jù)驅(qū)動(dòng)版本不同,
● 可能在apt32fxxx_ck801.c中
● 也可能在core_801.h中
實(shí)現(xiàn)前提:CDK工程目錄包含工程用到的全部文件(*.c, *.h. *.s, *.ld, *.a, .etc,.),即不可以有CDK安裝目錄下的文件。
1、在linux上安裝編譯所需的工具套件
● 下載linux下的工具到安裝目錄。 https://occ.t-head.cn/community/download?id=3885366095506644992
參考ReleaseNotes.pdf,根據(jù)linux系統(tǒng)類(lèi)型下載合適的elfabiv2, 如:64位機(jī)選擇 csky-elfabiv2-tools-x86_64-minilibc-20210423.tar
● 解壓:art -zxf tar.gz
● 將安裝目錄下的bin目錄加到環(huán)境變量PATH中,即完成工具套件的安裝。
2、確保在工程在windows CDK IDE中編譯一次。注意:CDK需要2.8.x版本及以上。
3、 刪除或屏蔽與__rt_entry相關(guān)的所有內(nèi)容。__rt_entry.o是一個(gè)CDK調(diào)試需要的一個(gè)文件,與工程的目標(biāo)文件沒(méi)有關(guān)系。
- 修改apt32fxxx.mk文件,一般和xxx.cdkproj在同一個(gè)目錄下
- 修改apt32fxxx.txt文件,一般和xxx.cdkproj在同一個(gè)目錄下
4、屏蔽腳本文件(apt32fxxx.mk)中checksum相關(guān)內(nèi)容(如果有的話(huà))。
5、將CDK工程完全copy到linux系統(tǒng)中。
6、在apt32fxxx.mk文件所在的目錄運(yùn)行: make -f apt32xxx.mk
之后就可以通過(guò)修改mk文件的一些參數(shù),調(diào)整編譯和連接的選項(xiàng)了。