0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雅特力AT32F435/F437入門使用指南

雅特力 AT32 MCU ? 2023-11-10 08:15 ? 次閱讀

搭建AT32開發(fā)環(huán)境

一、調(diào)試工具及開發(fā)板目前AT32F435/F437開發(fā)板都自帶AT-Link-EZ調(diào)試工具,AT-Link-EZ如下圖左邊紅框所示,它也可拆開后單獨(dú)搭配其他電路板使用,支持IDE在線調(diào)試、在線燒錄、USB轉(zhuǎn)串口等功能。圖1. AT-START-F437開發(fā)板及AT-Link-EZ實(shí)物圖34d0dffc-7f5e-11ee-9788-92fbcf53809c.png

注意:AT-START板配備資源的詳細(xì)說明,請(qǐng)參考《UM_AT_START_F43x_Vx.x》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的EvaluationBoard(開發(fā)板)資料包解壓后\AT_START_F43x_Vx.x\03_Documents。圖2. 雅特力科技官方網(wǎng)站AT-START-F437開發(fā)板資料包34e3aa1a-7f5e-11ee-9788-92fbcf53809c.png

二、燒錄工具及軟件

  • 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ǎng)站→技術(shù)與開發(fā)支持→Hardware Development Tool 頁(yè)面及第三方編程器(3RDParty Writer)頁(yè)面。

  • ICP使用說明請(qǐng)參考《UM_ICP_Programmer》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的ICP工具解壓后Artery_ICP_Programmer_Vx.x.xx\Document\UM_ICP_Programmer。
  • ISP使用說明請(qǐng)參考《UM_ISP_Programmer》,存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的ISP工具解壓后Artery_ISP_Programmer_Vx.x.xx\Document\UM_ISP_Programmer。
  • AT-Link使用說明請(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資料包34f07b0a-7f5e-11ee-9788-92fbcf53809c.png

三、AT32開發(fā)環(huán)境

模板工程介紹在ArteryTek提供的固件庫(kù)BSP中都默認(rèn)建立好了常用IDE的模板工程。BSP可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列獲取。圖4. 雅特力科技官方網(wǎng)站BSP資料包350c7472-7f5e-11ee-9788-92fbcf53809c.png以AT32F435/F437系列為例,BSP中創(chuàng)建了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,打開對(duì)應(yīng)工程的文件夾并點(diǎn)擊工程文件即可打開對(duì)應(yīng)的IDE工程。如下是Keil_v5工程示例:圖5. Keil_v5 templates工程示例

3519ce2e-7f5e-11ee-9788-92fbcf53809c.png

工程內(nèi)添加的內(nèi)容描述如下:① at32f435_437_clock.c時(shí)鐘配置文件,設(shè)置了默認(rèn)的時(shí)鐘頻率及時(shí)鐘路徑。② at32f435_437_int.c中斷文件,默認(rèn)編寫了部分內(nèi)核中斷函數(shù)的代碼流程。③ main.c模板工程的主代碼文件。④ at32f435_437_board.c板級(jí)配置文件,設(shè)置了AT-START上的按鍵和LED等常用硬件配置。⑤ firmware下的at32f435_437_xx.c是各片上外設(shè)的驅(qū)動(dòng)文件。⑥ system_at32f435_437.c系統(tǒng)初始化文件。⑦ startup_at32f435_437.s啟動(dòng)文件。⑧ readme.txt工程的說明文件,記錄了模板工程的一些應(yīng)用功能、設(shè)置方式以及關(guān)聯(lián)應(yīng)用筆記(ApNote)等信息。除了templates外,BSP還按照外設(shè)分類,提供了大量的examples示例代碼(Keil_v5工程文件)供用戶參考,用戶只需要直接打開即可。存放路徑為AT32F435_437_Firmware_Library_V2.x.x\project\at_start_f4xx\examples。注意:關(guān)于BSP的更多詳細(xì)說明,請(qǐng)參考《AT32F435_437固件庫(kù)BSP&Pack應(yīng)用指南》的“4BSP使用簡(jiǎn)述”章節(jié),存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_Firmware_Library_Vx.x.x\document。

Pack安裝

需要安裝Pack包在Keil/IAR中增加AT32MCU型號(hào),Pack包可以從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載。圖6. 雅特力科技官方網(wǎng)站Pack包3524d95e-7f5e-11ee-9788-92fbcf53809c.png對(duì)于Keil編譯系統(tǒng),建議keil4.74或5.23以上版本。Keil_v5版本需要將Keil5_AT32MCU_AddOn解壓后安裝對(duì)應(yīng)ArteryTek.AT32F435_437_DFP,Keil_v4版本需要安裝Keil4_AT32MCU_AddOn;默認(rèn)情況下,安裝時(shí)可以自動(dòng)識(shí)別到Keil的安裝路徑,如果識(shí)別不到或者不正確,需要手動(dòng)選擇Keil的安裝路徑。圖7. 安裝ArteryTek.AT32F435_437_DFP353da628-7f5e-11ee-9788-92fbcf53809c.png圖8. 安裝Keil4_AT32MCU_AddOn35517360-7f5e-11ee-9788-92fbcf53809c.png也可打開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)3558e9e2-7f5e-11ee-9788-92fbcf53809c.png對(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_AddOn356bbc20-7f5e-11ee-9788-92fbcf53809c.png注意:關(guān)于Pack安裝的更多詳細(xì)說明,請(qǐng)參考《AT32F435_437固件庫(kù)BSP&Pack應(yīng)用指南》的“2Pack安裝步驟”章節(jié),存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_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)35858ec0-7f5e-11ee-9788-92fbcf53809c.png在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è)置35a45f3a-7f5e-11ee-9788-92fbcf53809c.png并且在Utilities里,先勾去下圖標(biāo)示的選項(xiàng)框1,在選項(xiàng)框2下拉菜單選擇CMSIS-DAP Debugger, 然后再勾選選項(xiàng)框1(需要先取消再勾選)。圖13. Keil Utilities選項(xiàng)35bb8908-7f5e-11ee-9788-92fbcf53809c.png在IAR環(huán)境下使用AT-Link,選中工程,點(diǎn)擊Project,選擇Options,在Debugger里選擇CMSISDAP調(diào)試器,再在CMSIS DAP里選擇SWD。圖14. IAR Debug選項(xiàng)35c969ec-7f5e-11ee-9788-92fbcf53809c.png圖15. IAR CMSIS-DAP選項(xiàng)35d57e1c-7f5e-11ee-9788-92fbcf53809c.png注意:關(guān)于Flash算法文件、MCU型號(hào)切換、Jlink無法找到MCU等的詳細(xì)說明,請(qǐng)參考《AT32F435_437固件庫(kù)BSP&Pack應(yīng)用指南》相關(guān)章節(jié),此處不再贅述。存放路徑為雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列下載的BSP解壓后\AT32F435_437_Firmware_Library_Vx.x.x\document。

