中文字幕无码人妻在线二区,在线高清字幕二区三区,亚洲成人 小说区 图片区 都市一区,欧美日韩精品一区二区三区不卡
當(dāng)前位置:首頁(yè)>新聞中心>技術(shù)分享>航芯技術(shù)分享 | ACM32F40x開(kāi)發(fā)環(huán)境搭建

航芯技術(shù)分享 | ACM32F40x開(kāi)發(fā)環(huán)境搭建

發(fā)布時(shí)間:

Keil


1.1 Keil安裝步驟


安裝包鏈接:https://cloud.tencent.com/developer/article/1605195  (keil推薦在MDK5.31(含)以上)。


一、下載并解壓安裝包,并按步驟完成安裝



二、運(yùn)行安裝程序,點(diǎn)擊next



三、勾選accept,點(diǎn)擊next



四、選擇安裝路徑,點(diǎn)擊next(最好選擇默認(rèn)路徑,如果自行修改需要注意不要添加中文)



注意事項(xiàng):

?  安裝路徑不能有中文

?  安裝目錄不能和Keil4以及KeilC51重合


五、信息隨意填寫(xiě),點(diǎn)擊next



六、等待安裝



七、點(diǎn)擊finish,完成安裝



八、突然會(huì)彈出“Pack installer”頁(yè)面,先后關(guān)閉兩個(gè)窗口



1.2 Keil使用流程(以ACM32F4X0系列為例)


一、安裝航芯的芯片包





二、創(chuàng)建一個(gè)新的文件夾temp,放入航芯提供的Core_Drivers文件(F4對(duì)應(yīng)需要F4的Core_Drivers文件),同時(shí)在里面創(chuàng)建一個(gè)新的文件夾user。



三、打開(kāi)keil,建立一個(gè)新的工程




四、安裝好了航芯的芯片包后,可以選擇對(duì)應(yīng)的設(shè)備號(hào)(沒(méi)有找到對(duì)應(yīng)的設(shè)備號(hào)可能是芯片包未安裝好)




五、添加頭文件(.h文件)




六、添加源文件(.C文件)


第一步打開(kāi)空白頁(yè),編寫(xiě)程序(可以使用航芯提供的demo程序或者自己編寫(xiě)的程序)后,第二步保存到對(duì)應(yīng)的工程文件夾。





1.3 keil編譯、下載、運(yùn)行


一、工程編譯



二、下載程序(ACM32F4XX 系列支持的在線(xiàn)仿真器包括: J-Link-V9(含)以上、 U-Link2、 CMSIS-DAP等,使用 J-Link 在線(xiàn)調(diào)試時(shí), Keil 推薦在 MDK5.31(含)以上, J-Link 驅(qū)動(dòng)建議在 V6.70e(含)以上)



航芯的core開(kāi)發(fā)板是帶有DAP連接的,所以可以直接選擇CMSIS-DAPDebugger,通過(guò)Settings查看是否正常連接。如果需要使用Jlink方式連接,可以參考《航芯通用MCU使用JFlash燒錄程序的方法說(shuō)明.pdf》。





三、運(yùn)行(目前芯片不支持下載后自啟動(dòng),需要按下RESET鍵后,程序才能運(yùn)行),以GPIO口翻轉(zhuǎn)控制LED燈閃爍為例,部分示例代碼(完整代碼見(jiàn)附錄)和現(xiàn)象如下:





1.4 Keil Debug使用說(shuō)明


一、進(jìn)入調(diào)試界面



二、調(diào)試工具欄介紹


斷點(diǎn)是調(diào)試器的功能之一,可以讓程序停止在設(shè)置斷點(diǎn)的語(yǔ)句。在調(diào)試過(guò)程中,可在程序的某一處設(shè)置斷點(diǎn)再點(diǎn)擊Run運(yùn)行,此時(shí)當(dāng)程序運(yùn)行至該位置時(shí)自動(dòng)停止。





三、調(diào)試窗口介紹


1. 查看外設(shè)寄存器的值,參考《航芯ACM32F0X0_FP0X_用戶(hù)手冊(cè)_V1.6.pdf》查看各個(gè)外設(shè)寄存器的功能。



2. 選中需要查看的參數(shù),單擊鼠標(biāo)右鍵,可以將參數(shù)放入觀察窗口,實(shí)時(shí)查看參數(shù)的變化。


3. 內(nèi)核寄存器組


寄存器窗口,如下圖所示,該窗口用于顯示R0~R15、xPSR等內(nèi)核寄存器的值(不是外設(shè)寄存器),關(guān)于內(nèi)核寄存器的介紹可以查看ARM架構(gòu)基本寄存器。



IAR 篇


1.1 IAR安裝步驟


一、下載并解壓安裝包,并按步驟完成安裝




二、運(yùn)行安裝程序,點(diǎn)擊next



三、勾選accept,點(diǎn)擊next



