首先,打开 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”组件添加“UserAPP”文件夹下的所有文件。
为“APP”组件添加“UserBSP”文件夹下的所有文件和“UserBSPled”文件夹下的源文件。
为“uC/CPU”组件添加“User uC-CPU”文件夹下的所有文件和“User uC-CPUARM-Cortex-M3 RealView”文件夹下的所有文件。
为“ uC/LIB”组件添加 “ User uC-LIB ”文件夹下的所有文件和 “ User uC-LIBPortsARM-Cortex-M3 RealView”文件夹下的所有文件。
为“uC/OS-III Source”组件添加“User uCOS-III Source”文件夹下的所有文件。
为“uC/OS-III Port”组件添加“UseruCOS-IIIPortsARM-Cortex-M3GenericRealView”文件夹下的所有文件。
打开“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 秒切换一次亮灭状态,移植成功。