四、快速替代AT32F403A/407流程

  • 請(qǐng)參考《MG0018_從AT32F403A_407移植到AT32F435_437》,該文檔可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列獲??;
  • 如果程序仍無法正常運(yùn)行,請(qǐng)參考本文件其他章節(jié),或聯(lián)絡(luò)代理商及雅特力科技技術(shù)支持人員協(xié)助解決。

AT32F435/F437芯片的增強(qiáng)功能配置

一、PLL時(shí)鐘設(shè)置PLL設(shè)定方式AT32F435/F437內(nèi)置的PLL最高可輸出288MHz時(shí)鐘,須根據(jù)輸出頻率設(shè)定PLL時(shí)鐘配置寄存器(CRM_PLLCFG)。35e99afa-7f5e-11ee-9788-92fbcf53809c.png例如PLL=288MHz時(shí)(HEXT=8MHz),設(shè)置如下:35fcb496-7f5e-11ee-9788-92fbcf53809c.png其中,入口參數(shù)CRM_PLL_SOURCE_HEXT代表選擇HEXT為外部時(shí)鐘源,72為PLL_NS值,1為PLL_MS值,CRM_PLL_FR_2(0x01,二分頻)為PLL_FR值。更多時(shí)鐘配置相關(guān)信息,請(qǐng)參考《AN0084_AT32F435_437_CRM_Start_Guide》。該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0084獲取,其中詳細(xì)介紹了AT32F435/437的時(shí)鐘源碼配置與修改,以及如何使用雅特力的時(shí)鐘配置工具(New Clock Configuration)來快速生成想要的時(shí)鐘代碼并應(yīng)用到工程,該工具可從雅特力科技官方網(wǎng)站→產(chǎn)品訊息→高性能MCU→AT32F4xx系列獲取。

