Keil 篇
1.1 Keil安裝步驟
安裝包鏈接: (keil推薦在MDK5.31(含)以上(shang))。
一、下載并(bing)解壓安(an)裝包,并(bing)按步驟完成安(an)裝
二、運行安裝程序,點擊next
三、勾選(xuan)accept,點擊(ji)next
四、選(xuan)(xuan)擇安裝路徑,點擊(ji)next(最好選(xuan)(xuan)擇默認路徑,如果(guo)自行修改需要注意不要添加中(zhong)文(wen))
注意事(shi)項:
? 安裝路徑不能有中文
? 安(an)裝(zhuang)目錄不能和Keil4以及KeilC51重合
五、信息(xi)隨意填寫(xie),點擊next
六、等待安裝
七、點擊finish,完(wan)成(cheng)安裝
八、突(tu)然(ran)會彈出(chu)“Pack installer”頁面,先(xian)后關閉兩個窗(chuang)口
1.2 Keil使用流(liu)程(cheng)(以ACM32F4X0系(xi)列為例)
一、安裝(zhuang)航芯的芯片包(bao)
二、創(chuang)建(jian)一個新的文(wen)(wen)件夾(jia)temp,放入(ru)航芯提(ti)供的Core_Drivers文(wen)(wen)件(F4對應需要(yao)F4的Core_Drivers文(wen)(wen)件),同時在里面創(chuang)建(jian)一個新的文(wen)(wen)件夾(jia)user。
三、打開(kai)keil,建立一個新的(de)工程
四、安(an)裝(zhuang)(zhuang)好(hao)了航芯(xin)的(de)芯(xin)片(pian)包后,可以選擇(ze)對應的(de)設備號(hao)(沒(mei)有找到對應的(de)設備號(hao)可能是芯(xin)片(pian)包未安(an)裝(zhuang)(zhuang)好(hao))
五、添加頭文(wen)件(jian)(.h文(wen)件(jian))
六(liu)、添(tian)加(jia)源(yuan)文件(jian)(.C文件(jian))
第一步打開空(kong)白頁(ye),編寫程序(xu)(可以使用航芯提(ti)供的(de)demo程序(xu)或者自己編寫的(de)程序(xu))后,第二步保存到對應(ying)的(de)工(gong)程文件夾。
1.3 keil編譯、下載、運行
一、工程(cheng)編譯(yi)
二、下載程序(xu)(ACM32F4XX 系列支(zhi)持的在(zai)(zai)線仿真器(qi)包括: J-Link-V9(含)以上、 U-Link2、 CMSIS-DAP等,使(shi)用 J-Link 在(zai)(zai)線調試時, Keil 推薦在(zai)(zai) MDK5.31(含)以上, J-Link 驅動建議在(zai)(zai) V6.70e(含)以上)
航芯的(de)core開發板是(shi)帶(dai)有DAP連(lian)接(jie)的(de),所以(yi)可(ke)以(yi)直(zhi)接(jie)選(xuan)擇CMSIS-DAPDebugger,通(tong)過Settings查看是(shi)否(fou)正常(chang)連(lian)接(jie)。如(ru)果需要使(shi)用(yong)Jlink方式連(lian)接(jie),可(ke)以(yi)參考《航芯通(tong)用(yong)MCU使(shi)用(yong)JFlash燒錄程序(xu)的(de)方法說明(ming).pdf》。
三(san)、運行(xing)(目(mu)前芯片不支(zhi)持下載(zai)后(hou)自啟(qi)動,需要按(an)下RESET鍵后(hou),程序才能運行(xing)),以GPIO口翻(fan)轉控制LED燈(deng)閃爍為例,部(bu)分示例代(dai)碼(完整代(dai)碼見附錄(lu))和現象(xiang)如下:
1.4 Keil Debug使用說明
一(yi)、進入調試界面
二、調試工具欄介紹
斷點(dian)是(shi)調(diao)試(shi)器的功(gong)能(neng)之一(yi),可(ke)以讓程序停(ting)(ting)止在(zai)設置斷點(dian)的語句。在(zai)調(diao)試(shi)過程中,可(ke)在(zai)程序的某一(yi)處設置斷點(dian)再點(dian)擊Run運(yun)行(xing),此時(shi)當程序運(yun)行(xing)至(zhi)該位置時(shi)自(zi)動停(ting)(ting)止。
三(san)、調試窗口(kou)介紹(shao)
1. 查看外設(she)寄(ji)(ji)存器的值,參考《航芯ACM32F0X0_FP0X_用戶手(shou)冊(ce)_V1.6.pdf》查看各(ge)個外設(she)寄(ji)(ji)存器的功(gong)能。
2. 選中(zhong)需要查(cha)看的(de)參(can)數,單擊(ji)鼠標右鍵,可(ke)以(yi)將(jiang)參(can)數放入(ru)觀察(cha)窗口,實(shi)時查(cha)看參(can)數的(de)變化。
3. 內核寄(ji)存(cun)器組
寄(ji)存器(qi)窗口(kou),如(ru)下圖所(suo)示(shi),該(gai)窗口(kou)用于(yu)顯示(shi)R0~R15、xPSR等內(nei)核寄(ji)存器(qi)的值(不是外(wai)設寄(ji)存器(qi)),關于(yu)內(nei)核寄(ji)存器(qi)的介紹可以查看(kan)。
IAR 篇(pian)
1.1 IAR安(an)裝步驟
一、下載并(bing)解壓安裝(zhuang)包,并(bing)按(an)步驟完(wan)成安裝(zhuang)
二、運行安裝程(cheng)序(xu),點擊(ji)next
三、勾選accept,點(dian)擊(ji)next
四(si)、選(xuan)擇安裝路(lu)徑,點(dian)擊next
五、安裝驅(qu)動,為避免以(yi)后可(ke)(ke)能使用到其他(ta)下(xia)載器,默認即可(ke)(ke),會自動安裝一些驅(qu)動
六(liu)、直(zhi)接選擇"NEXT"
七(qi)、點擊(ji)"install"
八、等待安裝(zhuang)完成(cheng)(cheng),點擊"finish"完成(cheng)(cheng)安裝(zhuang)
九、安(an)裝完會出現彈窗,是第7條選擇(ze)的驅動的安(an)裝,每個彈窗直接點擊"Install","close"即(ji)可,所(suo)有驅動按照默(mo)認安(an)裝即(ji)可。
1.2 IAR 使(shi)用流程(以ACM32F4X0為例)
一(yi)、建立新工作(zuo)區(File–>>NewWorkspace)
二、建立新項目(Project–>>CreateNew Project…)
選擇對應的(de)工程模板后(hou)點(dian)擊“OK”,之后(hou)將工程保(bao)存在對應的(de)文件夾。
三、添加文(wen)件(jian)組和(he)源文(wen)件(jian)
通過(guo)Add Files可(ke)以添(tian)加(jia)自己編寫好(hao)的源(yuan)文(wen)件(jian)(.C)或者(zhe)別的demo文(wen)件(jian)中的源(yuan)文(wen)件(jian),通過(guo)Add Group可(ke)以添(tian)加(jia)文(wen)件(jian)組(zu),來給每個文(wen)件(jian)分組(zu)。
四、添加頭文件(jian)
點擊Project–>>Options,選擇C/C++Complier->>Preprocessor添加頭文件的路(lu)徑。
1.3 IAR編譯、下載、運行(xing)
一、編譯(yi)
Compile:只(zhi)對目前打開的c文(wen)(wen)件進(jin)(jin)行(xing)語(yu)法(fa)檢查(cha),不對它進(jin)(jin)行(xing)link;Make:對工(gong)程(cheng)所(suo)有打開的c文(wen)(wen)件進(jin)(jin)行(xing)語(yu)法(fa)檢查(cha)和link(只(zhi)編譯有改動的文(wen)(wen)件或者設置(zhi)變動的文(wen)(wen)件);Rebuild All:編譯鏈接(jie)當前工(gong)程(cheng)(不管文(wen)(wen)件或者設置(zhi)是否有變動);
Clean:清除當(dang)前工(gong)程的編(bian)譯(yi)(yi)狀態;Batch?build:批量編(bian)譯(yi)(yi),打開Batch?build?批量編(bian)譯(yi)(yi)后(hou),需要給批量編(bian)譯(yi)(yi)起個(ge)名(ming)字(zi),然后(hou)將本工(gong)程中(zhong)(zhong)的三(san)個(ge)分類(lei)都添加到“Configurations?to?build”中(zhong)(zhong),然后(hou)單擊“Make”?就(jiu)可以(yi)對(dui)這工(gong)程中(zhong)(zhong)的三(san)個(ge)分類(lei)全部進行編(bian)譯(yi)(yi);
二、下載
下(xia)載程(cheng)序需要先安(an)裝調(diao)試文(wen)件(ACM32F4系列也需要安(an)裝相應(ying)的調(diao)試文(wen)件)
? 將(jiang) ACM32F4XX.ddf 放(fang)置(zhi)于(yu) IAR 的安裝目錄的\arm\config\debugger下(xia)
? 將其余(yu) 4 個文件放(fang)置于 IAR 的安裝目錄(lu)的\arm\config\flashloader下(xia)
在目錄(lu)中放置(zhi)好后需要(yao)在IAR中配置(zhi)調試文(wen)件(jian)
內核選擇STAR,使用JLINK驅動燒(shao)錄(lu)或者CMSIS DAP燒(shao)錄(lu)
使用JLINK燒錄(lu),需要更改配置
上述設置完成好(hao)后點擊Download andDeBUG,燒(shao)錄成功
三、運(yun)行
目(mu)前芯片不支(zhi)持下(xia)載(zai)后(hou)自啟動,需要按下(xia)RESET鍵后(hou),程(cheng)序(xu)才能運行(xing),以GPIO口翻轉控制LED燈閃(shan)爍為例,部分示(shi)例代(dai)碼(完整代(dai)碼見附(fu)錄)和(he)現(xian)象如下(xia):
1.4 IAR Debug使用(yong)說明
一、點(dian)擊白色按鍵(jian)或者通(tong)過Project->>Debugwithout Download進入仿真調試界面
二(er)、設置斷點
按F5 鍵(jian)或(huo)工具條上(shang)的(de)(de)Go 按鈕(niu)都(dou)可以(yi)讓(rang)程序(xu)執行到(dao)斷點。DebugLog 窗口將顯示(shi)關于斷點的(de)(de)信息(xi)
三、查看(kan)變量( Watch 窗口)
打(da)開(kai)Live Watch 窗(chuang)口的方法是選(xuan)擇(ze)主菜(cai)單View → Watch 命令。 Watch 窗(chuang)口用于觀察靜(jing)止位置上的變(bian)量,如全局變(bian)量。點(dian)擊鼠標右鍵選(xuan)擇(ze)要查看的變(bian)量,點(dian)擊Add to Watch;變(bian)量的值在(zai)執行時會(hui)變(bian)化并顯示出來。
四(si)、監視寄存器
選擇主菜單(dan)View > Register 打開寄存器窗口,顯(xian)示(shi)的(de)是(shi)CPU 寄存器。可(ke)以從(cong)寄存器窗口左上方的(de)下(xia)拉菜單(dan)中選擇需(xu)要查(cha)看(kan)的(de)任何寄存器組(zu)。
Keil+GCC
1.1 Keil安裝及使用
具體安裝及使用相關(guan)信息參照,本篇(pian)不(bu)做具體贅述。
1.2 GNU編譯(yi)器集合 (GCC) 安裝步驟
ARM GCC編譯器下(xia)載(zai)地址
①使(shi)用安裝(zhuang)文件exe安裝(zhuang)時(shi),默認安裝(zhuang)目錄為(wei)
C:\Program Files (x86)\GNU ArmEmbedded Toolchain\10 2021.10;
②使用壓(ya)(ya)縮包zip文(wen)件(jian)(jian)時(shi),將(jiang)文(wen)件(jian)(jian)放入C:\Keil_v5\ARM文(wen)件(jian)(jian)夾(jia)內解壓(ya)(ya),安裝目錄為(wei)C:\Keil_v5\ARM\gcc-arm-none-eabi-10.3-2021.10
安(an)裝目錄后續配置(zhi)Keil時使用
1.3 Keil + GCC相(xiang)關配置
①打(da)開Keil后,點擊(ji)圖示按鈕Manager Project Items
②在(zai)彈出界面中,Folder/Extensions選項(xiang)中選擇Use GCC Compiler (GNU) for ARMprojects,Folder填入GCC安(an)裝目錄。
③點擊圖示按(an)鈕(niu)Configure target options
④在彈出界面(mian)中(zhong),Output選項中(zhong),如(ru)果選擇Creat Executable,則需(xu)(xu)要(yao)在Linker中(zhong)配置(zhi)腳本文(wen)(wen)件(jian),如(ru)果選擇Creat Library則不需(xu)(xu)要(yao)在Linker中(zhong)配置(zhi)腳本文(wen)(wen)件(jian)。
⑤配置(zhi)CC選項,Include Paths添加CMSIS、Device、HAL庫等(deng)相關路(lu)徑
MiscControls中
F4系列添加(jia)-mcpu=cortex-m33 -mthumb -ffunction-sections -fdata-sections-mfpu=fpv5-sp-d16 -mfloat-abi=hard,其中-mfpu=fpv5-sp-d16 -mfloat-abi=hard為(wei)浮點(dian)數運(yun)算配置,如不(bu)需要(yao)可(ke)刪除。
⑥配置Assmbler選項,Misc Controls F4系列(lie)添加(jia)-mcpu=cortex-m33 -mthumb。
⑦配(pei)置Linker選項,如步(bu)驟④中所述,僅(jin)在選擇(ze)Creat Executable時需要在Linker Script File中配(pei)置腳本文件,建議(yi)腳本文件包含在項目(mu)(mu)工程(cheng)根目(mu)(mu)錄(lu)中。
MiscControls添加-Wl,–gc-sections ,如需使用封裝(zhuang)庫(ku)增加<-l庫(ku)名(ming)>來鏈接封裝(zhuang)庫(ku)。
⑧項目創建或(huo)移植時(shi),CMSIS添加(jia)cmsis_gcc.h文件(jian),Device更新GCC專用的(de).S啟動文件(jian)
(Startup_ACM32F4xx_gcc.S)
1.4 Keil + GCC調試使(shi)用說(shuo)明
調試過程參照,需(xu)要注意的是使(shi)用GCC編譯器時,在Keil環境下無法進(jin)行跳轉(快(kuai)捷鍵F12)功能。
常見錯誤(wu)和注意事項
一、在 GCC環境下,printf重定向問題(ti)
在(zai)(zai)Keil中的C庫中,printf、scanf等輸入(ru)輸出流函(han)(han)數是通(tong)過fputc、fgetc來實(shi)現(xian)(xian)(xian)最(zui)底(di)層操作的,所以(yi)我們(men)(men)只需要在(zai)(zai)我們(men)(men)的工(gong)程(cheng)中重(zhong)(zhong)定義這兩(liang)個函(han)(han)數的功能就可(ke)(ke)以(yi)實(shi)現(xian)(xian)(xian)printf、scanf等流函(han)(han)數的重(zhong)(zhong)映(ying)射(she)。與keil C庫類似GNU C庫下的流函(han)(han)數底(di)層是通(tong)過_read、_write函(han)(han)數實(shi)現(xian)(xian)(xian)的,我們(men)(men)只要在(zai)(zai)工(gong)程(cheng)中將他們(men)(men)重(zhong)(zhong)新定義就可(ke)(ke)以(yi)實(shi)現(xian)(xian)(xian)重(zhong)(zhong)映(ying)射(she)的功能了。
C++ |
Eclipse+GCC
1.1 Eclipse安裝
①Eclipse下載地址//www.eclipse.org/downloads/ 整體安(an)裝過(guo)程需聯網進行。
②下(xia)載完成后雙擊打(da)開,界面如下(xia)圖所示,點擊紅(hong)色框標記的選項。
③點(dian)擊后出現下圖設定界面,兩個設定項目分別(bie)是(shi)JRE的版本與安裝的位置,可自行(xing)選定。
④點(dian)擊安裝(zhuang)后,開(kai)始進入到(dao)下載流程,此時需全程聯網進行。
⑤安(an)裝完成后,點(dian)擊LAUNCH啟動eclipse,開(kai)始插件安(an)裝。