移植 uC/OS-III 到 STM32
首先,打開 Micrium 公司官方網(wǎng)站(http://micrium.com/),點(diǎn)擊“Downloads”選項(xiàng)卡進(jìn)入下載頁面,在“Brouse by MCU Manufacturer”欄目展開“STMicroelectronics”,單擊“Viewall STMicroelectronics”。
由于在“Projects”欄目中選擇一個(gè)基于 Keil MDK 平臺(tái)在 cortex-M3 內(nèi)核 MCU 評估板上測試的μC/OS-Ⅲ源碼,單擊即可。
?
頁面跳轉(zhuǎn)后,點(diǎn)擊“Download”按鈕即可下載,下載前要登錄該網(wǎng)站,未賬戶的注冊后登錄。
https://pan.baidu.com/s/1BEOTPg1BBHCncOJAmDYgrA? ?我自己上傳到百度網(wǎng)盤的
選擇一個(gè)STM32 開發(fā)板可用的裸機(jī)例程作為程序模板,這里準(zhǔn)備了一個(gè)簡單的“LED 流水燈”例程,
https://pan.baidu.com/s/1hRXh-OGDUXWy80k0MC8MOA
?
在該例程的“User”文件夾下建立下面幾個(gè)文件夾
拷貝下圖路徑下μ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”窗口,給工程添加包含路徑。
編譯整個(gè)工程,有 1 個(gè)錯(cuò)誤,這是由于工程沒有使用μC/OS-Ⅲ源碼中 STM32 的“stm32f10x_lib.h”總頭文件,在這里使用裸機(jī)例程里已有的“stm32f10x.h”文件。
再 編 譯 , 錯(cuò) 誤 和 警 告 不 減 反 增 。 這 里 還 需 繼 續(xù) 修 改 。 首 先 修 改 啟 動(dòng) 文 件“ 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 板載驅(qū)動(dòng)代碼,這里要改成自己的裸機(jī)板載驅(qū)動(dòng)代碼。“bsp.h”的修改如下:
修改一:
把uCOS自帶的STM32板載驅(qū)動(dòng)文件改為自己的STM32裸機(jī)板載驅(qū)動(dòng)程序
修改二:
“bsp.c”的修改如下:
修改一:
修改二:
修改三:
接下來修改應(yīng)用文件“app_cfg.h”和“app.c”。“app_cfg.h”的修改如下:
“app.c”的修改如下:
修改一:
修改二:
修改三:
編譯工程,沒有錯(cuò)誤和警告,下載程序到秉火 STM32-ISO 開發(fā)板,可以觀察到 LED1 每隔 5 秒切換一次亮滅狀態(tài),移植成功。
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/tianxxl/p/10365135.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的移植 uC/OS-III 到 STM32的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 框架模式和设计模式的区别
- 下一篇: 软件定义的数据中心已经来临