PLL自動(dòng)滑順

當(dāng)AT32F435/F437內(nèi)置的PLL為108MHz以上時(shí)鐘時(shí),需要操作自動(dòng)滑順頻率切換功能。使用AT32F435/F437 BSP時(shí)PLL自動(dòng)滑順頻率切換程序范例:圖16. PLL自動(dòng)滑順頻率切換配置360e0bba-7f5e-11ee-9788-92fbcf53809c.png注意:如果開啟了自動(dòng)滑順頻率切換功能,在時(shí)鐘切換后必須關(guān)閉自動(dòng)滑順頻率切換功能,開啟及關(guān)閉務(wù)必配 對(duì)使用。

Flash時(shí)鐘分頻

Flash時(shí)鐘分頻系數(shù)與系統(tǒng)時(shí)鐘頻率相對(duì)應(yīng),系統(tǒng)時(shí)鐘頻率與Flash分頻系數(shù)對(duì)應(yīng)關(guān)系如下:36274012-7f5e-11ee-9788-92fbcf53809c.png代碼實(shí)現(xiàn)如下:3630e82e-7f5e-11ee-9788-92fbcf53809c.png

二、如何打開FPU功能(硬件浮點(diǎn)運(yùn)算單元)

請(qǐng)參考《AN0037_How_to_use_FPU》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0037獲取,其中詳細(xì)描述了如何在AT32 MCU上使用FPU功能,以及Keil/IAR環(huán)境下的相關(guān)配置。

三、AT32F435/F437零等待/非零等待Flash和內(nèi)置SRAM大小選擇配置說明

通過用戶系統(tǒng)數(shù)據(jù)配置支持內(nèi)部閃存存儲(chǔ)器和SRAM分配使用。AT32F435/F437的SARM大小默認(rèn)是384KB,通過修改用戶系統(tǒng)數(shù)據(jù)的擴(kuò)充系統(tǒng)選項(xiàng)EOPB0來對(duì)其SARM在最低128KB字節(jié)到最高512KB字節(jié)之間動(dòng)態(tài)配置。使能EOPB0有效務(wù)必要掉電或RESET一次。AT32F435/F437的用戶系統(tǒng)數(shù)據(jù)說明如下:364e9194-7f5e-11ee-9788-92fbcf53809c.png

365ecfc8-7f5e-11ee-9788-92fbcf53809c.png

內(nèi)核讀取存放在零等待的Flash的指令碼沒有任何延遲,不會(huì)因?yàn)?a href="http://srfitnesspt.com/v/tag/132/" target="_blank">CPU主頻太快,F(xiàn)lash的速度跟不上而要插入等待時(shí)鐘。下文以AT32F435ZMT7(閃存容量4032K)為例,著重介紹SRAM從384KB修改為512KB的方法。更多SRAM擴(kuò)展相關(guān)的原理說明,請(qǐng)參考《AN0026_Extending_SRAM_in_User's_Program》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0026獲取。

使用Artery ICP Programmer工具(BOOT0=0,BOOT1=0)

