uc/os-III任务管理总结

引言

我第一次听到操作系统这个概念的时候,感觉很抽象,理解不了。虽然生活中常常提到Windows操作系统,安卓操作系统,IOS操作系统,可是从技术层面上讲,究竟什么才是操作系统。我开始把操作系统理解成不同的规则,想要在这个操作系统下运行的程序就要遵守这个操作系统的规则。后来又把操作系统理解成管家,用来管理这些程序。假如你就是CPU的话,任务就是你要做的事,操作系统就是你的管家秘书,安排你的行程,使你工作更有效率。作为一只程序猿,其实这些操作系统就只是代码而已。看这些代码需要的C语言基础:数组、结构体、函数、指针、链表。请重点学习一下这些部分。

任务管理

操作系统里的任务其实就是各种程序,每个人物都要包括堆栈、控制块、函数三个部分。

任务堆栈

堆栈其实就是数组,用来保存被中断的任务的工作环境,当中断结束后,还原该任务的工作现场,继续工作。
任务栈的创建
每个任务都有自己的堆栈,穿件堆栈分为两个部分,首先确定栈的大小,然后定义是哪个任务的栈。
# define START_STK_SIZE 512;//栈的大小
CPU_STK START_TASK_STK(START_STK_SIZE);//任务堆栈
堆栈的使用
OSTASKCreate()函数中调用了堆栈,具体函数代码请查阅《UC/OS-III参考手册》。

任务控制块

任务控制块实际上是一个结构体,用来描述任务的属性,用户不能直接访问该结构体的成员,有一些成员需要条件编译。具体的成员含义参考《 UC/OS-III参考手册
初始化
任务控制块的初始化在 OSTASKCreate()函数中实现,具体代码参考《UC/OS-III参考手册》。

任务函数

任务函数由用户编写,是用来实现你想实现的功能。
void XXX_Task(void *p_arg)
{
while
{
......;//任务处理过程
}
}

其他

系统任务:空闲任务、时钟节拍任务、统计任务、定时任务、中断服务管理任务;
任务状态:休眠、就绪、运行、等待、中断。五个任务之间的转换参考《嵌入式实时操作系统UC/OS-III》的60页。
任务就绪表:简单理解成找到优先级最高的任务,而且按照优先级排好了先后运行顺序。
更多精彩内容,欢迎关注微信公众号【跟单片机谈恋爱】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值