四、選擇安裝路徑,點(diǎn)擊next



五、安裝驅(qū)動(dòng),為避免以后可能使用到其他下載器,默認(rèn)即可,會(huì)自動(dòng)安裝一些驅(qū)動(dòng)



六、直接選擇"NEXT"



七、點(diǎn)擊"install"



八、等待安裝完成,點(diǎn)擊"finish"完成安裝



九、安裝完會(huì)出現(xiàn)彈窗,是第7條選擇的驅(qū)動(dòng)的安裝,每個(gè)彈窗直接點(diǎn)擊"Install","close"即可,所有驅(qū)動(dòng)按照默認(rèn)安裝即可。




1.2 IAR 使用流程(以ACM32F4X0為例)


一、建立新工作區(qū)(File–>>NewWorkspace)



二、建立新項(xiàng)目(Project–>>CreateNew Project…)


選擇對(duì)應(yīng)的工程模板后點(diǎn)擊“OK”,之后將工程保存在對(duì)應(yīng)的文件夾。



三、添加文件組和源文件


通過(guò)Add Files可以添加自己編寫(xiě)好的源文件(.C)或者別的demo文件中的源文件,通過(guò)Add Group可以添加文件組,來(lái)給每個(gè)文件分組。



四、添加頭文件


點(diǎn)擊Project–>>Options,選擇C/C++Complier->>Preprocessor添加頭文件的路徑。



1.3 IAR編譯、下載、運(yùn)行


一、編譯


Compile:只對(duì)目前打開(kāi)的c文件進(jìn)行語(yǔ)法檢查,不對(duì)它進(jìn)行l(wèi)ink;Make:對(duì)工程所有打開(kāi)的c文件進(jìn)行語(yǔ)法檢查和link(只編譯有改動(dòng)的文件或者設(shè)置變動(dòng)的文件);Rebuild All:編譯鏈接當(dāng)前工程(不管文件或者設(shè)置是否有變動(dòng));


Clean:清除當(dāng)前工程的編譯狀態(tài);Batch?build:批量編譯,打開(kāi)Batch?build?批量編譯后,需要給批量編譯起個(gè)名字,然后將本工程中的三個(gè)分類(lèi)都添加到“Configurations?to?build”中,然后單擊“Make”?就可以對(duì)這工程中的三個(gè)分類(lèi)全部進(jìn)行編譯;



二、下載


下載程序需要先安裝調(diào)試文件(ACM32F4系列也需要安裝相應(yīng)的調(diào)試文件)




?  將 ACM32F4XX.ddf 放置于 IAR 的安裝目錄的\arm\config\debugger下



?  將其余 4 個(gè)文件放置于 IAR 的安裝目錄的\arm\config\flashloader下



在目錄中放置好后需要在IAR中配置調(diào)試文件




內(nèi)核選擇STAR,使用JLINK驅(qū)動(dòng)燒錄或者CMSIS DAP燒錄



使用JLINK燒錄,需要更改配置





上述設(shè)置完成好后點(diǎn)擊Download andDeBUG,燒錄成功



三、運(yùn)行


目前芯片不支持下載后自啟動(dòng),需要按下RESET鍵后,程序才能運(yùn)行,以GPIO口翻轉(zhuǎn)控制LED燈閃爍為例,部分示例代碼(完整代碼見(jiàn)附錄)和現(xiàn)象如下:





1.4 IAR Debug使用說(shuō)明


一、點(diǎn)擊白色按鍵或者通過(guò)Project->>Debugwithout Download進(jìn)入仿真調(diào)試界面



二、設(shè)置斷點(diǎn)



按F5 鍵或工具條上的Go 按鈕都可以讓程序執(zhí)行到斷點(diǎn)。DebugLog 窗口將顯示關(guān)于斷點(diǎn)的信息


三、查看變量( Watch 窗口)


打開(kāi)Live Watch 窗口的方法是選擇主菜單View →  Watch 命令。 Watch 窗口用于觀察靜止位置上的變量,如全局變量。點(diǎn)擊鼠標(biāo)右鍵選擇要查看的變量,點(diǎn)擊Add to Watch;變量的值在執(zhí)行時(shí)會(huì)變化并顯示出來(lái)。



四、監(jiān)視寄存器


選擇主菜單View > Register 打開(kāi)寄存器窗口,顯示的是CPU 寄存器??梢詮募拇嫫鞔翱谧笊戏降南吕藛沃羞x擇需要查看的任何寄存器組。



Keil+GCC


1.1 Keil安裝及使用


具體安裝及使用相關(guān)信息參照Keil篇,本篇不做具體贅述。


1.2 GNU編譯器集合 (GCC) 安裝步驟


ARM GCC編譯器下載地址https://developer.arm.com/downloads/-/gnu-rm



①使用安裝文件exe安裝時(shí),默認(rèn)安裝目錄為