AT-Link-EZ/AT-Link/J-Link連接到MCU→設(shè)備操作→用戶系統(tǒng)數(shù)據(jù)→EOPB0選擇512KB(如果有其他設(shè)置一并設(shè)置好)→應(yīng)用到設(shè)備,即完成修改。圖17. ICP工具編輯用戶系統(tǒng)數(shù)據(jù)選擇SRAM大小3674de1c-7f5e-11ee-9788-92fbcf53809c.png圖18. 用戶系統(tǒng)數(shù)據(jù)設(shè)置選擇SRAM大小3688a2d0-7f5e-11ee-9788-92fbcf53809c.png

使用Artery ISP Programmer工具(BOOT0=1,BOOT1=0)

UART或者USB連接到MCU→一直下一步到如下界面→選擇編輯用戶系統(tǒng)數(shù)據(jù)→下一步→EOPB0選擇512KB(如果有其他設(shè)置一并設(shè)置好)→應(yīng)用到設(shè)備,即完成修改。圖19. ISP工具編輯用戶系統(tǒng)數(shù)據(jù)選擇SRAM大小36a0df80-7f5e-11ee-9788-92fbcf53809c.png

在IAP中修改

用戶也可以使用在Bootloader program(IAP)內(nèi)修改SRAM的大小。需要注意的是,編譯器里需要將SRAM大小設(shè)置為與修改后SRAM大小一致(參考AN0026)。在運(yùn)行啟動(dòng)文件時(shí)會(huì)加載SRAM,如果應(yīng)用程序使用的SRAM大于384KB,就要在IAP修改用戶系統(tǒng)數(shù)據(jù),可以修改為512KB,SRAM大小用戶系統(tǒng)數(shù)據(jù)EOPB0的地址是0x1FFFC010,示例代碼如下:圖20. 定義Extend_SRAM(void)函數(shù)修改SRAM大小36c4664e-7f5e-11ee-9788-92fbcf53809c.png修改用戶系統(tǒng)數(shù)據(jù)前需要擦除用戶系統(tǒng)數(shù)據(jù)區(qū),如果用戶系統(tǒng)數(shù)據(jù)區(qū)的其他選項(xiàng)已經(jīng)設(shè)置過,需要將其他設(shè)置讀出來,擦除后和設(shè)置SRAM大小一并寫入。

在啟動(dòng)文件中修改

在運(yùn)在運(yùn)行啟動(dòng)文件時(shí)會(huì)加載SRAM,如果程序沒有IAP,而應(yīng)用程序使用的SRAM大于384KB,那么加載失敗就會(huì)進(jìn)入hardfault,導(dǎo)致應(yīng)用程序運(yùn)行不起來。所以可以在啟動(dòng)文件中加載SRAM之前將SRAM大小設(shè)置為512KB。在Keil編譯環(huán)境啟動(dòng)文件中增加如下加粗部分代碼:圖21. Keil啟動(dòng)文件中修改SRAM大小36d12cbc-7f5e-11ee-9788-92fbcf53809c.png在IAR編譯環(huán)境啟動(dòng)文件中增加如下加粗部分代碼:圖22. IAR啟動(dòng)文件中修改SRAM大小36e7a938-7f5e-11ee-9788-92fbcf53809c.png完成以上配置后,同時(shí)需要在應(yīng)用程序中添加聲明和定義Extend_SRAM函數(shù),參考1.2.3.3中寫法,定義Extend_SRAM(void)函數(shù)修改SRAM大小。不推薦使用APP應(yīng)用程序修改SRAM大小。如果APP使用的SRAM空間大于修改后的SRAM空間,程序會(huì)進(jìn)入Hardfault。

四、加密方式(訪問保護(hù),擦寫保護(hù))

