移植 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 秒切换一次亮灭状态,移植成功。

 


 

 

 

猜你喜欢

转载自www.cnblogs.com/tianxxl/p/10365135.html