开发环境搭建——基于Keil
1.拷贝一个STM32裸机工程。并新建一个文件夹UCOSSIII,如图所示 2.在新建的文件夹里新建五个文件夹,分别是:uc-BSP,uc-CONFIG, uc-CPU ,uc-LIB, ucos-III 3.接下来就是从官方源码里将文件拷贝到新建的文件里 1)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\BSP文件夹里的bsp.c,bsp.h拷贝到uc-BSP文件夹 2)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\uCOS-III文件夹里的app_cfg.h,cpu_cfg.h,includes.h等8个文件拷贝到uc-CONFIG 3)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\uC-CPU里的文件拷贝到uc-CPU文件夹下。
4)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\uC-LIB文件下的文件都拷贝到uc-LIB文件下下 5)官方 uCOS-III 源码\Micrium_uC-Eval-STM32F107_uCOS-III\Micrium\Software\uCOS-III文件夹下的文件都拷贝到UCOS-III文件夹下
4.keil打开工程,并对文件管理树进行配置 5.对每个模块添加相应的文件
5.对工程进行配置 设置头文件路径 至此基本环境配置完毕,接下来修改文件,允许第一个程序。我的板子是STM32F103ZET6。
1.首先修改工程的启动文件“startup_stm32f10x_hd.s”。其中将PensSV_Handler和SysTick_Handler分别改为OS_CPU_PendSVHandler和OS_CPU_SysTick_Handler,共两处
第一处
第二处
2.“cpu_cfg.h”的修改,由于默认使能了时间戳功能,所以下图中的地方必须修改 1) 修改前: 修改后:
2)如图所示:(该项使能/禁止测试关闭中断时间功能,由于在mian.c的段落保留了CPU_IntDisMeasMaxCurReset()函数,所以该工程开启该功能。如果需要用户禁止该功能,将此处设置为0,并注释掉mian.c中的CPU_IntDisMeaSmaxCurReset()函数) 修改后: 3“bsp.h”和“bsp.c”文件使用的都是UCOSIII源码的STM32板载驱动代码,这里需要删除这些板载驱动代码。
“bsp.h”的修改如下: 第一处: 修改后: 第二处:删除除了BSP_Init() 、BSP_CPU_ClkFreq()函数声明以外的所有代码 修改后: “bsp.c”的修改如下: 第一处:山醋UCOSIII自带的STM32板载驱动的宏定义,如图所示: 第二处:删除UCOSIII自带的STM32板载驱动初始化函数BSP_Init()内的全部内容: 第三处:删除BSP_CPU_ClkFreq()函数以下的所有以“BSP_”开头的板载驱动函数定义。
4.修改应用文件“app_cfg.h”,系统默认使用自带的串口功能,这里不能使用系统自带的,还是使用裸机的。如图所示: 修改前: 修改后:
到这里UCOSIII移植已经完成了,编译下工程,没有错误和警告(如果出现错误按照提示修改即可)
|