理论教育 uC/OS-Ⅲ嵌入式操作系统的移植优化

uC/OS-Ⅲ嵌入式操作系统的移植优化

时间:2023-06-27 理论教育 版权反馈
【摘要】:为了使用堆栈方便,uC/OS-Ⅲ定义了一个32位堆栈数据类型。各个任务的优先级以及主要功能如图5.14所示。图5.14控制任务划分3.uC/OS-Ⅲ的移植首先要宏定义各个任务的优先级和堆栈大小,定义控制块和堆栈,声明任务函数。

uC/OS-Ⅲ嵌入式操作系统的移植优化

1.数据类型的定义

为了保证uC/OS-Ⅲ在STM32上移植的可靠性,在移植时需要先统一定义各数据类型的长度。为了使用堆栈方便,uC/OS-Ⅲ定义了一个32位堆栈数据类型。

typedef charCPU_CHAR; /*字符变量*/

typedef unsigned charCPU_BOOLEAN;/*布尔型变量*/

typedef unsigned charCPU_INT08U;/*无符号8位整型变量*/

typedef signed charCPU_INT08S;/*有符号8位整型变量*/

typedef unsigned short CPU_INT16U;/*无符号16位整型变量*/

typedef signed short CPU_INT16S;/*有符号16位整型变量*/

typedef unsigned intCPU_INT32U;/*无符号32位整型变量*/

typedef signed intCPU_INT32S;/*有符号32位整型变量*/(www.daowen.com)

typedeffloat CPU_FP32;/*32位单精度浮点数*/

typedefdouble CPU_FP64;/*64位双精度浮点数*/

typedef CPU_INT32UCPU_STK;/*32位堆栈*/

2.机器人控制任务的划分

按照Saridis提出的三层模型,将机器人的控制任务划分为三个任务。各个任务的优先级以及主要功能如图5.14所示。

图5.14 控制任务划分

3.uC/OS-Ⅲ的移植

首先要宏定义各个任务的优先级和堆栈大小,定义控制块和堆栈,声明任务函数。在主函数中,需要对延时进行初始化,并对中断分组进行配置,还需要对舵机驱动、测距传感器驱动、直流电动机驱动、姿态传感器驱动以及无线串口驱动进行初始化。在主函数中创建了一个优先级为3的开始任务。在开始任务的函数中,创建了控制的三个任务。在三个控制任务的任务函数中,分别编写了实现其相应功能的程序,每个控制任务的执行时间可通过编程实现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