1.開啟keil4,選Project/New uVision Project... ,選擇儲存路徑template/MDK-ARM
輸入喜歡的工程名稱,存檔(S)
2.選擇晶片型號STM32F407VG
3.不摳逼startup_stm32f40_41xxx.s到工程資料夾
4.點選[魔術棒]按鈕,彈出視窗
5.選擇[Output]項目,將Objects資料夾指向template\MDK-ARM\Objects資料夾,產生HEX檔案
6.選擇Listing項目,將Listings資料夾指向template\MDK-ARM\Listings資料夾
7.選擇C/C++項目,在Define欄位中輸入USE_STDPERIPH_DRIVER,如此stm32f4xx.h才會include stm32f4xx_conf.h,等等編譯時才不會出錯
所有警告都停止
新增標頭檔路徑
8.選擇Debug項目,使用stm32f407g-disc1內建的ST-Link Debugger,按OK離開
9.點選[魔術方塊]按鈕,彈出視窗
如同Day02我們建立多個資料夾,這裡也是
在USER項目裡加入template\User下所有檔案
在CMSIS項目裡要加入二個地方
template\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm下的startup_stm32f40_41xxx.s檔案
template\CMSIS\Include下的core_cm4.h和core_cmSimd.h檔案
在FATFS項目裡要加入template\FAT_FS\src下的diskio.c和ff.c檔案
在RTOS項目裡要加入三個地方
template\RTOS下*.c檔案
template\RTOS\portable\RVDS\ARM_CM4F下port.c檔案
template\RTOS\portable\MemMang下的heap_4.c檔案
在STDPER項目裡要加入template\STM32F4xx_StdPeriph_Driver\src下所有*.c檔案
10.點選OK離開,按F7執行編譯出現下列錯誤訊息
打開template\User\stm32f4xx.it檔案,因為有三個函數跟port.c重覆定義了,把它們註解掉就不會出現錯誤訊息
11.編譯時出現SystemCoreClock會沒有定義的錯誤訊息
打開template\RTOS\include\FreeRTOSConfig.h檔案,因為條件編譯的關係SystemCoreClock會沒有定義,把條件編譯註解掉就行了
另外這四個參數沒有定義的錯誤訊息
一樣在FreeRTOSConfig.h檔案裡把下面四個參數改為0
12.編譯時出現一堆diskio.c裡面declared implicitly
打開template\FAT_FS\src\diskio.c檔案,把result變數相關程式碼註解掉即可
13.編譯時出現少了get_fattime函數訊息
很簡單在diskio.c最下面加上get_fattime函數即可
14.此時編譯就不會有錯誤訊息啦~
留言
張貼留言