搭建AT32開發環境
一、調試工具及開發板目前AT32F435/F437開發板都自帶AT-Link-EZ調試工具,AT-Link-EZ如下圖左邊紅框所示,它也可拆開后單獨搭配其他電路板使用,支持IDE在線調試、在線燒錄、USB轉串口等功能。圖1. AT-START-F437開發板及AT-Link-EZ實物圖
注意:AT-START板配備資源的詳細說明,請參考《UM_AT_START_F43x_Vx.x》,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的EvaluationBoard(開發板)資料包解壓后\AT_START_F43x_Vx.x\03_Documents。圖2. 雅特力科技官方網站AT-START-F437開發板資料包
二、燒錄工具及軟件
- AT燒錄工具及軟件:AT-Link/AT-Link+/AT-Link-Pro/AT-Link-ISO/AT-Link-EZ、ICP/ISP。
- 第三方燒錄工具:J-Link、安富萊、正點原子、軒微科技、創芯工坊、周立功、邁斯威志、阿莫燒錄器、昂科、永創智能、高勒康達、浦洛、戎象科技、欣揚電子、西爾特、智峰科技等。
注意:上述燒錄工具詳情請訪問雅特力科技官方網站→技術與開發支持→Hardware Development Tool 頁面及第三方編程器(3RDParty Writer)頁面。
- ICP使用說明請參考《UM_ICP_Programmer》,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的ICP工具解壓后Artery_ICP_Programmer_Vx.x.xx\Document\UM_ICP_Programmer。
- ISP使用說明請參考《UM_ISP_Programmer》,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的ISP工具解壓后Artery_ISP_Programmer_Vx.x.xx\Document\UM_ISP_Programmer。
- AT-Link使用說明請參考《UM0004_AT-Link_User_Manual》,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的AT-Link-Family工具解壓后AT_Link_CH_Vx.x.x\05_Documents\UM0004_AT-Link_User_Manual_ZH_Vx.x.x。
圖3. 雅特力科技官方網站ICP/ISP/AT-Link-Family資料包
三、AT32開發環境
模板工程介紹在ArteryTek提供的固件庫BSP中都默認建立好了常用IDE的模板工程。BSP可從雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列獲取。圖4. 雅特力科技官方網站BSP資料包
以AT32F435/F437系列為例,BSP中創建了Keil_v5/Keil_v4/IAR_6.10/IAR_7.4/IAR_8.2/eclipse_gcc/at32_ide的模板工程,存放路徑為AT32F435_437_Firmware_Library_V2.x.x\project\at_start_f4xx\templates,打開對應工程的文件夾并點擊工程文件即可打開對應的IDE工程。如下是Keil_v5工程示例:圖5. Keil_v5 templates工程示例