C:\Program Files (x86)\GNU ArmEmbedded Toolchain\10 2021.10;


②使用壓縮包zip文件時(shí),將文件放入C:\Keil_v5\ARM文件夾內(nèi)解壓,安裝目錄為C:\Keil_v5\ARM\gcc-arm-none-eabi-10.3-2021.10



安裝目錄后續(xù)配置Keil時(shí)使用


1.3 Keil + GCC相關(guān)配置


①打開(kāi)Keil后,點(diǎn)擊圖示按鈕Manager Project Items



②在彈出界面中,F(xiàn)older/Extensions選項(xiàng)中選擇Use GCC Compiler (GNU) for ARMprojects,F(xiàn)older填入GCC安裝目錄。



③點(diǎn)擊圖示按鈕Configure target options



④在彈出界面中,Output選項(xiàng)中,如果選擇Creat Executable,則需要在Linker中配置腳本文件,如果選擇Creat Library則不需要在Linker中配置腳本文件。




⑤配置CC選項(xiàng),Include Paths添加CMSIS、Device、HAL庫(kù)等相關(guān)路徑


MiscControls中


F4系列添加-mcpu=cortex-m33 -mthumb -ffunction-sections -fdata-sections-mfpu=fpv5-sp-d16 -mfloat-abi=hard,其中-mfpu=fpv5-sp-d16 -mfloat-abi=hard為浮點(diǎn)數(shù)運(yùn)算配置,如不需要可刪除。



⑥配置Assmbler選項(xiàng),Misc Controls F4系列添加-mcpu=cortex-m33 -mthumb。



⑦配置Linker選項(xiàng),如步驟④中所述,僅在選擇Creat Executable時(shí)需要在Linker Script File中配置腳本文件,建議腳本文件包含在項(xiàng)目工程根目錄中。


MiscControls添加-Wl,–gc-sections ,如需使用封裝庫(kù)增加<-l庫(kù)名>來(lái)鏈接封裝庫(kù)。



⑧項(xiàng)目創(chuàng)建或移植時(shí),CMSIS添加cmsis_gcc.h文件,Device更新GCC專(zhuān)用的.S啟動(dòng)文件

(Startup_ACM32F4xx_gcc.S)



1.4 Keil + GCC調(diào)試使用說(shuō)明


調(diào)試過(guò)程參照Keil篇,需要注意的是使用GCC編譯器時(shí),在Keil環(huán)境下無(wú)法進(jìn)行跳轉(zhuǎn)(快捷鍵F12)功能。

常見(jiàn)錯(cuò)誤和注意事項(xiàng)


一、在 GCC環(huán)境下,printf重定向問(wèn)題


在Keil中的C庫(kù)中,printf、scanf等輸入輸出流函數(shù)是通過(guò)fputc、fgetc來(lái)實(shí)現(xiàn)最底層操作的,所以我們只需要在我們的工程中重定義這兩個(gè)函數(shù)的功能就可以實(shí)現(xiàn)printf、scanf等流函數(shù)的重映射。與keil C庫(kù)類(lèi)似GNU C庫(kù)下的流函數(shù)底層是通過(guò)_read、_write函數(shù)實(shí)現(xiàn)的,我們只要在工程中將他們重新定義就可以實(shí)現(xiàn)重映射的功能了。


C++
#ifdef __GNUC__  
int __io_putchar(int ch)  
 {  
   Uart_Debug->DR = ch;
   while  ((Uart_Debug->FR & UART_FR_BUSY));  
   return ch;  
 }  
int _write(int fd, char* buffer, int  size)  
 {  
   for(int  i = 0;i<size;i++)  
   {  
       __io_putchar(*buffer++);  
   }  
   return  size;  
 }  
#else  
int fputc(int ch, FILE *f)  
 {  
   if  (Uart_Debug == NULL)  
   {  
       return 0;  
   }  
   Uart_Debug->DR = ch;  
   while  ((Uart_Debug->FR & UART_FR_BUSY));  
   return ch;  
 }  
#endif

Eclipse+GCC


1.1 Eclipse安裝


①Eclipse下載地址https://www.eclipse.org/downloads/ 整體安裝過(guò)程需聯(lián)網(wǎng)進(jìn)行。


②下載完成后雙擊打開(kāi),界面如下圖所示,點(diǎn)擊紅色框標(biāo)記的選項(xiàng)。



③點(diǎn)擊后出現(xiàn)下圖設(shè)定界面,兩個(gè)設(shè)定項(xiàng)目分別是JRE的版本與安裝的位置,可自行選定。



④點(diǎn)擊安裝后,開(kāi)始進(jìn)入到下載流程,此時(shí)需全程聯(lián)網(wǎng)進(jìn)行。



⑤安裝完成后,點(diǎn)擊LAUNCH啟動(dòng)eclipse,開(kāi)始插件安裝。