訪問保護(hù)訪問保護(hù)即大家通常說的“加密”,作用于整個(gè)Flash存儲(chǔ)區(qū)域。一旦設(shè)置了Flash的訪問保護(hù),內(nèi)置的Flash存儲(chǔ)區(qū)只能通過程序的正常執(zhí)行才能讀出,而不能通過JTAG或者SWD讀出,當(dāng)使用ICP/ISP工具解除訪問保護(hù)時(shí),芯片會(huì)對(duì)FLASH進(jìn)行擦除操作??捎肐CP/ISP工具對(duì)IC進(jìn)行訪問保護(hù)與解除訪問保護(hù)操作,如下:

  • Artery ICP Programmer工具(BOOT0=0,BOOT1=0)啟用訪問保護(hù):設(shè)備操作--訪問保護(hù)--啟用訪問保護(hù)。解除訪問保護(hù):設(shè)備操作--訪問保護(hù)--解除訪問保護(hù)。

圖23. ISP工具啟用訪問保護(hù)36f3ce66-7f5e-11ee-9788-92fbcf53809c.png圖24. ISP工具解除訪問保護(hù)3711185e-7f5e-11ee-9788-92fbcf53809c.png

  • Artery ISP Programmer工具(BOOT0=1,BOOT1=0)啟用訪問保護(hù):使能/除能保護(hù)、啟用訪問保護(hù)--下一步--是,即可將程序加密。解除訪問保護(hù):使能/除能保護(hù)、禁用訪問保護(hù)--下一步--是,即可將Flash解除加密。
  • Artery ISP Multi-Port Programmer工具(BOOT0=1,BOOT1=0)啟用訪問保護(hù):使能/除能保護(hù)、啟用訪問保護(hù)--開始--是,即可將程序加密。解除訪問保護(hù):使能/除能保護(hù)、禁用訪問保護(hù)--開始--是,即可將Flash解除加密。

注意:設(shè)置了訪問保護(hù)不能通過擦除操作來解除訪問保護(hù)。

擦寫保護(hù)

寫保護(hù)作用于整個(gè)Flash存儲(chǔ)區(qū)域或者Flash存儲(chǔ)區(qū)域的某些頁(yè)。一旦設(shè)置了Flash的寫保護(hù),內(nèi)置的Flash存儲(chǔ)區(qū)就不能通過任何方式寫入??捎肐CP/ISP工具對(duì)IC進(jìn)行擦寫保護(hù)與解除擦寫保護(hù)操作,如下:

  • Artery ICP Programmer工具(BOOT0=0,BOOT1=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è)備。

圖25. ICP工具啟用擦寫保護(hù)372dcbac-7f5e-11ee-9788-92fbcf53809c.png圖26. ICP工具解除擦寫保護(hù)37477a8e-7f5e-11ee-9788-92fbcf53809c.png

  • Artery ISP Programmer工具(BOOT0=1,BOOT1=0)啟用擦寫保護(hù):使能/除能保護(hù)、啟用擦寫保護(hù)--下一步--是,即可啟用寫保護(hù)。解除擦寫保護(hù):使能/除能保護(hù)、禁用擦寫保護(hù)--下一步--是,即可解除寫保護(hù)。
  • Artery ISP Multi-Port Programmer工具(BOOT0=1,BOOT1=0)啟用擦寫保護(hù):使能/除能保護(hù)、啟用擦寫保護(hù)--開始--是,即可啟用寫保護(hù)。解除擦寫保護(hù):使能/除能保護(hù)、禁用擦寫保護(hù)--開始--是,即可解除寫保護(hù)。

注意:設(shè)置了擦寫保護(hù)不能通過擦除操作來解除擦寫保護(hù)。

五、在程序中區(qū)分AT32與其他IC方法

  • 讀取Cortex-M系列CPU ID號(hào)區(qū)分,此方式可以區(qū)分出M0,M3,M4內(nèi)核

圖27. 讀取Cortex型號(hào)375f7558-7f5e-11ee-9788-92fbcf53809c.png

  • 讀取UID,PID方式區(qū)分

圖28. 讀取UID,PID3772270c-7f5e-11ee-9788-92fbcf53809c.png說明:在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獲取。

六、AT32F435/F437高級(jí)功能

