搭建AT32開發(fā)環(huán)境
調(diào)試工具及開發(fā)板
目前AT32F423開發(fā)板都自帶AT-Link-EZ調(diào)試工具,AT-Link-EZ如下圖左邊紅框所示,它也可拆開后單獨(dú)搭配其他電路板使用,支持IDE在線調(diào)試、在線燒錄、USB轉(zhuǎn)串口等功能。圖1. AT-START-F423及AT-Link-EZ實(shí)物圖注意:AT-START板配備資源的詳細(xì)說(shuō)明,請(qǐng)參考《UM_AT_START_F423_Vx.x》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的Evaluation Board (開發(fā)板)資料包解壓后\AT_START_F423_Vx.x\03_Documents。圖2. 雅特力科技官方網(wǎng)站AT-START-F423開發(fā)板資料包
燒錄工具及軟件
- AT燒錄工具及軟件:AT-Link /AT-Link+ /AT-Link-Pro /AT-Link-ISO /AT-Link-EZ、ICP/ISP。
- 第三方燒錄工具:J-Link、安富萊、正點(diǎn)原子、軒微科技、創(chuàng)芯工坊、周立功、邁斯威志、阿莫燒錄器、昂科、永創(chuàng)智能、高勒康達(dá)、浦洛、戎象科技、欣揚(yáng)電子、西爾特、智峰科技等。
注意:上述燒錄工具詳情請(qǐng)?jiān)L問(wèn)雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→Hardware Development Tool頁(yè)面及第三方編程器(3RD Party Writer)頁(yè)面。
- ICP使用說(shuō)明請(qǐng)參考《UM_ICP_Programmer》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的ICP工具解壓后Artery_ICP_Programmer_Vx.x.xx\Document\UM_ICP_Programmer。
- ISP使用說(shuō)明請(qǐng)參考《UM_ISP_Programmer》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的ISP工具解壓后Artery_ISP_Programmer_Vx.x.xx\Document\UM_ISP_Programmer。
- AT-Link使用說(shuō)明請(qǐng)參考《UM0004_AT-Link_User_Manual》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的AT-Link-Family工具解壓后AT_Link_CH_Vx.x.x\05_Documents\UM0004_AT-Link_User_Manual_ZH_Vx.x.x。
圖3. 雅特力科技官方網(wǎng)站ICP/ISP/AT-Link-Family資料包AT32開發(fā)環(huán)境一、模板工程介紹在ArteryTek提供的固件庫(kù)BSP中都默認(rèn)建立好了常用IDE的模板工程。BSP可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列獲取。圖4. 雅特力科技官方網(wǎng)站BSP資料包BSP中創(chuàng)建at32_ide/eclipse_gcc/Keil_v5/Keil_v4/IAR_6.10/IAR_7.4/IAR_8.2/IAR_9.3的模板工程,存放路徑為AT32F423_Firmware_Library_V2.x.x\project\at_start_f4xx\templates,打開對(duì)應(yīng)工程的文件夾并點(diǎn)擊工程文件即可打開對(duì)應(yīng)的IDE工程。如下是Keil_v5工程示例:圖5. Keil_v5 templates工程示例工程內(nèi)添加的內(nèi)容描述如下:① at32F423_clock.c時(shí)鐘配置文件,設(shè)置了默認(rèn)的時(shí)鐘頻率及時(shí)鐘路徑。② at32F423_int.c中斷文件,默認(rèn)編寫了部分內(nèi)核中斷函數(shù)的代碼流程。③ main.c模板工程的主代碼文件。④ at32F423_board.c板級(jí)配置文件,設(shè)置了AT-START上的按鍵和LED等常用硬件配置。⑤ firmware下的at32F423_xx.c是各片上外設(shè)的驅(qū)動(dòng)文件。⑥ system_at32F423.c系統(tǒng)初始化文件。⑦ startup_at32F423.s啟動(dòng)文件。⑧ readme.txt工程的說(shuō)明文件,記錄了模板工程的一些應(yīng)用功能、設(shè)置方式以及關(guān)聯(lián)應(yīng)用筆記(ApNote)等信息。除了templates外,BSP還按照外設(shè)分類,提供了大量的examples示例代碼(Keil_v5工程文件)供用戶參考,用戶只需要直接打開即可。存放路徑為AT32F423_Firmware_Library_V2.x.x\project\at_start_f4xx\examples。注意:關(guān)于BSP的更多詳細(xì)說(shuō)明,請(qǐng)參考《AT32F423固件庫(kù)BSP&Pack應(yīng)用指南》的“4 BSP使用簡(jiǎn)述”章節(jié),存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的BSP解壓后\AT32F423_Firmware_Library_Vx.x.x\document。
二、Pack安裝
需要安裝Pack包在Keil/IAR中增加AT32 MCU型號(hào),Pack包可以從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載。圖6. 雅特力科技官方網(wǎng)站Pack包對(duì)于Keil編譯系統(tǒng),建議keil4.74或5.23以上版本。Keil_v5版本需要將Keil5_AT32MCU_AddOn解壓后安裝對(duì)應(yīng)ArteryTek.AT32F423_DFP,Keil_v4版本需要安裝Keil4_AT32MCU_AddOn;默認(rèn)情況下,安裝時(shí)可以自動(dòng)識(shí)別到Keil的安裝路徑,如果識(shí)別不到或者不正確,需要手動(dòng)選擇Keil的安裝路徑。圖7. 安裝ArteryTek.AT32F423_DFP圖8. 安裝Keil4_AT32MCU_AddOn也可打開keil,點(diǎn)擊Pack Installer圖標(biāo),在Pack Installer中點(diǎn)擊左上角file,選擇import,導(dǎo)入從雅特力科技官方網(wǎng)站下載好的對(duì)應(yīng)pack包完成安裝。圖9. Keil中Pack Installer圖標(biāo)對(duì)于IAR編譯系統(tǒng),建議IAR7.0或IAR6.1以上版本。安裝IAR_AT32MCU_AddOn,默認(rèn)情況下,安裝時(shí)可以自動(dòng)識(shí)別到IAR的安裝路徑,如果識(shí)別不到或者不正確,需要手動(dòng)選擇IAR的安裝路徑。圖10. 安裝IAR_AT32MCU_AddOn注意:關(guān)于Pack安裝的更多詳細(xì)說(shuō)明,請(qǐng)參考《AT32F423固件庫(kù)BSP&Pack應(yīng)用指南》的“2 Pack安裝步驟”章節(jié),存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的BSP解壓后\AT32F423_Firmware_Library_Vx.x.x\document。
三、使用AT-Link調(diào)試及下載
在Keil環(huán)境下使用AT-Link,在Debug里選擇CMSIS-DAP調(diào)試器。圖11. Keil Debug選項(xiàng)在Debug單擊Settings進(jìn)入Cortex-M Target Driver Setup界面如下圖,1. 先選擇AT-Link(WinUSB)-CMSIS-DAP/AT-Link-CMSIS-DAP;注意:關(guān)于WinUSB,請(qǐng)參考《FAQ0136_如何使用AT-LINK的WinUSB功能提升下載速率》,該文檔可以從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→FAQ→FAQ0136下載。2. Port選擇SW,再勾選SWJ;3. 確認(rèn)已識(shí)別到ARM SW-DP調(diào)試模塊。圖12. Keil Debug選項(xiàng)Settings設(shè)置并且在Utilities里,先勾去下圖標(biāo)示的選項(xiàng)框1,在選項(xiàng)框2下拉菜單選擇CMSIS-DAP Debugger, 然后再勾選選項(xiàng)框1(需要先取消再勾選)。圖13. Keil Utilities選項(xiàng)在IAR環(huán)境下使用AT-Link,選中工程,點(diǎn)擊Project,選擇Options,在Debugger里選擇CMSISDAP調(diào)試器,再在CMSIS DAP里選擇SWD。圖14. IAR Debug選項(xiàng)圖15. IAR CMSIS-DAP選項(xiàng)注意:關(guān)于Flash算法文件、MCU型號(hào)切換、Jlink無(wú)法找到MCU等的詳細(xì)說(shuō)明,請(qǐng)參考《AT32F423固件庫(kù)BSP&Pack應(yīng)用指南》相關(guān)章節(jié),此處不再贅述。存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的BSP解壓后\AT32F423_Firmware_Library_Vx.x.x\document。
AT32 Work Bench
一、引言1.1.4小節(jié)用于介紹AT32 Work Bench使用。AT32 Work Bench通過(guò)對(duì)MCU的圖形化配置,生成初始化C代碼和對(duì)應(yīng)IDE項(xiàng)目,以減少開發(fā)人員的工作量、時(shí)間和成本。
- 環(huán)境要求軟件要求:Windows系統(tǒng):需要Windows 7及以上操作系統(tǒng)支持。Linux系統(tǒng):支持x86_64架構(gòu)的Ubuntu、Fedora等發(fā)行版。硬件要求:建議內(nèi)存最低2GB,建議硬盤最低4GB。
注意:關(guān)于AT32 Work Bench的詳細(xì)使用說(shuō)明,請(qǐng)參閱《UM_AT32_Work_Bench.pdf》文件,其和AT32 Work Bench工具一同存放于雅特力官網(wǎng)→技術(shù)與開發(fā)支持→Tool,鏈接為https://www.arterytek.com/cn/support/index.jsp?index=5,如下圖所示:圖16. 雅特力科技官方網(wǎng)站AT32 Work Bench文檔與軟件
二、安裝
Windows系統(tǒng)無(wú)需安裝,只需直接運(yùn)行可執(zhí)行程序AT32_Work_Bench.exe。Linux系統(tǒng)目前支持Ubuntu 16.4以上系統(tǒng)版本,有兩種安裝方式:
- 終端中使用dpkg命令安裝在終端中輸入如下命令進(jìn)行安裝:sudo dpgk –i AT32_Work_Bench_Linux-x86_64_Vx.x.xx.deb如下圖所示:
圖17. 終端命令安裝
- 圖形方式安裝拷貝AT32_Work_Bench_Linux-x86_64_Vx.x.xx.deb到Linux系統(tǒng)中,并雙擊。在彈出的安裝程序中,點(diǎn)擊“安裝”按鈕,系統(tǒng)將本軟件自動(dòng)安裝到系統(tǒng)中,如下圖所示:
圖18. 圖形方式安裝安裝完成之后,點(diǎn)擊左邊任務(wù)欄最下方“顯示所有程序”按鈕,在彈出的程序列表中找到“AT32_Work_Bench”,并點(diǎn)擊,將啟動(dòng)AT32_Work_Bench。
三、項(xiàng)目配置
本小節(jié)將以AT32F403AVGT7新建一個(gè)USART工程為例,展示如何使用AT32_Work_Bench生成初始化C代碼和對(duì)應(yīng)IDE項(xiàng)目。引導(dǎo)頁(yè)是啟動(dòng)AT32 Work Bench時(shí)打開的第一個(gè)窗口。它提供三個(gè)選項(xiàng):“開始一個(gè)新的設(shè)計(jì)”、“打開一個(gè)已有的設(shè)計(jì)”和“最近使用的設(shè)計(jì)”,如下圖所示:圖19. AT32 Work Bench引導(dǎo)頁(yè)引導(dǎo)頁(yè)選擇MCU的具體信息,然后點(diǎn)擊新建進(jìn)入項(xiàng)目配置界面,項(xiàng)目配置界面可以看到“Pin布局和配置”,“時(shí)鐘配置”,“代碼預(yù)覽”三個(gè)選項(xiàng)框,這是建立AT32 Work Bench工程主要使用到的三個(gè)功能,此部分將分(1)(2)(3)三點(diǎn)進(jìn)行詳細(xì)說(shuō)明。項(xiàng)目配置界面如圖所示:圖20. 項(xiàng)目配置界面
(1)“Pin布局和配置”視圖主要配置MCU使用到的外設(shè)和引腳,該視圖包含有“外設(shè)”、“模式和配置”與“Pin布局”三個(gè)窗口。從“外設(shè)”列表中選擇一個(gè)外設(shè)時(shí),將打開所選外設(shè)的“模式和配置”窗口,用戶可以借此配置其功能模式與參數(shù),模式窗口可選擇外設(shè)的工作模式和工作模式下使用的MCU引腳。由于MCU允許不同外設(shè)和多個(gè)功能使用相同的引腳,因此選擇模式后,會(huì)自動(dòng)配置最適合用戶選擇的外設(shè)的引腳排列,以USART1為例,USART1的“模式和配置”窗口如下圖所示:圖21. “模式和配置”窗口以USART1為例,配置USART1外設(shè)大概分為以下幾步:
- 外設(shè)模式
圖22. 外設(shè)模式
如上圖所示,外設(shè)“USART1”的模式選擇“異步模式”時(shí),引腳布局的視圖中,PA9與PA10將自動(dòng)映射到信號(hào)“USART1_TX”與“USART1_RX”。
- 外設(shè)參數(shù)設(shè)置
圖23. 外設(shè)參數(shù)設(shè)置參數(shù)配置窗口顯示了“USART1”可以配置的參數(shù),如基礎(chǔ)參數(shù)中的“波特率”、“數(shù)據(jù)位個(gè)數(shù)”等,高級(jí)參數(shù)中的“數(shù)據(jù)傳輸方向”等參數(shù)。
- 外設(shè)GPIO設(shè)置
圖24. 外設(shè)GPIO設(shè)置外設(shè)GPIO設(shè)置窗口顯示了當(dāng)前外設(shè)可以配置的GPIO,如上圖可配置“USART1”中“USART1_TX”和“USART1_RX”的GPIO參數(shù)。
- 外設(shè)DMA設(shè)置
圖25. 外設(shè)DMA設(shè)置外設(shè)DMA設(shè)置窗口可添加當(dāng)前外設(shè)可以配置的DMA請(qǐng)求,如上圖可配置“USART1”中“USART1_TX”和“USART1_RX”的對(duì)應(yīng)的DMA通道以及DMA請(qǐng)求的參數(shù)。
- 外設(shè)NVIC設(shè)置
圖26. 外設(shè)NVIC設(shè)置外設(shè)NVIC設(shè)置窗口顯示了當(dāng)前外設(shè)可以配置的中斷,當(dāng)外設(shè)對(duì)應(yīng)的DMA通道開啟后,也可配置對(duì)應(yīng)DMA通道的中斷。“搶占優(yōu)先級(jí)”和“子優(yōu)先級(jí)”的配置需到“NVIC”總配置窗口進(jìn)行統(tǒng)一配置。pin布局窗口以圖形方式表示所選封裝的引腳布局(例如,LQFP48、QFN32、TSSOP20等),其中每個(gè)引腳都用其名稱(如PA9)、配置狀態(tài)和當(dāng)前信號(hào)分配來(lái)表示。在引腳視圖上,左鍵點(diǎn)擊引腳(除固定模式引腳),將彈出一個(gè)右鍵菜單,顯示該引腳可配置的信號(hào);對(duì)于已經(jīng)配置功能的引腳,右鍵單擊將彈出“輸入標(biāo)簽”的按鈕,可以點(diǎn)擊按鈕,可以指定此信號(hào)的自定義標(biāo)簽,左擊和右擊效果如下圖所示:圖27. 左擊和右擊效果(2)時(shí)鐘配置界面主要用來(lái)進(jìn)行時(shí)鐘路徑及參數(shù)的配置。視圖中的下拉菜單和輸入框可用于修改實(shí)際的時(shí)鐘樹配置,以滿足應(yīng)用需求,時(shí)鐘配置界面如下圖所示:圖28. 時(shí)鐘配置界面注1:需要使lext為可用狀態(tài),需要在外設(shè)“CRM”的模式窗口中設(shè)置“低速外部時(shí)鐘”的模式;注2:需要使hext為可用狀態(tài),需要在外設(shè)“CRM”的模式窗口中設(shè)置“高速外部時(shí)鐘”的模式;注3:需要使clockout為可用狀態(tài),需要在外設(shè)“CRM”的模式窗口中勾選“時(shí)鐘輸出”。(3)點(diǎn)擊“代碼預(yù)覽”按鈕,將自動(dòng)生成當(dāng)前配置的代碼,并在窗口中顯示代碼內(nèi)容。左側(cè)顯示了生成的代碼文件,右側(cè)顯示選中文件的代碼內(nèi)容,如下圖所示:圖29. 代碼預(yù)覽點(diǎn)擊菜單欄或工具欄的“生成代碼”按鈕,將彈出“項(xiàng)目管理”窗口,如下圖所示:圖30. “項(xiàng)目管理”窗口對(duì)于堆大小和棧大小,建議的默認(rèn)值分別為0x200和0x400,當(dāng)應(yīng)用使用中間件棧時(shí),這些值可能需要增加;選中復(fù)制庫(kù)文件到項(xiàng)目文件夾后,生成代碼時(shí)將固件包內(nèi)的庫(kù)文件自動(dòng)復(fù)制到項(xiàng)目文件夾中;配置完項(xiàng)目選項(xiàng)后,點(diǎn)擊“確定”按鈕,將自動(dòng)生成用戶代碼和選定IDE的項(xiàng)目文件。生成的項(xiàng)目文件結(jié)構(gòu)如下圖:圖31. 項(xiàng)目文件結(jié)構(gòu)
快速替代AT32F415流程
- 請(qǐng)參考《MG0022_從AT32F415移植到AT32F423》,該文檔可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列獲取;
- 如果程序無(wú)法正常運(yùn)行,請(qǐng)參考本文件其他章節(jié),或聯(lián)絡(luò)代理及雅特力科技技術(shù)支持人員協(xié)助解決。
注意:關(guān)于如何獲得更高的AT32F423運(yùn)行效能,請(qǐng)參考AT提供的應(yīng)用手冊(cè)《AN0004_Performance_Optimization》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0004獲取。
AT32F423芯片的增強(qiáng)功能配置
預(yù)取指令緩沖設(shè)置預(yù)取指令緩沖器可以使CPU更快地執(zhí)行,CPU讀取一個(gè)字的同時(shí)下一個(gè)字已經(jīng)在預(yù)取緩沖器中等候。預(yù)取指令控制器根據(jù)預(yù)取緩沖器中可用的空間決定是否訪問(wèn)閃存,預(yù)取緩沖器中有至少一塊的空余空間時(shí),預(yù)取控制器則啟動(dòng)一次讀操作。對(duì)于不同的系統(tǒng)時(shí)鐘需要設(shè)置不同的時(shí)延,設(shè)置閃存性能選擇寄存器(FLASH_PSR)的bit2~0(WTCYC)。圖32. 閃存性能選擇寄存器(FLASH_PSR)等待周期AT庫(kù)在系統(tǒng)時(shí)鐘配置函數(shù)system_clock_config()進(jìn)行了相關(guān)設(shè)置,其他BSP請(qǐng)找到相同的位置做相應(yīng)的設(shè)置。圖33. 系統(tǒng)時(shí)鐘配置函數(shù)system_clock_config
PLL時(shí)鐘設(shè)置
一、PLL設(shè)定方式AT32F423內(nèi)置的PLL最高可輸出150MHz時(shí)鐘,使用PLL時(shí)鐘配置寄存器(CRM_PLLCFG)可以配置多種PLL時(shí)鐘頻率,其對(duì)應(yīng)的公式為:使用AT BSP時(shí)PLL設(shè)定程序范例:(HEXT=8MHz, PLL=150MHz)圖34. AT32F423輸出150MHz的時(shí)鐘配置其中,入口參數(shù)CRM_PLL_SOURCE_HEXT代表選擇HEXT為外部時(shí)鐘源,150為PLL_NS值,1為PLL_MS值,CRM_PLL_FR_4(0x02,四分頻)為PLL_FR值。更多時(shí)鐘配置相關(guān)信息,請(qǐng)參考《AN0158_AT32F423_CRM_Start_Guide》。該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0158獲取,其中詳細(xì)介紹了AT32F423的時(shí)鐘源碼配置與修改,以及如何使用雅特力的時(shí)鐘配置工具(New Clock Configuration)來(lái)快速生成想要的時(shí)鐘代碼并應(yīng)用到工程,該工具可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列獲取。
二、PLL自動(dòng)滑順
當(dāng)AT32F423內(nèi)置的PLL倍頻頻率>108MHz時(shí),需要操作自動(dòng)滑順頻率切換功能。使用AT32F423 BSP時(shí)PLL自動(dòng)滑順頻率切換程序范例:圖35. AT32程序PLL自動(dòng)滑順頻率切換配置注意:如果開啟了自動(dòng)滑順頻率切換功能,在時(shí)鐘切換后必須關(guān)閉自動(dòng)滑順頻率切換功能,開啟及關(guān)閉務(wù)必配對(duì)使用。
加密方式
注意:AT32F423的BOOT1位于用戶系統(tǒng)數(shù)據(jù)區(qū)(0x1FFF F800),當(dāng)使用ISP工具時(shí),請(qǐng)確認(rèn)nBOOT1=1(出廠默認(rèn)值),使程序由系統(tǒng)啟動(dòng)程序代碼區(qū)(而不是SRAM)啟動(dòng)。
一、訪問(wèn)保護(hù)
訪問(wèn)保護(hù)即大家通常說(shuō)的“加密”,作用于整個(gè)Flash存儲(chǔ)區(qū)域。一旦設(shè)置了Flash的訪問(wèn)保護(hù),內(nèi)置的Flash存儲(chǔ)區(qū)只能通過(guò)程序的正常執(zhí)行才能讀出,而不能通過(guò)JTAG或者SWD讀出,當(dāng)使用ISP/ICP工具解除訪問(wèn)保護(hù)時(shí),芯片會(huì)對(duì)FLASH進(jìn)行擦除操作。注意:一旦啟動(dòng)高級(jí)訪問(wèn)保護(hù)后,將不能被解除,并且禁止用戶以任何方式重新擦除以及寫入系統(tǒng)數(shù)據(jù)區(qū)。可用ISP/ICP工具對(duì)IC進(jìn)行訪問(wèn)保護(hù)與解除訪問(wèn)保護(hù)操作,如下:
- Artery ICP Programmer工具(BOOT0=0)啟用訪問(wèn)保護(hù):設(shè)備操作--訪問(wèn)保護(hù)--啟用訪問(wèn)保護(hù)/高級(jí)訪問(wèn)保護(hù)。解除訪問(wèn)保護(hù):設(shè)備操作--訪問(wèn)保護(hù)--解除訪問(wèn)保護(hù)。
圖36. ISP工具啟用/解除訪問(wèn)保護(hù)訪問(wèn)保護(hù)
- Artery ISP Programmer工具(BOOT0=1)啟用訪問(wèn)保護(hù):一直點(diǎn)擊下一步,直到進(jìn)入最后界面,選擇保護(hù)、啟用訪問(wèn)保護(hù)/高級(jí)訪問(wèn)保護(hù)--下一步--是,即可將程序加密。解除訪問(wèn)保護(hù):選擇保護(hù)、禁用訪問(wèn)保護(hù)--下一步--是,即可將Flash解除加密。
- Artery ISP Multi-Port Programmer工具(BOOT0=1)啟用訪問(wèn)保護(hù):選擇保護(hù)、啟用訪問(wèn)保護(hù)/高級(jí)訪問(wèn)保護(hù)--開始,即可將程序加密。解除訪問(wèn)保護(hù):選擇保護(hù)、禁用訪問(wèn)保護(hù)--開始,即可將Flash解除加密。
圖37. ISP工具啟用訪問(wèn)保護(hù)圖38. ISP工具解除訪問(wèn)保護(hù)注意:設(shè)置了訪問(wèn)保護(hù)不能通過(guò)擦除操作來(lái)解除訪問(wèn)保護(hù)。
二、擦寫保護(hù)
寫保護(hù)作用于整個(gè)Flash存儲(chǔ)區(qū)域或者Flash存儲(chǔ)區(qū)域的某些頁(yè)。一旦設(shè)置了Flash的寫保護(hù),內(nèi)置的Flash存儲(chǔ)區(qū)就不能通過(guò)任何方式寫入。
可用ISP/ICP工具對(duì)IC進(jìn)行擦寫保護(hù)與解除擦寫保護(hù)操作,如下:
- Artery ICP Programmer工具(BOOT0=0)啟用擦寫保護(hù):設(shè)備操作--用戶系統(tǒng)數(shù)據(jù)--勾選擦寫保護(hù)字節(jié)扇區(qū)--應(yīng)用到設(shè)備。解除擦寫保護(hù):設(shè)備操作--用戶系統(tǒng)數(shù)據(jù)--勾除擦寫保護(hù)字節(jié)扇區(qū)--應(yīng)用到設(shè)備。
- Artery ISP Programmer工具(BOOT0=1)啟用擦寫保護(hù):保護(hù)、啟用擦寫保護(hù)--下一步--是,即可啟用寫保護(hù)。解除擦寫保護(hù):保護(hù)、禁用擦寫保護(hù)--下一步--是,即可解除寫保護(hù)。
- Artery ISP Multi-Port Programmer工具(BOOT0=1)啟用擦寫保護(hù):保護(hù)、啟用擦寫保護(hù)--開始--是,即可啟用寫保護(hù)。解除擦寫保護(hù):保護(hù)、禁用擦寫保護(hù)--開始--是,即可解除寫保護(hù)。
圖39. ICP工具啟用擦寫保護(hù)圖40. ICP工具解除擦寫保護(hù)注意:設(shè)置了擦寫保護(hù)不能通過(guò)擦除操作來(lái)解除擦寫保護(hù)。
設(shè)定系統(tǒng)存儲(chǔ)器為擴(kuò)展主存
系統(tǒng)存儲(chǔ)器(System Memory)默認(rèn)是作為BOOT模式存放原廠固化的啟動(dòng)代碼。不過(guò),在AT32F423系列產(chǎn)品上,添加了新功能,系統(tǒng)存儲(chǔ)器也可以選擇作為主存的擴(kuò)展區(qū)(AP模式)用來(lái)存放用戶自定義代碼。注意:系統(tǒng)存儲(chǔ)區(qū)AP模式只能設(shè)置一次且不可逆,設(shè)置后原系統(tǒng)存儲(chǔ)器BOOT模式功能不可恢復(fù)。產(chǎn)品開發(fā)過(guò)程中使用Artery ICP Programmer將系統(tǒng)存儲(chǔ)器作為擴(kuò)展主存使用方法:
- 連接AT-Link/J-Link仿真器到AT-START-F423板并上電。
- 開啟Artery ICP programmer,選擇用AT-Link/J-Link連接。
- 通過(guò)菜單欄:設(shè)備操作--系統(tǒng)存儲(chǔ)區(qū)AP模式--確定。
圖41. ICP工具設(shè)定系統(tǒng)存儲(chǔ)區(qū)AP模式
- 為防止誤操作,需按照提示手動(dòng)輸入啟用秘鑰0xA35F6D24,操作后“存儲(chǔ)器信息”表格中會(huì)有成功或失敗的提示信息。
圖42. ICP工具設(shè)定系統(tǒng)存儲(chǔ)區(qū)AP模式確認(rèn)界面量產(chǎn)生產(chǎn)過(guò)程中使用Artery ICP Programmer將系統(tǒng)存儲(chǔ)器作為擴(kuò)展主存使用方法:
- 連接AT-Link仿真器到AT-START-F423板并上電。
注意:板載的AT-Link EZ版本不支持離線燒錄,只能選擇非EZ版本的AT-Link。
- 開啟Artery ICP programmer,選擇用AT-Link做連接。
- 通過(guò)菜單欄:AT-Link設(shè)置--離線項(xiàng)目配置。
- 生成離線項(xiàng)目的步驟:1. 新建項(xiàng)目2. 輸入項(xiàng)目名稱3. 選擇MCU型號(hào)4. 添加.hex文件5. 下載接口選擇SWD6. 勾選系統(tǒng)存儲(chǔ)區(qū)AP模式并輸入秘鑰7. 保存項(xiàng)目到AT-Link或保存項(xiàng)目文件其他選擇根據(jù)實(shí)際需要進(jìn)行設(shè)置。
圖43. ICP工具離線燒錄系統(tǒng)存儲(chǔ)區(qū)AP模式
- 若上述步驟7選擇的是保存項(xiàng)目文件,將會(huì)把項(xiàng)目保存為.atcp格式的文件,方便加載到其他AT-Link中使用。在操作過(guò)程中會(huì)彈出如下圖的窗口。如果選擇此項(xiàng)目?jī)H允許在指定AT-Link使用,此項(xiàng)目文件與AT-Link綁定,只能在綁定的AT-Link使用,需設(shè)定綁定的AT-Link序列號(hào);如果選擇此項(xiàng)目?jī)H允許使用一次,此項(xiàng)目文件在同一個(gè)AT-Link只能使用一次。
圖44. ICP工具離線燒錄項(xiàng)目文件設(shè)置
- 若上述步驟7保存項(xiàng)目到AT-Link成功,在離線下載狀態(tài)監(jiān)控窗口里,選擇離線下載項(xiàng)目名稱--保存并激活,就可以開始燒錄了。
圖45. ICP工具離線下載狀態(tài)監(jiān)控
- 關(guān)于系統(tǒng)存儲(chǔ)器擴(kuò)展的更多信息請(qǐng)參考《AN0066_config_boot_memory_as_extension_of_main_memory(AP_mode)》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0066獲取。
- 在系統(tǒng)存儲(chǔ)器運(yùn)行用戶程序的Demo請(qǐng)參考BSP,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→超值型MCU→AT32F4xx系列下載的BSP解壓后AT32F423_Firmware_Library_V2.x.x\utilities\at32F423_boot_memory_ap_demo。
在程序中區(qū)分AT32與其他IC方法
- 讀取Cortex-M系列CPU ID號(hào)區(qū)分,此方式可以區(qū)分出M0,M0+,M1,M3,M4內(nèi)核
圖46. 讀取Cortex型號(hào)
- 讀取UID,PID方式區(qū)分
圖47. 讀取UID,PID說(shuō)明:在AT32F4xx微控制器內(nèi)部有多個(gè)ID編碼,將獲取到的ID信息組裝成一個(gè)64bit的數(shù)據(jù),就可以區(qū)分出MCU是哪一種型號(hào)。更多信息請(qǐng)參考各型號(hào)技術(shù)手冊(cè)RM的調(diào)試(DEBUG)章節(jié)以及《AN0016_Recognize_AT32_MCU》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0016獲取。
下載編譯過(guò)程常見(jiàn)問(wèn)題
程序啟動(dòng)進(jìn)入Hard Fault Handler
- 訪問(wèn)數(shù)據(jù)越界。找到程序中訪問(wèn)越界的問(wèn)題點(diǎn),并修改它到正常數(shù)據(jù)區(qū)域內(nèi)。
- 程序使用SRAM超過(guò)MCU SRAM空間大小。
- 系統(tǒng)時(shí)鐘設(shè)置超出規(guī)格。
Keil項(xiàng)目?jī)?nèi)Jlink無(wú)法找到IC
- 請(qǐng)參考《FAQ0008_Keil項(xiàng)目?jī)?nèi)Jlink無(wú)法找到IC問(wèn)題》,該文檔可以從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→FAQ→FAQ0008下載。
- 請(qǐng)參考《FAQ0132_JLink手動(dòng)添加Artery MCU》,該文檔及其附件可以從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→FAQ→FAQ0132下載。
程序下載過(guò)程出問(wèn)題
顯示Error: Flash Download failed–“Cortex-M4”問(wèn)題在KEIL仿真或下載時(shí)彈出:圖48. 下載出現(xiàn)Flash Download failed–“Cortex-M4”出現(xiàn)彈窗的原因可能是以下幾種:
- 開啟了訪問(wèn)保護(hù),先取消MCU訪問(wèn)保護(hù)再下載。
- 選錯(cuò)了或者沒(méi)有選擇加載Flash文件算法,在Flash Download處選擇添加正確的Flash文件算法。
- BOOT0選擇錯(cuò)誤,BOOT0管腳電平須設(shè)置為0,使MCU從主閃存存儲(chǔ)器啟動(dòng)。
- J-Link驅(qū)動(dòng)版本太低,建議6.20C以上版本。
- 在程序中將JTAG/SWD PIN disable,解決方法參考“2.3.5 AT32恢復(fù)下載”。
顯示No Debug Unit Device found問(wèn)題
- 下載端口被占用,比如ICP正在連接目標(biāo)設(shè)備。
- JTAG/SWD連線錯(cuò)誤,或沒(méi)有連接。
顯示RDDI-DAP Error問(wèn)題
- 編譯器優(yōu)化等級(jí)過(guò)高,如Keil AC6編譯器的默認(rèn)優(yōu)化等級(jí)-Oz,需要改為-O0/-O1。
- 在程序中將JTAG/SWD PIN disable,解決方法參考“2.3.5 AT32恢復(fù)下載”。
ISP串口下載時(shí)卡死問(wèn)題
使用ISP串口下載時(shí),偶爾會(huì)卡死,卡死之后電腦無(wú)法釋放串口。建議處理方式:
- 檢查電源是否穩(wěn)定。
- 更換質(zhì)量更好的USB轉(zhuǎn)串口工具,如CH340芯片等。
AT32恢復(fù)下載
在使用AT32F423時(shí),用戶可能在以下操作后無(wú)法再次下載程序:
- 在程序中將JTAG/SWD PIN disable后,無(wú)法下載程序并且找不到JTAG/SWD device;
- 進(jìn)入Standby mode等低功耗模式后,無(wú)法下載程序并且找不到JTAG/SWD device。
解決該問(wèn)題的原理是在程序還沒(méi)有運(yùn)行時(shí)使芯片HALT住,介紹幾種方式如何解決該問(wèn)題。1. 更改芯片BOOT模式,改為啟動(dòng)程序存儲(chǔ)器啟動(dòng)或者sram啟動(dòng),然后通過(guò)復(fù)位腳復(fù)位芯片,此時(shí)就可以擦除程序恢復(fù)下載。2. 使用ICP軟件工具搭配AT-Link調(diào)試器,連接AT-Link RST pin到芯片的復(fù)位腳,ICP界面上直接點(diǎn)擊連接即可正常連接,連接后擦除芯片內(nèi)程序即可恢復(fù)。3. 使用Keil軟件搭配AT-Link調(diào)試器,連接AT-Link RST pin到芯片的復(fù)位腳,在Keil的debug界面修改為下圖中紅框內(nèi)的選項(xiàng),就可以擦除程序恢復(fù)下載。圖49. debug界面修改4. 使用IAR軟件搭配AT-Link調(diào)試器,連接AT-Link RST pin到芯片的復(fù)位腳,在IAR的CMSIS DAP界面修改為下圖中紅框內(nèi)的選項(xiàng),就可以擦除程序恢復(fù)下載圖50. CMSIS DAP界面修改
安全庫(kù)區(qū)sLib(Security Library)
概述
目前越來(lái)越多的微控器(MCU)應(yīng)用需要使用到復(fù)雜的算法及中間件解決方案(middleware solution),因此,如何保護(hù)軟件方案商開發(fā)出來(lái)的核心算法等知識(shí)產(chǎn)權(quán)代碼(IP-Code),便成為微控制器應(yīng)用中一項(xiàng)很重要的課題。因?yàn)檫@一重要的需求,AT32F423系列提供了安全庫(kù)區(qū)(SLIB)的功能,以防止重要的IP-Code被終端用戶的程序做修改或讀取,進(jìn)而達(dá)到保護(hù)的目的。
應(yīng)用原理
- 設(shè)定以密碼保護(hù)主閃存中指定范圍的程序區(qū)(即安全庫(kù)區(qū)),軟件方案商可將核心算法存放到此區(qū)域,以達(dá)到保護(hù)的功能,其余空白程序區(qū)可以提供給終端商客戶進(jìn)行二次開發(fā)。
- 安全庫(kù)區(qū)劃分為唯讀區(qū)(SLIB_READ_ONLY)及指令區(qū)(SLIB_INSTRUCTION),并可選擇部分或是整個(gè)安全庫(kù)區(qū)存放唯讀區(qū)或者指令區(qū)。
- 唯讀安全庫(kù)區(qū)(SLIB_READ_ONLY)的數(shù)據(jù)能透過(guò)I-Code和D-Code總線讀取,不能寫入。
- 指令安全庫(kù)區(qū)(SLIB_INSTRUCTION)內(nèi)的程序代碼僅能被MCU透過(guò)I-Code總線抓取指令(僅能被執(zhí)行),不能透過(guò)D-Code總線以讀取數(shù)據(jù)的方式讀取(包含ISP/ICP/調(diào)試模式以及從內(nèi)部RAM啟動(dòng)的程序),以讀取數(shù)據(jù)的方式去訪問(wèn)SLIB_INSTRUCTION時(shí),讀到的數(shù)值全都是0xFF。
- 安全庫(kù)區(qū)的程序代碼及數(shù)據(jù),除非輸入正確的密碼,否則無(wú)法被擦除。在密碼不正確時(shí),對(duì)安全庫(kù)區(qū)執(zhí)行寫入或擦除,將會(huì)在FLASH_STS寄存器的EPPERR位置"1"提出警告。
- 終端用戶執(zhí)行主閃存的整片擦除時(shí),安全庫(kù)區(qū)的程序代碼及數(shù)據(jù)不會(huì)被擦除。
- 當(dāng)安全庫(kù)區(qū)的保護(hù)功能被啟動(dòng)后,可以透過(guò)在SLIB_PWD_CLR寄存器寫入先前設(shè)置的密碼來(lái)解除保護(hù)功能。解除安全庫(kù)區(qū)的保護(hù)時(shí),芯片將會(huì)執(zhí)行主閃存的整片擦除(包含安全庫(kù)區(qū)的內(nèi)容)。因此即使軟件方案商設(shè)置的密碼被泄漏,也不會(huì)有程序代碼外泄的疑慮。
操作安全庫(kù)區(qū)
詳細(xì)操作請(qǐng)參考《AN0164_AT32F423_Security_Library_Application_Note》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0164獲取。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97471 -
雅特力
+關(guān)注
關(guān)注
0文章
158瀏覽量
8021 -
AT32
+關(guān)注
關(guān)注
1文章
113瀏覽量
2102
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論