工程內添加的內容描述如下:① at32f435_437_clock.c時鐘配置文件,設置了默認的時鐘頻率及時鐘路徑。② at32f435_437_int.c中斷文件,默認編寫了部分內核中斷函數的代碼流程。③ main.c模板工程的主代碼文件。④ at32f435_437_board.c板級配置文件,設置了AT-START上的按鍵和LED等常用硬件配置。⑤ firmware下的at32f435_437_xx.c是各片上外設的驅動文件。⑥ system_at32f435_437.c系統初始化文件。⑦ startup_at32f435_437.s啟動文件。⑧ readme.txt工程的說明文件,記錄了模板工程的一些應用功能、設置方式以及關聯應用筆記(ApNote)等信息。除了templates外,BSP還按照外設分類,提供了大量的examples示例代碼(Keil_v5工程文件)供用戶參考,用戶只需要直接打開即可。存放路徑為AT32F435_437_Firmware_Library_V2.x.x\project\at_start_f4xx\examples。注意:關于BSP的更多詳細說明,請參考《AT32F435_437固件庫BSP&Pack應用指南》的“4BSP使用簡述”章節,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_Firmware_Library_Vx.x.x\document。
Pack安裝
需要安裝Pack包在Keil/IAR中增加AT32MCU型號,Pack包可以從雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載。圖6. 雅特力科技官方網站Pack包
對于Keil編譯系統,建議keil4.74或5.23以上版本。Keil_v5版本需要將Keil5_AT32MCU_AddOn解壓后安裝對應ArteryTek.AT32F435_437_DFP,Keil_v4版本需要安裝Keil4_AT32MCU_AddOn;默認情況下,安裝時可以自動識別到Keil的安裝路徑,如果識別不到或者不正確,需要手動選擇Keil的安裝路徑。圖7. 安裝ArteryTek.AT32F435_437_DFP
圖8. 安裝Keil4_AT32MCU_AddOn
也可打開keil,點擊Pack Installer圖標,在Pack Installer中點擊左上角file,選擇import,導入從雅特力科技官方網站下載好的對應pack包完成安裝。圖9. Keil中Pack Installer圖標
對于IAR編譯系統,建議IAR7.0或IAR6.1以上版本。安裝IAR_AT32MCU_AddOn,默認情況下,安裝時可以自動識別到IAR的安裝路徑,如果識別不到或者不正確,需要手動選擇IAR的安裝路徑。圖10. 安裝IAR_AT32MCU_AddOn
注意:關于Pack安裝的更多詳細說明,請參考《AT32F435_437固件庫BSP&Pack應用指南》的“2Pack安裝步驟”章節,存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_Firmware_Library_Vx.x.x\document。
使用AT-Link調試及下載
在Keil環境下使用AT-Link,在Debug里選擇CMSIS-DAP調試器。圖11. Keil Debug選項
在Debug單擊Settings進入Cortex-M Target Driver Setup界面如下圖,1. 先選擇AT-Link(WinUSB)-CMSIS-DAP/AT-Link-CMSIS-DAP;注意:關于WinUSB,請參考《FAQ0136_如何使用AT-LINK的WinUSB功能提升下載速率》,該文檔可以從雅特力科技官方網站→技術與開發支持→FAQ→FAQ0136下載。2. Port選擇SW,再勾選SWJ;3. 確認已識別到ARM SW-DP調試模塊。圖12. Keil Debug選項Settings設置
并且在Utilities里,先勾去下圖標示的選項框1,在選項框2下拉菜單選擇CMSIS-DAP Debugger, 然后再勾選選項框1(需要先取消再勾選)。圖13. Keil Utilities選項
在IAR環境下使用AT-Link,選中工程,點擊Project,選擇Options,在Debugger里選擇CMSISDAP調試器,再在CMSIS DAP里選擇SWD。圖14. IAR Debug選項
圖15. IAR CMSIS-DAP選項
注意:關于Flash算法文件、MCU型號切換、Jlink無法找到MCU等的詳細說明,請參考《AT32F435_437固件庫BSP&Pack應用指南》相關章節,此處不再贅述。存放路徑為雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_Firmware_Library_Vx.x.x\document。
四、快速替代AT32F403A/407流程
- 請參考《MG0018_從AT32F403A_407移植到AT32F435_437》,該文檔可從雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列獲取;
- 如果程序仍無法正常運行,請參考本文件其他章節,或聯絡代理商及雅特力科技技術支持人員協助解決。
AT32F435/F437芯片的增強功能配置
一、PLL時鐘設置PLL設定方式AT32F435/F437內置的PLL最高可輸出288MHz時鐘,須根據輸出頻率設定PLL時鐘配置寄存器(CRM_PLLCFG)。
例如PLL=288MHz時(HEXT=8MHz),設置如下:
其中,入口參數CRM_PLL_SOURCE_HEXT代表選擇HEXT為外部時鐘源,72為PLL_NS值,1為PLL_MS值,CRM_PLL_FR_2(0x01,二分頻)為PLL_FR值。更多時鐘配置相關信息,請參考《AN0084_AT32F435_437_CRM_Start_Guide》。該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0084獲取,其中詳細介紹了AT32F435/437的時鐘源碼配置與修改,以及如何使用雅特力的時鐘配置工具(New Clock Configuration)來快速生成想要的時鐘代碼并應用到工程,該工具可從雅特力科技官方網站→產品訊息→高性能MCU→AT32F4xx系列獲取。
PLL自動滑順
當AT32F435/F437內置的PLL為108MHz以上時鐘時,需要操作自動滑順頻率切換功能。使用AT32F435/F437 BSP時PLL自動滑順頻率切換程序范例:圖16. PLL自動滑順頻率切換配置
注意:如果開啟了自動滑順頻率切換功能,在時鐘切換后必須關閉自動滑順頻率切換功能,開啟及關閉務必配 對使用。
Flash時鐘分頻
Flash時鐘分頻系數與系統時鐘頻率相對應,系統時鐘頻率與Flash分頻系數對應關系如下:
代碼實現如下:
二、如何打開FPU功能(硬件浮點運算單元)
請參考《AN0037_How_to_use_FPU》,該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0037獲取,其中詳細描述了如何在AT32 MCU上使用FPU功能,以及Keil/IAR環境下的相關配置。
三、AT32F435/F437零等待/非零等待Flash和內置SRAM大小選擇配置說明
通過用戶系統數據配置支持內部閃存存儲器和SRAM分配使用。AT32F435/F437的SARM大小默認是384KB,通過修改用戶系統數據的擴充系統選項EOPB0來對其SARM在最低128KB字節到最高512KB字節之間動態配置。使能EOPB0有效務必要掉電或RESET一次。AT32F435/F437的用戶系統數據說明如下:

內核讀取存放在零等待的Flash的指令碼沒有任何延遲,不會因為CPU主頻太快,Flash的速度跟不上而要插入等待時鐘。下文以AT32F435ZMT7(閃存容量4032K)為例,著重介紹SRAM從384KB修改為512KB的方法。更多SRAM擴展相關的原理說明,請參考《AN0026_Extending_SRAM_in_User's_Program》,該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0026獲取。
使用Artery ICP Programmer工具(BOOT0=0,BOOT1=0)
AT-Link-EZ/AT-Link/J-Link連接到MCU→設備操作→用戶系統數據→EOPB0選擇512KB(如果有其他設置一并設置好)→應用到設備,即完成修改。圖17. ICP工具編輯用戶系統數據選擇SRAM大小
圖18. 用戶系統數據設置選擇SRAM大小
使用Artery ISP Programmer工具(BOOT0=1,BOOT1=0)
UART或者USB連接到MCU→一直下一步到如下界面→選擇編輯用戶系統數據→下一步→EOPB0選擇512KB(如果有其他設置一并設置好)→應用到設備,即完成修改。圖19. ISP工具編輯用戶系統數據選擇SRAM大小
在IAP中修改
用戶也可以使用在Bootloader program(IAP)內修改SRAM的大小。需要注意的是,編譯器里需要將SRAM大小設置為與修改后SRAM大小一致(參考AN0026)。在運行啟動文件時會加載SRAM,如果應用程序使用的SRAM大于384KB,就要在IAP修改用戶系統數據,可以修改為512KB,SRAM大小用戶系統數據EOPB0的地址是0x1FFFC010,示例代碼如下:圖20. 定義Extend_SRAM(void)函數修改SRAM大小
修改用戶系統數據前需要擦除用戶系統數據區,如果用戶系統數據區的其他選項已經設置過,需要將其他設置讀出來,擦除后和設置SRAM大小一并寫入。
在啟動文件中修改
在運在運行啟動文件時會加載SRAM,如果程序沒有IAP,而應用程序使用的SRAM大于384KB,那么加載失敗就會進入hardfault,導致應用程序運行不起來。所以可以在啟動文件中加載SRAM之前將SRAM大小設置為512KB。在Keil編譯環境啟動文件中增加如下加粗部分代碼:圖21. Keil啟動文件中修改SRAM大小
在IAR編譯環境啟動文件中增加如下加粗部分代碼:圖22. IAR啟動文件中修改SRAM大小
完成以上配置后,同時需要在應用程序中添加聲明和定義Extend_SRAM函數,參考1.2.3.3中寫法,定義Extend_SRAM(void)函數修改SRAM大小。不推薦使用APP應用程序修改SRAM大小。如果APP使用的SRAM空間大于修改后的SRAM空間,程序會進入Hardfault。
四、加密方式(訪問保護,擦寫保護)
訪問保護訪問保護即大家通常說的“加密”,作用于整個Flash存儲區域。一旦設置了Flash的訪問保護,內置的Flash存儲區只能通過程序的正常執行才能讀出,而不能通過JTAG或者SWD讀出,當使用ICP/ISP工具解除訪問保護時,芯片會對FLASH進行擦除操作。可用ICP/ISP工具對IC進行訪問保護與解除訪問保護操作,如下:
- Artery ICP Programmer工具(BOOT0=0,BOOT1=0)啟用訪問保護:設備操作--訪問保護--啟用訪問保護。解除訪問保護:設備操作--訪問保護--解除訪問保護。
圖23. ISP工具啟用訪問保護
圖24. ISP工具解除訪問保護
- Artery ISP Programmer工具(BOOT0=1,BOOT1=0)啟用訪問保護:使能/除能保護、啟用訪問保護--下一步--是,即可將程序加密。解除訪問保護:使能/除能保護、禁用訪問保護--下一步--是,即可將Flash解除加密。
- Artery ISP Multi-Port Programmer工具(BOOT0=1,BOOT1=0)啟用訪問保護:使能/除能保護、啟用訪問保護--開始--是,即可將程序加密。解除訪問保護:使能/除能保護、禁用訪問保護--開始--是,即可將Flash解除加密。
注意:設置了訪問保護不能通過擦除操作來解除訪問保護。
擦寫保護
寫保護作用于整個Flash存儲區域或者Flash存儲區域的某些頁。一旦設置了Flash的寫保護,內置的Flash存儲區就不能通過任何方式寫入。可用ICP/ISP工具對IC進行擦寫保護與解除擦寫保護操作,如下:
- Artery ICP Programmer工具(BOOT0=0,BOOT1=0)啟用擦寫保護:設備操作--用戶系統數據--勾選擦寫保護字節扇區--應用到設備。解除擦寫保護:設備操作--用戶系統數據--勾除擦寫保護字節扇區--應用到設備。
圖25. ICP工具啟用擦寫保護
圖26. ICP工具解除擦寫保護
- Artery ISP Programmer工具(BOOT0=1,BOOT1=0)啟用擦寫保護:使能/除能保護、啟用擦寫保護--下一步--是,即可啟用寫保護。解除擦寫保護:使能/除能保護、禁用擦寫保護--下一步--是,即可解除寫保護。
- Artery ISP Multi-Port Programmer工具(BOOT0=1,BOOT1=0)啟用擦寫保護:使能/除能保護、啟用擦寫保護--開始--是,即可啟用寫保護。解除擦寫保護:使能/除能保護、禁用擦寫保護--開始--是,即可解除寫保護。
注意:設置了擦寫保護不能通過擦除操作來解除擦寫保護。
五、在程序中區分AT32與其他IC方法
- 讀取Cortex-M系列CPU ID號區分,此方式可以區分出M0,M3,M4內核
圖27. 讀取Cortex型號
- 讀取UID,PID方式區分
圖28. 讀取UID,PID
說明:在AT32F4xx微控制器內部有多個ID編碼,將獲取到的ID信息組裝成一個64bit的數據,就可以區分出MCU是哪一種型號。更多信息請參考各型號技術手冊RM的調試(DEBUG)章節以及《AN0016_Recognize_AT32_MCU》,該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0016獲取。
六、AT32F435/F437高級功能
雅特力科技提供AT-SURF-F437開發板,配套實例涵蓋AT32F437大部分高級功能,且提供很多實用級別的程序(存放于BSP例程\project\at_surf_f437\examples目錄),詳細信息請參考《AN0049_AT_SURF_F437_Board_Application_Note》,該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0049獲取。圖29. AT-SURF-F437開發板
注意:系統性能改善是多方面調優共同作用的結果,關于如何提高AT32F435/F437的運行效能,請參考應用手冊《AN0004_Performance_Optimization》與《AN0092_AT32F435_437_Performance_Improve》,該應用筆記可從雅特力科技官方網站→技術與開發支持→AP Note→AN0004/AN0092獲取。
下載編譯過程常見問題
編譯
程序啟動進入Hard Fault Handler
- 使用SRAM超過用戶系統數據設置的SRAM空間。請參考1.2.3使用ICP/ISP或第三方燒錄器開啟更大SRAM空間后燒錄程序。
- 在Keil或IAR上開啟了singleprecision功能,在code中并沒有開啟M4內核FPU寄存器。在code中開啟FPU功能:
圖30. 增加開啟FPU的代碼
- 訪問數據越界。找到程序中訪問越界的問題點,并修改它到正常數據區域內。
- 系統時鐘設置超出規格。
Keil項目內Jlink無法找到IC
- 請參考《FAQ0008_Keil項目內Jlink無法找到IC問題》,該文檔可以從雅特力科技官方網站→技術與開發支持→FAQ→FAQ0008下載。
- 請參考《FAQ0132_JLink手動添加Artery MCU》,該文檔及其附件可以從雅特力科技官方網站→技術與開發支持→FAQ→FAQ0132下載。
程序下載過程出問題
一、顯示Error: Flash Download failed–“Cortex-M4”問題在Keil仿真或下載時彈出:圖31. 下載出現Flash Download failed–“Cortex- M4”
出現彈窗的原因可能是以下幾種:
- 開啟了訪問保護,先取消MCU訪問保護再下載。
- 選錯了或者沒有選擇加載Flash文件算法,在Flash Download處選擇添加正確的Flash文件算法。
- BOOT0、BOOT1選擇錯誤,BOOT0、BOOT1管腳電平須分別設置為BOOT0=0、BOOT1=0,使MCU從主閃存存儲器啟動。
- J-Link驅動版本太低,建議6.20C以上版本。
- 在程序中將JTAG/SWD PIN disable,解決方法參考“2.2.5AT32恢復下載”。
二、顯示No Debug Unit Device found問題
- 下載端口被占用,比如ICP正在連接目標設備。
- JTAG/SWD連線錯誤,或沒有連接。
三、顯示RDDI-DAP Error問題
- 編譯器優化等級過高,如Keil AC6編譯器的默認優化等級-Oz,需要改為-O0/-O1。
- 在程序中將JTAG/SWD PIN disable,解決方法參考“2.2.5 AT32恢復下載”。
四、ISP串口下載時卡死問題
使用ISP串口下載時,偶爾會卡死,卡死之后電腦無法釋放串口。建議處理方式:
- 檢查電源是否穩定。
- 更換質量更好的USB轉串口工具,如CH340芯片等。
五、AT32恢復下載
在使用AT32F435/F437時,用戶可能在以下操作后無法再次下載程序:
- 在程序中將JTAG/SWD PIN disable后,無法下載程序并且找不到JTAG/SWD device。
- 進入Standby mode后,無法下載程序并且找不到JTAG/SWD device。
這里提供Keil和IAR環境下的解決方法如下:
- 方法1通過切換boot模式。切換boot模式到Boot[1:0]=01b或Boot[1:0]=11b,再按下復位鍵,即可恢復下載(注意切回Boot[1:0]=00b)。同理,ISP下載也可恢復。
- 方法2通過ICP tool加AT-Link方法。AT-Link專為AT32設計,因此使用ICP加AT-Link可恢復下載。
安全庫區
編譯
概述
目前越來越多的微控器(MCU)應用需要使用到復雜的算法及中間件解決方案(middleware solution),因此,如何保護軟件方案商開發出來的核心算法等知識產權代碼(IP-Code),便成為微控制器應用中一項很重要的課題。因為這一重要的需求,AT32F435/437系列提供了安全庫區(SLIB)的功能,以防止重要的IP-Code被終端用戶的程序做修改或讀取,進而達到保護的目的。
應用原理
- 設定以密碼保護主閃存中指定范圍的程序區(即安全庫區),軟件方案商可將核心算法存放到此區域,以達到保護的功能,其余空白程序區可以提供給終端商客戶進行二次開發。
- 安全庫區劃分為唯讀區(SLIB_READ_ONLY)及指令區(SLIB_INSTRUCTION),并可選擇部分或是整個安全庫區存放唯讀區或者指令區。
- 唯讀安全庫區(SLIB_READ_ONLY)的數據能透過I-Code和D-Code總線讀取,不能寫入。
- 指令安全庫區(SLIB_INSTRUCTION)內的程序代碼僅能被MCU透過I-Code總線抓取指令(僅能被執行),不能透過D-Code總線以讀取數據的方式讀取(包含ISP/ICP/調試模式以及從內部RAM啟動的程序),以讀取數據的方式去訪問SLIB_INSTRUCTION時,讀到的數值全都是0xFF。
- 安全庫區的程序代碼及數據,除非輸入正確的密碼,否則無法被擦除。在密碼不正確時,對安全庫區執行寫入或擦除,將會在FLASH_STS寄存器的EPPERR位置"1"提出警告。
- 終端用戶執行主閃存的整片擦除時,安全庫區的程序代碼及數據不會被擦除。
- 當安全庫區的保護功能被啟動后,可以透過在SLIB_PWD_CLR寄存器寫入先前設置的密碼來解除保護功能。解除安全庫區的保護時,芯片將會執行主閃存的整片擦除(包含安全庫區的內容)。因此即使軟件方案商設置的密碼被泄漏,也不會有程序代碼外泄的疑慮。
-
開發板
+關注
關注
26文章
6262瀏覽量
117018 -
雅特力
+關注
關注
1文章
194瀏覽量
9284 -
AT32
+關注
關注
1文章
121瀏覽量
3144
發布評論請先 登錄
雅特力科技通過ISO 26262汽車功能安全ASIL D認證
從實驗室到藍天:雅特力AT32 MCU如何成為無人機飛控的“中國芯”?
雅特力AT32 MCU推動低空經濟發展
雅特力AT32F413芯片推動洗衣機節能升級
雅特力AT32F421定義高速吹風機控制新標準?
雅特力MCU智能監測系統為電鉆提供全鏈路保護
雅特力MCU -40℃~105℃寬溫認證保障兩輪車全氣候運行?
雅特力科技AT32F422/426系列MCU全新發布,超值型重塑高性能MCU標桿
??雅特力AT32F435:240MHz多軸伺服控制成本最優解?
雅特力科技精彩亮相2025 MCU及嵌入式技術論壇
雅特力AT32F402/F405入門使用指南
雅特力推出AT32F455/F456/F457系列微控制器,驅動工業物聯網創新發展
昂科燒錄器支持ArteryTek雅特力的32位微控制器AT32F402CCT
雅特力AT32F435/F437入門使用指南
評論