版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内核实验(一)内核实验(一)任务的基本管理任务的基本管理实验目的实验目的 理解任务管理的基本原理,了解任务的各个基本理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程状态及其变迁过程 掌握掌握C/OS-II中任务管理的基本方法(创建、启中任务管理的基本方法(创建、启动、挂起、解挂任务)动、挂起、解挂任务) 熟练使用熟练使用C/OS-II任务管理的基本系统调用任务管理的基本系统调用 本实验设计了本实验设计了Task0、Task1两个任务:两个任务:任务任务Task0不断地挂起自己,再被任务不断地挂起自己,再被任务Task1解挂,两个任务不断地切换执行解挂,两个任务不断地切换执行 。实验设
2、计实验设计一个任务通常是一个无限的循环一个任务通常是一个无限的循环 C/OS-中的任务中的任务必须给每个任务赋以不同的优先级必须给每个任务赋以不同的优先级 C/OS-总是运行进入就绪态的优先级最高的任务总是运行进入就绪态的优先级最高的任务 实验设计实验设计运运行行流流程程 板级初始化板级初始化启动启动内核初始化内核初始化创建起始任务创建起始任务启动多任务启动多任务时钟初始化时钟初始化创建应用任务创建应用任务任务轮转任务轮转运行流程运行流程起始任务Task0Task1Task0Task0Task1Task1t0 t1 t2 t3 t4 t5 t6 t7 t8t1时刻后应用任务开始轮转时刻后应用任
3、务开始轮转运行流程运行流程#define OS_LOWEST_PRIO 14 /*任务优先级不可以大于任务优先级不可以大于14*/#define OS_TASK_CREATE_EN 1 /*允许使用允许使用OSTaskCreate()*/#define OS_TASK_SUSPEND_EN 1 /*允许使用允许使用OSTaskSuspend() and OSTaskResume()*/#define OS_MAX_TASKS 3 /*最多可以创建最多可以创建3个任务个任务*/操作系统配置操作系统配置 OSTaskCreate():建立一个新任务():建立一个新任务 本实验中所用到的本实验中所用
4、到的C/OS-II相关函数相关函数 OSTaskSuspend():无条件挂起一个任务():无条件挂起一个任务 OSTaskResume():唤醒一个挂起的任务():唤醒一个挂起的任务 OSTimeDly():将一个任务延时若干个时钟节拍():将一个任务延时若干个时钟节拍 、创建起始任务、创建起始任务TaskStartOSTaskCreate(TaskStart, (void *)0, &TaskStartStkTASK_STK_SIZE - 1, 4); 源程序说明源程序说明OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *p
5、tos, INT8U prio) OSTaskCreate()建立一个新任务。任务的建立可以在多任务环境启动之前,也可以在正在运行的任务中建立。中断处理程序中不能建立任务。一个任务必须为无限循环结构(如下所示),且不能有返回点。 参数参数 task是指向任务代码的指针。 Pdata指向一个数据结构,该结构用来在建立任务时向任务传递参数。 ptos为指向任务堆栈栈顶的指针。任务堆栈用来保存局部变量,函数参数,返回地址以及任务被中断时的CPU寄存器内容。任务堆栈的大小决定于任务的需要及预计的中断嵌套层数。 prio为任务的优先级。每个任务必须有一个唯一的优先级作为标识。数字越小,优先级越高。Tas
6、kStart负责负责:安装时钟中断服务例程安装时钟中断服务例程ucos_x86_idt_set_handler(0 x20,(void *)OSTickISR,0 x8e00);初始化操作系统时钟初始化操作系统时钟ucos_timer_init();创建应用任务创建应用任务TaskStartCreateTasks();另外:另外:OSStart( )启动启动C/OS-II的多任务环境。的多任务环境。在调用在调用OSStart( )之前必须先调用之前必须先调用OSInit ( )。在用户程序中。在用户程序中OSStart( )只能被只能被调用一次。第二次调用调用一次。第二次调用OSStart(
7、)将不进行任何操作。将不进行任何操作。 源程序说明源程序说明2、创建应用任务、创建应用任务Task0和和Task1OSTaskCreate(Task0, (void *)&TaskDatai, &TaskStkiTASK_STK_SIZE - 1, 5); OSTaskCreate(Task1, (void *)&TaskDatai, &TaskStk1TASK_STK_SIZE - 1, 6);源程序说明源程序说明 Task0功能:挂起自己功能:挂起自己 void Task0 (void *pdata) for (;) /* 无限循环无限循环 */ err=OSTaskSuspend(5); /* suspend itself */ 3、应用任务、应用任务源程序说明源程序说明Task1功能:唤醒功能:唤醒Tas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年从国际比较看中国科技金融体系
- 2026年食品中亚硝酸盐超标应急处置流程
- 2026年幼儿病情加重识别与就医指征
- 2026届高考作文话题预测及主题素:自然情怀
- 网络效应2026年云计算服务合作协议
- 会议翻译服务协议2026
- 2026年积极心理学在学校心理健康教育中的实践方法
- 2027届高考语文专题复习:名句名篇默写汇编(7)(课前每日五分钟一练)
- 2026年医保医师管理制度与违规处理
- 运营资本投资管理合同范本在线下载
- 秋季朋克青年硬核养生节活动方案
- 呼吸功能障碍课件
- 2025年全国高考(新课标Ⅰ卷)数学真题卷含答案解析
- 安宁疗护舒适照护课件
- 城区地下管网维护与运营管理方案
- 桡骨远端骨折护理课件
- 2025年学校食品安全事故应急演练实施方案(含演练脚本)
- 重症医学科护理质控体系
- 太仓用人单位劳动合同(2025版)
- 研发区域管理办法
- 译林版七年级下册英语Unit5 Animal Friends基础专项巩固训练(含答案)
评论
0/150
提交评论