Day03:keil4 新建工程



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.此時編譯就不會有錯誤訊息啦~

留言