雅特力科技提供AT-SURF-F437開發(fā)板,配套實(shí)例涵蓋AT32F437大部分高級(jí)功能,且提供很多實(shí)用級(jí)別的程序(存放于BSP例程\project\at_surf_f437\examples目錄),詳細(xì)信息請(qǐng)參考《AN0049_AT_SURF_F437_Board_Application_Note》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0049獲取。圖29. AT-SURF-F437開發(fā)板378b1442-7f5e-11ee-9788-92fbcf53809c.png注意:系統(tǒng)性能改善是多方面調(diào)優(yōu)共同作用的結(jié)果,關(guān)于如何提高AT32F435/F437的運(yùn)行效能,請(qǐng)參考應(yīng)用手冊(cè)《AN0004_Performance_Optimization》與《AN0092_AT32F435_437_Performance_Improve》,該應(yīng)用筆記可從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→AP Note→AN0004/AN0092獲取。

下載編譯過程常見問題

編譯

程序啟動(dòng)進(jìn)入Hard Fault Handler

  • 使用SRAM超過用戶系統(tǒng)數(shù)據(jù)設(shè)置的SRAM空間。請(qǐng)參考1.2.3使用ICP/ISP或第三方燒錄器開啟更大SRAM空間后燒錄程序。
  • 在Keil或IAR上開啟了singleprecision功能,在code中并沒有開啟M4內(nèi)核FPU寄存器。在code中開啟FPU功能:

圖30. 增加開啟FPU的代碼37b43764-7f5e-11ee-9788-92fbcf53809c.png

  • 訪問數(shù)據(jù)越界。找到程序中訪問越界的問題點(diǎn),并修改它到正常數(shù)據(jù)區(qū)域內(nèi)。
  • 系統(tǒng)時(shí)鐘設(shè)置超出規(guī)格。

Keil項(xiàng)目?jī)?nèi)Jlink無法找到IC

  • 請(qǐng)參考《FAQ0008_Keil項(xiàng)目?jī)?nèi)Jlink無法找到IC問題》,該文檔可以從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→FAQ→FAQ0008下載。
  • 請(qǐng)參考《FAQ0132_JLink手動(dòng)添加Artery MCU》,該文檔及其附件可以從雅特力科技官方網(wǎng)站→技術(shù)與開發(fā)支持→FAQ→FAQ0132下載。

程序下載過程出問題

一、顯示Error: Flash Download failed–“Cortex-M4”問題在Keil仿真或下載時(shí)彈出:圖31. 下載出現(xiàn)Flash Download failed–“Cortex- M4”37c09ae0-7f5e-11ee-9788-92fbcf53809c.png出現(xiàn)彈窗的原因可能是以下幾種:

  • 開啟了訪問保護(hù),先取消MCU訪問保護(hù)再下載。
  • 選錯(cuò)了或者沒有選擇加載Flash文件算法,在Flash Download處選擇添加正確的Flash文件算法。
  • BOOT0、BOOT1選擇錯(cuò)誤,BOOT0、BOOT1管腳電平須分別設(shè)置為BOOT0=0、BOOT1=0,使MCU從主閃存存儲(chǔ)器啟動(dòng)。
  • J-Link驅(qū)動(dòng)版本太低,建議6.20C以上版本。
  • 在程序中將JTAG/SWD PIN disable,解決方法參考“2.2.5AT32恢復(fù)下載”。

二、顯示No Debug Unit Device found問題

  • 下載端口被占用,比如ICP正在連接目標(biāo)設(shè)備。
  • JTAG/SWD連線錯(cuò)誤,或沒有連接。

三、顯示RDDI-DAP Error問題

  • 編譯器優(yōu)化等級(jí)過高,如Keil AC6編譯器的默認(rèn)優(yōu)化等級(jí)-Oz,需要改為-O0/-O1。
  • 在程序中將JTAG/SWD PIN disable,解決方法參考“2.2.5 AT32恢復(fù)下載”。

四、ISP串口下載時(shí)卡死問題

