目录
一、获取uC/OS-III源码
链接:https://pan.baidu.com/s/1_Wk-hbeQ7KrvnoA0GwJXdA
提取码:qwer
二、建立文件夹
2.1 新建文件夹
新建两个文件夹uC-BSP和uC-CONFIG,后面会用到。
2.2 创建空文件
创建bsp.c和bsp.h文件
2.3 导入源码
![](https://i-blog.csdnimg.cn/blog_migrate/ac38b7920a07aa2232a4f0f3cf31e269.png)
2.4 创建基础stm32框架
设置gpio管脚PB0,PB1来观察两个task任务下的led闪烁,并且设置串口usart1,中断不用开启。同时要设置sys,rcc,以及clock72MHZ
关于详细的管脚设置请参考:stm32cubemx下stm32中断与串口DMA通信_Laul Ken-Yi的博客-CSDN博客
2.5 导入文件和增加头函数路径
将刚刚创建的源码文件夹导入到刚刚创建的cubemx工程目录下
2.6 打开keil,增加item
![](https://i-blog.csdnimg.cn/blog_migrate/160524c22fe03610388aa92c77f5f1df.png)
添加六个groups
2.6.1 并在BSP,file下添加刚刚创建的空白文件bsp.c和bsp.h。
2.6.2 在CONFIG下添加file,8个
2.6.3 在SOURCE添加file,20个
2.6.4 PORT下添加file,3个
2.6.5 CPU下添加file,6个
其中包括uC-CPU下的3个和realview下的3个
2.6.6 LIB下添加file,10个
和2.6.6 CPU相似
2.7 加入文件编译路径
![](https://i-blog.csdnimg.cn/blog_migrate/ca92e17f8e576849b58609f6714678ad.png)
三、改写代码
3.1 修改startup文件
PendSV_Handler -----> OS_CPU_PendSVHandler
SysTick_Handler -----> OS_CPU_SysTickHandler
切记有两处修改
3.2 修改CONFIG/app_cfg.h
#define APP_CFG_SERIAL_EN DEF_ENABLED ------#define APP_CFG_SERIAL_EN DEF_DISABLED
#define APP_TRACE BSP_Ser_Printf -------#define APP_TRACE (void)
3.3 修改CONFIG/includes.h
在#include<bsp.h>后加上
#include “gpio.h”
#include “app_cfg.h”
将#include <stm32f10x_lib.h> 改为 #include “stm32f1xx_hal.h”
3.4 修改BSP/bsp.c
// bsp.c
// bsp.c
#include "includes.h"
#define DWT_CR *(CPU_REG32 *)0xE0001000
#define DWT_CYCCNT *(CPU_REG32 *)0xE0001004
#define DEM_CR *(CPU_REG32 *)0xE000EDFC
#define DBGMCU_CR *(CPU_REG32 *)0xE0042004
#define DEM_CR_TRCENA (1 << 24)
#define DWT_CR_CYCCNTENA (1 << 0)
CPU_INT32U BSP_CPU_ClkFre