(三)復制相關文件
(1)繼上次的代碼生成后會顯示如下的圖
點擊第一個,打開文件夾如下
(2)新建文件夾UCOSIII
在UCOSIII文件夾下,新建如下的文件夾
(3)將uc/os源文件中 Micrium_STM3240G-EVAL_OS3\Micrium\Examples\ST\STM3240G-EVAL\OS3中文件復制到APP文件夾,共11個文件,該文件夾存放的是應用程序文件和配置文件,如圖
(4)Micrium_STM3240G-EVAL_OS3\Micrium\Examples\ST\STM3240G-EVAL\BSP的部分文件復制到BSP,這個文件是板載文件,存放的是板級支持包的文件夾。
(5)將Micrium_STM3240G-EVAL_OS3\Micrium\Software\uC-CPU的全部文件復制到uC-CPU,依次將剩下的UC-LIB、uCOS-III、uC-Serial中的全部文件分別復制到相應文件夾,只放第一張圖,剩下圖片就不放了。存放的都是底層的庫文件。
(6)復制完之后打開工程.project。
打開后的文件列表如下
(四)修改系統文件
(1)在菜單欄中點擊“項目”——“屬性”,找到下圖,這是用來添加包含文件的路徑。
(2)點擊Add Folder添加UCOSIII文件夾
(3)再切換到Include界面
將路徑添加進去,分別是:
UCOSIII/APP
UCOSIII/BSP
UCOSIII/BSP/CMSIS
UCOSIII/BSP/OS/uCOS-III
UCOSIII/uC-CPU
UCOSIII/uC-CPU/ARM-Cortex-M4/GNU
UCOSIII/uC-LIB
UCOSIII/uC-LIB/Ports/ARM-Cortex-M4/GNU
UCOSIII/uCOS-III/Ports/ARM-Cortex-M4/Generic/GNU
UCOSIII/uCOS-III/Source
UCOSIII/uC-Serial/Driver/ST
UCOSIII/uC-Serial/Line
UCOSIII/uC-Serial/OS
UCOSIII/uC-Serial/OS/uCOS-III
UCOSIII/uC-Serial/Source
如圖所示,添加完之后,點擊“確定” “是”。
(4)打開app.c文件,然后點擊左上角,新建app.c的頭文件,因為app.c文件為uc/os的main()函數文件,現在要將其改成一個API接口文件,將app.c文件中int main(void)改為int app(void),再在芯片的底層文件夾中的main.c里引用app()函數。具體操作如下:
點擊“完成”然后叉掉,打開app.h,編輯如下
這樣就改好了app.c,再在main.c里包含app.h文件
最后將app()函數放在“/USER CODE BEGIN 2/”和“/USUR CODE END 2/”之間。注意:app()函數只建議放在該處,其他的應用開發函數都會放在app()函數里或者放在之前的類似“/USER CODE BEGIN 2/”和“/USUR CODE END 2/”的區域里,反正不能放在app()函數之后,因為代碼不會跳轉到app()函數后的代碼。
(5)將三個文件夾里的IAR、RealView都右鍵刪掉,只留下GUN
(6)打開startup.s文件,將startup.s的全部內容替換掉startup文件夾中的startup_stm32f407xx.s的全部內容,然后右鍵刪掉第一個startup.s,這是用uC/os源碼里的啟動文件里的代碼替換掉底層代碼生成的啟動文件代碼,但是不能直接用文件替換,得用復制粘貼內容,不然startup_stm32f407xx.s文件會再次生成。
(7)最后在刪除這個system_stm32f4xx.c文件,解決時鍾沖突的問題。
點擊小錘子編譯,就沒問題了。
本篇移植到此結束,下一篇用led的任務試驗該移植是否成功移植。