使用ISP串口下載時(shí),偶爾會(huì)卡死,卡死之后電腦無法釋放串口。建議處理方式:

  • 檢查電源是否穩(wěn)定。
  • 更換質(zhì)量更好的USB轉(zhuǎn)串口工具,如CH340芯片等。

五、AT32恢復(fù)下載

在使用AT32F435/F437時(shí),用戶可能在以下操作后無法再次下載程序:

  • 在程序中將JTAG/SWD PIN disable后,無法下載程序并且找不到JTAG/SWD device。
  • 進(jìn)入Standby mode后,無法下載程序并且找不到JTAG/SWD device。

這里提供Keil和IAR環(huán)境下的解決方法如下:

  • 方法1通過切換boot模式。切換boot模式到Boot[1:0]=01b或Boot[1:0]=11b,再按下復(fù)位鍵,即可恢復(fù)下載(注意切回Boot[1:0]=00b)。同理,ISP下載也可恢復(fù)。
  • 方法2通過ICP tool加AT-Link方法。AT-Link專為AT32設(shè)計(jì),因此使用ICP加AT-Link可恢復(fù)下載。

安全庫(kù)區(qū)

編譯

概述

目前越來越多的微控器(MCU)應(yīng)用需要使用到復(fù)雜的算法及中間件解決方案(middleware solution),因此,如何保護(hù)軟件方案商開發(fā)出來的核心算法等知識(shí)產(chǎn)權(quán)代碼(IP-Code),便成為微控制器應(yīng)用中一項(xiàng)很重要的課題。因?yàn)檫@一重要的需求,AT32F435/437系列提供了安全庫(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ù)能透過I-Code和D-Code總線讀取,不能寫入。
  • 指令安全庫(kù)區(qū)(SLIB_INSTRUCTION)內(nèi)的程序代碼僅能被MCU透過I-Code總線抓取指令(僅能被執(zhí)行),不能透過D-Code總線以讀取數(shù)據(jù)的方式讀取(包含ISP/ICP/調(diào)試模式以及從內(nèi)部RAM啟動(dòng)的程序),以讀取數(shù)據(jù)的方式去訪問SLIB_INSTRUCTION時(shí),讀到的數(shù)值全都是0xFF。
  • 安全庫(kù)區(qū)的程序代碼及數(shù)據(jù),除非輸入正確的密碼,否則無法被擦除。在密碼不正確時(shí),對(duì)安全庫(kù)區(qū)執(zhí)行寫入或擦除,將會(huì)在FLASH_STS寄存器的EPPERR位置"1"提出警告。
  • 終端用戶執(zhí)行主閃存的整片擦除時(shí),安全庫(kù)區(qū)的程序代碼及數(shù)據(jù)不會(huì)被擦除。
  • 當(dāng)安全庫(kù)區(qū)的保護(hù)功能被啟動(dòng)后,可以透過在SLIB_PWD_CLR寄存器寫入先前設(shè)置的密碼來解除保護(hù)功能。解除安全庫(kù)區(qū)的保護(hù)時(shí),芯片將會(huì)執(zhí)行主閃存的整片擦除(包含安全庫(kù)區(qū)的內(nèi)容)。因此即使軟件方案商設(shè)置的密碼被泄漏,也不會(huì)有程序代碼外泄的疑慮。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96822
  • 雅特力
    +關(guān)注

    關(guān)注

    0

    文章

    150

    瀏覽量

    7946
  • AT32
    +關(guān)注

    關(guān)注

    1

    文章

    110

    瀏覽量

    2046
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AT32F423入門使用指南

    初步環(huán)境準(zhǔn)備開發(fā)環(huán)境下載地址:
    的頭像 發(fā)表于 05-14 08:15 ?1086次閱讀
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>423<b class='flag-5'>入門</b><b class='flag-5'>使用指南</b>

    AT32F423時(shí)鐘配置入門指南

    電子發(fā)燒友網(wǎng)站提供《AT32F423時(shí)鐘配置入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-31 09:37 ?0次下載
    <b class='flag-5'>雅</b><b class='flag-5'>特</b><b class='flag-5'>力</b>AT32<b class='flag-5'>F</b>423時(shí)鐘配置<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    AT32F425入門使用指南

    電子發(fā)燒友網(wǎng)站提供《AT32F425入門使用指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 11:14 ?6次下載
    AT32<b class='flag-5'>F</b>425<b class='flag-5'>入門</b><b class='flag-5'>使用指南</b>

    AT32F435 & AT32F437入門使用指南

    電子發(fā)燒友網(wǎng)站提供《AT32F435 & AT32F437入門使用指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 11:13 ?1次下載
    <b class='flag-5'>AT32F435</b> & AT32<b class='flag-5'>F437</b><b class='flag-5'>入門</b><b class='flag-5'>使用指南</b>

    AT32F435&amp;AT32F437入門使用指南

    AT32F435 & AT32F437入門使用指南旨在讓用戶快速使用AT32F435xx /AT32
    發(fā)表于 10-26 06:58

    AT32F435/437xx GPIO使用指南

    AT32F435/437xx的通用功能I/O (GPIO)提供了一系列與外部環(huán)境通訊的接口,可用于MCU與其他嵌入式設(shè)備之間通過數(shù)字或模擬方式的通訊。AT32F435/437xx系列的
    發(fā)表于 10-25 08:23

    AT32F435/437 I 2C使用指南

    AT32F435/437 I2C使用指南主要就I2C 總線接口的基本功能進(jìn)行講解和案例解析。
    發(fā)表于 10-25 08:09

    AT32F435/437 ADC應(yīng)用說明

    AT32F435/437 ADC使用指南主要以ADC的特色功能進(jìn)行講解和案列解析。
    發(fā)表于 10-25 08:08

    AT32F435/437 DMA使用指南

    AT32F435/437 擁有 2 個(gè) DMA 控制器(DMA1/DMA2),每個(gè) DMA 支持 7 個(gè)通道且外設(shè)的 DMA 請(qǐng)求可映射到任意通道上。本文主要就 DMA 的基本功能進(jìn)行講解和案列解析。
    發(fā)表于 10-25 08:07

    如何提升AT32F435/437性能

    AT32F435/437 Performance Improvement描述了如何通過軟件方法改善AT32F435_437的運(yùn)行效能。
    發(fā)表于 10-25 07:37

    AT32F435/437 EDMA使用指南

    AT32F435/437 EDMA使用指南本文主要就EDMA 的基本功能進(jìn)行講解和案列解析。
    發(fā)表于 10-25 07:24

    AT32F435/437系列安全庫(kù)區(qū)的應(yīng)用原理、軟件使用方法及范例程序

    AT32F435/437 Security Library Application Note主要在闡述AT32F435/437系列安全庫(kù)區(qū)的應(yīng)用原理、軟件使用方法及范例程序。
    發(fā)表于 10-25 07:22

    AT32F435/437 OTGFS應(yīng)用說明

    AT32F435/437 OTGFS Application Note主要描述AT32 OTGFS 外設(shè)特性,OTGFS 支持主機(jī)和設(shè)備模式。
    發(fā)表于 10-25 07:01

    AT32F435/437時(shí)鐘配置

    AT32F435/437時(shí)鐘配置主要介紹兩部分內(nèi)容:1、基于提供的V2.x.x 的板級(jí)支持包來進(jìn)行時(shí)鐘源碼的配置及修改2、如何使用配套
    發(fā)表于 10-25 06:18

    FAQ0130 AT32F435 437 QSPI XIP模式需開啟cache bypass

    AT32F435/437 QSPI XIP模式需開啟cache bypass在使用QSPI 時(shí),當(dāng)使用XIP 模式時(shí),運(yùn)行過程中讀寫外接器件可能出現(xiàn)非預(yù)期的數(shù)據(jù),導(dǎo)致程序數(shù)據(jù)錯(cuò)誤、hardfault 等問題。
    發(fā)表于 10-23 06:15