移植 uC/OS-III 到 STM32
首先,打開 Micrium 公司官方網站(http://micrium.com/),點擊“Downloads”選項卡進入下載頁面,在“Brouse by MCU Manufacturer”欄目展開“STMicroelectronics”,單擊“Viewall STMicroelectronics”。
由于在“Projects”欄目中選擇一個基于 Keil MDK 平臺在 cortex-M3 內核 MCU 評估板上測試的μC/OS-Ⅲ源碼,單擊即可。
?
頁面跳轉后,點擊“Download”按鈕即可下載,下載前要登錄該網站,未賬戶的注冊后登錄。
https://pan.baidu.com/s/1BEOTPg1BBHCncOJAmDYgrA? ?我自己上傳到百度網盤的
選擇一個STM32 開發板可用的裸機例程作為程序模板,這里準備了一個簡單的“LED 流水燈”例程,
https://pan.baidu.com/s/1hRXh-OGDUXWy80k0MC8MOA
?
在該例程的“User”文件夾下建立下面幾個文件夾
拷貝下圖路徑下μC/OS-Ⅲ源碼文件到“APP”文件夾下。
拷貝下圖路徑下μC/OS-Ⅲ源碼文件到“BSP”文件夾下
拷貝下圖路徑下μC/OS-Ⅲ源碼文件到“uC-CPU”文件夾下。
拷貝下圖路徑下μC/OS-Ⅲ源碼文件到“uC-LIB”文件夾下。
拷貝下圖路徑下μC/OS-Ⅲ源碼文件到“uCOS-III”文件夾下。
將“User”文件夾下的“led”文件夾剪切到“BSP”文件夾里面,并且刪除“main.c”文件。
打開工程,首先移除廢棄的文件。
給工程增加下面的組件。
?
為“APP”組件添加“\User\APP”文件夾下的所有文件。
為“APP”組件添加“\User\BSP”文件夾下的所有文件和“\User\BSP\led”文件夾下的源文件。
為“uC/CPU”組件添加“\User\ uC-CPU”文件夾下的所有文件和“\User\ uC-CPU\ARM-Cortex-M3\ RealView”文件夾下的所有文件。
為“ uC/LIB”組件添加 “ \User\ uC-LIB ”文件夾下的所有文件和 “ \User\ uC-LIB\Ports\ARM-Cortex-M3\ RealView”文件夾下的所有文件。
為“uC/OS-III Source”組件添加“\User\ uCOS-III\ Source”文件夾下的所有文件。
為“uC/OS-III Port”組件添加“\User\uCOS-III\Ports\ARM-Cortex-M3\Generic\RealView”文件夾下的所有文件。
打開“Options for Target”窗口,給工程添加包含路徑。
編譯整個工程,有 1 個錯誤,這是由于工程沒有使用μC/OS-Ⅲ源碼中 STM32 的“stm32f10x_lib.h”總頭文件,在這里使用裸機例程里已有的“stm32f10x.h”文件。
再 編 譯 , 錯 誤 和 警 告 不 減 反 增 。 這 里 還 需 繼 續 修 改 。 首 先 修 改 啟 動 文 件“ startup_stm32f10x_hd.s ”, 將 PendSV_Handler 和 SysTick_Handler 分 別 改 為OS_CPU_PendSVHandler 和 OS_CPU_SysTickHandler,共兩處。?
“cpu_cfg.h”的修改如下:
修改一:
修改二:
“bsp.h”和“bsp.c”文件使用的都是 uC/OS-III 源碼的 STM32 板載驅動代碼,這里要改成自己的裸機板載驅動代碼。“bsp.h”的修改如下:
修改一:
把uCOS自帶的STM32板載驅動文件改為自己的STM32裸機板載驅動程序
修改二:
“bsp.c”的修改如下:
修改一:
修改二:
修改三:
接下來修改應用文件“app_cfg.h”和“app.c”。“app_cfg.h”的修改如下:
“app.c”的修改如下:
修改一:
修改二:
修改三:
編譯工程,沒有錯誤和警告,下載程序到秉火 STM32-ISO 開發板,可以觀察到 LED1 每隔 5 秒切換一次亮滅狀態,移植成功。
?
?
?
?
?
轉載于:https://www.cnblogs.com/tianxxl/p/10365135.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的移植 uC/OS-III 到 STM32的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 框架模式和设计模式的区别
- 下一篇: 软件定义的数据中心已经来临