任务——μ/COS-II读书笔记
来源:互联网 发布:php上传文件类型限制 编辑:程序博客网 时间:2024/05/16 12:43
2.1 任务的基本概念
任务种类:
1.用户任务:解决应用问题。(由应用程序设计者编写)
2.系统任务:为应用程序提供某种服务。(由系统提供)
任务组成:
1.任务控制块:保存任务属性。
2.任务堆栈:保存任务工作环境。
3.任务程序代码
任务链表:多个任务链接而成。
2.1.1 任务的状态
1.睡眠状态:任务没有被配备任务控制块或剥夺了任务控制块时的状态。
2.就绪状态:任务被配备了任务控制块且在任务就绪表中进行了登记的状态。
3.运行状态:任何时刻只能有一个任务处于运行状态。
4.等待状态:之前在运行的任务,现在需要等待一段时间 或 需要等待一个事件发生 再运行时的状态。
5.中断服务状态:正在运行的任务响应中断申请去执行中断服务程序的状态。
任务状态转换图:
2.1.2 用户任务代码的一般结构
1. 用户任务代码的一般结构
μC/OS-II任务的代码结构是一个带有临界段的无限循环。(在运行OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()来控制任务何时响应中断,何时屏蔽中断。)
2. 用户应用程序的结构
void MyTask1(void *pdata) //定义用户任务1
{
for(;;)
{
......
}
}
void MyTask(void * pdata) //定义用户任务2
{
for(;;)
{
......
}
}
void MyTask3(void * pdata) //定义用户任务3
{
for(;;)
{
......
}
}
void main()
{
......
OSInit(); //初始化μC/OS-II
......
OSTaskCreate(MyTask1,......); //创建用户任务1
OSTaskCreate(MyTask2,......); //创建用户任务2
OSTaskCreate(MyTask3,......); //创建用户任务3
......
OSStart(); //启动任务
......
}
主函数main()只负责创建和启动用户任务,而由操作系统调度运行用户任务。
2.1.3 系统任务
μC/OS-II定义了两个为应用程序服务的系统任务:空闲任务(每个应用程序必须使用) 和 统计任务(每秒计算一次CPU在单位时间内被使用的时间,把计算结果以百分比的形式存放在变量OSC-PUUsage中。 应用程序根据实际需要选择使用)。
1. 空闲任务
2. 统计任务
要使用统计任务需要:
1.把定义在系统头文件OS_CFG.H中的系统配置常数OS_TASK_STAT_EN设置为1。
2.在创建统计任务之前调用函数OSStatInit()对统计任务进行初始化。
2.1.4 任务的优先权及优先级别
例:若应用程序的优先级别为28个,则该应用程序最多安排26个任务。(优先级26自动赋给统计任务,优先级27自动赋给空闲任务)
- 任务——μ/COS-II读书笔记
- μcos-II任务延时
- 嵌入式实时操作系统的基本概念——μ/COS-II读书笔记
- 【读书笔记】usOS-II——任务管理
- 【读书笔记】usOS-II——任务管理
- μcos-II任务堆栈、任务控制块和任务代码
- μCOS-ii初学心得
- μCOS-Ⅲ——临界段
- μCOS-Ⅲ——常用注意事项
- μCOS 系列专题—前言
- μCOS-II 在ARM处理器上的移植要点
- 浅析μCOS/II v2.85内核OSFlagPend()和OSFlagPost()
- μCOS-II系统之时间管理函数OSTimeDly()
- μCOS-II系统之时间管理函数OSTimeDlyHMSM()
- μCOS-II系统之时间管理函数OSTimeDlyResume()
- μCOS-II系统之时间管理函数OSTimeGet()
- uCOS-II核心算法分析(μCOS-Ⅱ)
- μCOS-II源码文件之OS_CORE.C
- HDU5874 Friends and Enemies
- trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
- redis集群故障分析
- HDU1285-确定比赛名次
- mysql配置
- 任务——μ/COS-II读书笔记
- Soduku Solver_Leetcode_37
- Unity链接Photon服务器
- 中文转拼音类
- mysql_在tomcat中的配置
- 蓝桥杯 奇怪的比赛-低碳生活大奖赛(DFS水)
- Material-Animations讲解笔记
- java方法
- hdu5877(dfs序,树状数组,2016年大连站网络赛1010)