嵌入式COSII内核实验三优先级继承ppt课件

上传人:无*** 文档编号:144948244 上传时间:2022-08-28 格式:PPT 页数:14 大小:232.50KB
返回 下载 相关 举报
嵌入式COSII内核实验三优先级继承ppt课件_第1页
第1页 / 共14页
嵌入式COSII内核实验三优先级继承ppt课件_第2页
第2页 / 共14页
嵌入式COSII内核实验三优先级继承ppt课件_第3页
第3页 / 共14页
点击查看更多>>
资源描述
内核实验三内核实验三优优 先先 级级 继继 承承实验目的实验目的 掌握嵌入式实时操作系统掌握嵌入式实时操作系统C/OS-II处理优先级反转的战略处理优先级反转的战略优先级承优先级承继的原理。继的原理。当高优先级义务因恳求某共享资源失败被当高优先级义务因恳求某共享资源失败被阻塞时,把当前拥有该资源的、且优先级较阻塞时,把当前拥有该资源的、且优先级较低的义务的优先级提升,提升的高度等于这低的义务的优先级提升,提升的高度等于这个高优先级义务的优先级个高优先级义务的优先级(可以指定一个可以指定一个PIP)。优先级承继的主要思想优先级承继的主要思想义务义务A恳求共享资源恳求共享资源S S能否被占用能否被占用义务义务A获得共享资源获得共享资源S S被义务被义务B占用,义务占用,义务A被挂起被挂起 Priority(B)Priority(A)?提升提升B的优先级到的优先级到PIP B释放资源释放资源s并恢复原来的优先级并恢复原来的优先级 等待队列中优先级最高的义务获得等待队列中优先级最高的义务获得s义务义务A继续执行继续执行NYNY优先级承继的主要思想优先级承继的主要思想它们的原始优先级它们的原始优先级:TASK0 TASK1 TASK2。3个运用义务竞争同一互斥资源个运用义务竞争同一互斥资源 mutex;运用运用mutex时采用优先级承继战略,时采用优先级承继战略,PIP优先级承继优先级承继优先级为优先级为8;实验设计实验设计#define OS_LOWEST_PRIO 14 /*义务优先级不可以大于义务优先级不可以大于14*/#define OS_TASK_CREATE_EN 1 /*允许运用允许运用OSTaskCreate()*/#define OS_MAX_TASKS 6 /*最多可以创建最多可以创建6个义务个义务*/#define OS_MAX_EVENTS 1 /*最多可以有1个事件*/操作系统配置操作系统配置#define OS_MUTEX_EN 1 /*能否允许运用互斥信号量的功能能否允许运用互斥信号量的功能*/#define OS_TASK_CHANGE_PRIO_EN 1 /*能否允许运用能否允许运用 OSTaskChangePrio()*/#define OS_TIME_DLY_HMSM_EN 1 /*能否允许运用能否允许运用OSTimeDlyHMSM()*/#define OS_TICKS_PER_SEC 200 /*设置每秒之内的时钟节拍数目设置每秒之内的时钟节拍数目*/操作系统配置操作系统配置 OSTaskCreate():建立一个新义务:建立一个新义务 本实验中所用到的本实验中所用到的C/OS-II相关函数相关函数 OSMutexCreate():创建互斥信号量创建互斥信号量 OSMutexPend():恳求互斥信号量恳求互斥信号量 OSTimeDlyHMSM():将一个义务延时假设干时间:将一个义务延时假设干时间 OSMutexPost():释放互斥信号量释放互斥信号量、运用初始化、运用初始化OSTaskCreate(TaskStart,(void*)0,&TaskStartStkTASK_STK_SIZE-1,9);mutex =OSMutexCreate(8,&err);设置互斥信号量,其中设置互斥信号量,其中8为为PIP优先级承继优先级的值优先级承继优先级的值 创建起始义务创建起始义务TaskStart源程序阐明源程序阐明TaskStart担任担任:安装时钟中断效力例程安装时钟中断效力例程ucos_x86_idt_set_handler(0 x20,(void*)OSTickISR,0 x8e00);初始化操作系统时钟初始化操作系统时钟ucos_timer_init();创建运用义务创建运用义务TaskStartCreateTasks();源程序阐明源程序阐明2、创建运用义务、创建运用义务for(i=0;i N_TASKS;i+)TaskDatai=i;/*Each task will pass its own id */OSTaskCreate(Task,(void*)&TaskDatai,&TaskStkiTASK_STK_SIZE-1,12-i);源程序阐明源程序阐明void Task(void*pdata)for(;)/*无限循环无限循环*/OSMutexPend(mutex,0,&err);/*恳求资源恳求资源*/OSTimeDlyHMSM(0,0,0,200);/*坚持资源坚持资源*/OSMutexPost(mutex);/*释放资源释放资源*/OSTimeDlyHMSM(0,0,0,(3-id)*150);/*延时延时*/3、运用义务、运用义务源程序阐明源程序阐明t1t2t3t4t5t6t7t8t9t10 t1112优先级优先级11108t12 t13 t142101212021220212t1时辰义务时辰义务Task2首先获得首先获得mutex运转流程运转流程输出信息输出信息
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!