一、為何要自己手動搭建一個軟件工程?
(1)在Keil MDK的開發(fā)環(huán)境下:工程師都會找一個模板,這個模板可能是在某一家開發(fā)板廠家提供的一個例程的基礎(chǔ)上進(jìn)行修改;也可能是這個工程師通過多年的開發(fā)經(jīng)驗有自己的一套工程模板。
(2)第一種情況下可能占據(jù)比例會更多一些,第二種情況是有經(jīng)驗的工程師自己通過多年的經(jīng)驗和能力來構(gòu)建工程。個人觀點:不管從哪看到模板,不管用誰的模板,在自己經(jīng)驗和能力到達(dá)一定的水平后自己創(chuàng)建一個適合自己的模板。這樣的好處就是在單片機(jī)+MDK這個開發(fā)平臺下可以掌握全局,任意修改,整體的軟件架構(gòu)根據(jù)自己的喜好能隨意修改,優(yōu)化,做到隨心所欲。
二、在Keil5+STM32F429**平臺下的軟件工程搭建
(1)在PC端造一個位置,創(chuàng)建一個文件夾,文件夾名字叫"02.MDK5+STM32F429"
(2)打開文件夾,創(chuàng)建5個子文件夾
備注:這樣我們就把基礎(chǔ)的文件夾全部創(chuàng)建好了,這樣做的原因是什么?分層。創(chuàng)建一個軟件工程在分層的架構(gòu)下才能在后續(xù)的開發(fā)中縷清思路,不會因增加一些功能而每次軟件架構(gòu)都在不停的變動,開發(fā)效率降低。
三、打開Keil MDK5軟件創(chuàng)建一個新工程
(1)在如下步驟中找到創(chuàng)建工程窗口
(2)選擇存儲創(chuàng)建工程的路徑,D:\Personal\Embedded\02.STM32\02.個人開發(fā)\STM32F429xx\Example\02.MDK5+STM32F429\Project。這個是我自己創(chuàng)建的工程路徑,這個路徑的最后一級是上一步創(chuàng)建的Project文件夾,工程名叫Demo,這個名字根據(jù)自己的習(xí)慣來命名。
(3)點擊保存,然后出現(xiàn)如下界面,這個界面是進(jìn)行芯片的選型的,這次例程使用的是STM32F429ZITx這個Cortex-M4內(nèi)核芯片,144pin,256K RAM,2M Flash。根據(jù)自己使用的型號選擇后點擊OK。
(4)出現(xiàn)如下界面,我們不做選擇,直接點擊Cancel,這個界面是添加一些組件,這些組件我們暫時不需要,根據(jù)自己后面的實際項目需求來選擇。
(5)創(chuàng)建完成后,出現(xiàn)如下基礎(chǔ)工程,當(dāng)然這個工程只是我們創(chuàng)建的第一步,后續(xù)還要添加很多文件來完善。
在Project文件夾下有我們創(chuàng)建成功的工程
四、在各個文件夾下添加所需文件
(1)這些文件我們在哪里查找?首先要在MDK安裝目錄下有自己對應(yīng)的xxx_DFP包,為什么需要這個xxx_DFP包?這個包里包含STM32F4xx系列新品的啟動文件,配置文件,HAL庫,ST官方提供的開發(fā)板的相關(guān)Demo例程。這個包是ST官方提供的,可以在ST官網(wǎng)上下載,當(dāng)然也可以在MDK5軟件下進(jìn)行下載 。MD5軟件下載xxx_DFP包方法如下:@1.打開MDK5軟件,將紅圈這個圖標(biāo)打開,這個圖標(biāo)的英文名是"packet installer"
@2.在安裝界面找到ST公司系列新品,F(xiàn)4系列處理器任意點擊,然后右側(cè)會有提示安裝xxx_DFP安裝包,點擊install,安裝。這個過程比較漫長。因為這個包在ST的境外服務(wù)器放置,所以下載過程中會有不穩(wěn)定斷開情況,如果斷開后點擊關(guān)閉重復(fù)上述操作,會在上次的斷點處開始下載,不影響包的質(zhì)量,下圖這個提示是我已經(jīng)安裝過了,有updata,但updata是灰色的,表示沒有包的更新
@3.這個包下載完成后,下載到哪個位置了?下載到你的MDK5的安裝目錄下的某一個路徑了,我們要尋找這個包可以按照以下路徑來尋找。C:\Personal\install\Work Software\MDK-526\ARM\PACK\Keil。任何一個使用者按照上述步驟操作,都會在相似的目錄下找到這個包,紅色圈圈圈住的這個包就是下載好的,當(dāng)然下載好后會自動解壓,接下來我們就需要這個DFP包下的一些重要文件來拷貝到我們新建的工程下。
(2)在創(chuàng)建的工程的Libraries文件夾下再創(chuàng)建3個文件夾
(3)在Startup下放置一些啟動文件@1.第一個文件是:startup_stm32f429xx.s文件,將這個文件拷貝到Startup文件下。
@2.其他文件分別是:core_cm4.h, core_cmFunc.h, core_cmInstr.h,core_cmSimd.h拷貝到Startup文件下
@3.這個文件下最終文件如下
(4)在HALlib文件夾下放置HAL庫文件
@1.將Inc和Src文件拷貝到HALlib文件夾下,這兩個文件就是HAL庫,里面全都是API接口函數(shù)
(5)在SysF4xxInc下面放置一些F4相關(guān)配置文件
@1.將stm32f4xx.h和stm32f429xx.h文件這兩個文件拷貝到SysF4xxInc文件夾下,如下圖所示:
(6)在App文件夾下創(chuàng)建一個文件夾,在這個文件夾下放置一些,用戶需要配置+中斷函數(shù)文件+HAL庫底層硬件驅(qū)動接口文件等
@1.創(chuàng)建SysLibraryConfig文件
@2.在這個SysLibraryConfig文件夾下添加相關(guān)文件:system_stm32f4xx.h
@3.把main.h,stm32f4xx_hal_conf.h,stm32f4xx_it.h 這3個文件拷貝到SysLibraryConfig文件夾下
@4.將stm32f4xx_hal_msp.c,stm32f4xx_it.h,system_stm32f4xx.h 3個文件拷貝到SysLibraryConfig文件夾下,將main.c文件拷貝當(dāng)App文件夾下
@5.拷貝完成后App文件夾下如下所示
備注:到這一步已經(jīng)將所有的文件在工程文件夾下全部添加完成了,接下來需要做的事情是在MDK工程里添加各種文件以及文件路徑,進(jìn)行環(huán)境配置
五、在MDK工程下添加文件
(1)點擊圖標(biāo)進(jìn)入配置界面
(2)在配置界面下創(chuàng)建這幾個文件路徑
@1.Startup組放置啟動文件,點擊Add Files,進(jìn)入啟動文件路徑選擇界面,在/Libraries/Startup文件下將啟動文件全部添加進(jìn)去,點擊Add添加,添加完成后close退出
@2.根據(jù)@1的步驟在Libraries組下點擊Add Files,將Libraries/HALlib/Src路徑下的.c文件全部添加進(jìn)去,這個就是HAL庫文件,后續(xù)的外設(shè)開發(fā)API接口幾乎都是調(diào)用這個文件夾下的
@3.和@2操作類似,SysF4xxInc組下將Libraries/HALlib/SysF4xxInc的全部文件添加進(jìn)去
@4.在App組下main.c添加進(jìn)去
@5.在SysLibraryConfig組下將App/SysLibraryConfig文件添加進(jìn)去,這個可以只添加.c文件
@6.將ReadMe組下添加/ReadMe/ReadMe.txt添加進(jìn)去
@7.到了這一步后所有的文件都添加進(jìn)去了,接下來需要做的是添加文件路徑了
六、在MDK下添加路路徑
(1)點擊魔術(shù)棒進(jìn)入如下界面,第1步:點擊C/C++;第2步:點擊“紅圈圈3”那個位置“include paths”添加路徑,第3步:點擊“紅圈圈4”進(jìn)行路徑添加
(2)除了這個工程下的Project路徑無需添加之外,其他所有文件的路徑必須全部添加進(jìn)去,否則可能會出現(xiàn)編譯時文件無法找到路徑現(xiàn)象,最終路徑添加結(jié)果如下,點擊OK確定就可以,點擊完成后表示路徑添加完成了
(3)在define那一欄需要添加全局宏定義,USE_HAL_DRIVER,STM32F429xx,否則編譯時會報錯
(4)編譯文件輸出路徑選擇
Output選首先勾選Create HEX File,表示編譯生成可執(zhí)行文件,點擊Select Dolder For Object,在Projecet文件下 點擊“新建文件夾”圖標(biāo),創(chuàng)建Output文件,這樣輸出文件就在Output文件夾里面了
(5)到了這一步,離成功差90%了,千萬別放棄,接線來就是進(jìn)行對工程編譯,工程如何編譯就不詳細(xì)說了,下面只呈現(xiàn)結(jié)果
編譯完成后提示2個警告,2個錯誤,先看看錯誤是什么原因:HAL_MspDeInit函數(shù)和HAL_MspInit函數(shù)在stm32f4xx_hal_msp.c和stm32f4xx_hal_msp_template.c 2個源文件下重復(fù)定義,我們將stm32f4xx_hal_msp_template.c這個.c文件在Libraries添加路徑下移除掉移除方法如下:
找到后點擊紅圈圈里的圖標(biāo),這樣整個工程里就不包含stm32f4xx_hal_msp_template.c文件了
(6)移除完成后再次編譯,顯示編譯2警告,0錯誤
這個警告的意思是__packed在這個地方無法用到,這個可能是一些參數(shù)配置的問題,此處我們不做詳細(xì)分析,后續(xù)會進(jìn)行詳細(xì)分析如何消除這個警告
-
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
355980 -
HAL
+關(guān)注
關(guān)注
2文章
70瀏覽量
12613 -
Keil MDK
+關(guān)注
關(guān)注
0文章
60瀏覽量
4368
發(fā)布評論請先 登錄
相關(guān)推薦
評論