版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JX44B0实验系统教案uC/OS-II任务间通讯和同步实验,武汉创维特信息技术有限公司,2020/7/23,2,提纲,1,3,2,4,5,基础知识,实验目的,实验内容,预备知识,实验设备,6,实验过程,7,实验报告要求,3,一 实验目的,实验目的,掌握uC/OS-II操作系统下使用信号量解决任务之间的同步问题 掌握uC/OS-II操作系统下任务间通讯的方法,4,二 实验内容,实验内容,使用信号量实现任务间同步 使用邮箱实现任务之间的通讯,5,三 预备知识,预备知识,了解操作系统任务调度的机制 了解操作系统任务间通讯的机制 学习uC/OS-II操作系统下多任务应用程序的编写方法,6,四 实验设
2、备,实验设备,JX44B0教学实验箱 ADT1000仿真器和ADT IDE集成开发环境 串口连接线,7,五 基础知识,uC/OS-II任务之间的通讯与同步方式,在C/OS-II中,有多种方法可以保护任务之间的共享数据和提供任务之间的通讯。 利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来关闭中断和打开中断。当两个任务或者一个任务和一个中断服务子程序共享某些数据时,可以采用这种方法 利用函数OSSchedLock()和OSSchekUnlock()对C/OS-II中的任务调度函数上锁和开锁 信号量 邮箱 队列,8,五 基础知识,uC/OS-II中使用信号量,通
3、过调用OSSemCreate()建立信号量,并对信号量的初始计数值赋值。该初始值为0到65,535之间的一个数。如果信号量是用来表示一个或者多个事件的发生,那么该信号量的初始值应设为0。如果信号量是用于对共享资源的访问,那么该信号量的初始值应设为1(例如,把它当作二值信号量使用)。 通过调用OSSemPost()函数发送一个信号量,通过调用OSSemPend()函数等待一个信号量。如果信号量当前是可用的(信号量的计数值大于0),将信号量的计数值减1,然后函数将“无错”错误代码返回给它的调用函数。如果信号量的计数值为0,而OSSemPend()函数又不是由中断服务子程序调用的,则调用OSSemP
4、end()函数的任务要进入睡眠状态,等待另一个任务(或者中断服务子程序)发出该信号量。,9,五 基础知识,uC/OS-II中使用信号量进行任务之间同步,右边的代码使用两个信号量实现了两个任务之间的同步。信号量创建的代码如下,信号量Sem2初始为可用状态,而信号量Sem1初始为不可用状态。 Sem1 = OSSemCreate(0); Sem2 = OSSemCreate(1); 任务TaskLED必须等待Sem2可用才能够继续往下运行,而Sem2在TaskSEG中发送。同样TaskSEG必须等待Sem1可用才能够继续往下运行,而Sem1在TaskLED中发送,这样就实现了程序中“”之间代码的顺
5、序执行,而不受OSTimeDly的延时值的影响。,10,五 基础知识,uC/OS-II中使用邮箱,邮箱可使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。该指针指向一个包含了特定“消息”的数据结构。通过调用OSMboxCreate()函数来创建邮箱,并指定指针的初始值。如果使用邮箱的目的是用来通知一个事件的发生(发送一条消息),那么就要初始化该邮箱为NULL,因为在开始时,事件还没有发生。如果用户用邮箱来共享某些资源,那么就要初始化该邮箱为一个非NULL的指针。在这种情况下,邮箱被当成一个二值信号量使用。使用邮箱同样可以实现任务间的同步。 通过OSMboxPost()函数发送一个消
6、息到邮箱中,通过OSMboxPend()函数等待一个邮箱中的消息,如果邮箱中没有可用的消息,OSMboxPend()的调用任务就被挂起,直到邮箱中有了消息或者等待超时。,11,五 基础知识,uC/OS-II中使用邮箱进行任务之间通讯,下面的代码每100个时钟节拍从TaskSEG中发送一个字符串,在TaskLED中接收并打印出来。,12,五 基础知识,uC/OS-II中使用消息队列实现任务之间的通讯,消息队列是uC/OS-II中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不同,每个指针指向的数据结构变量也有所不同。 uC/OS-II提供了7个对消息队列进行操作的函数:创建消息队列函数OSQCreate(),等待消息队列函数OSQPend(),先进先出(FIFO)发送消息函数OSQPost(),后进先出(LIFO)发送消息函数OSQPostFront(),无等待获取消息函数OSQAccept(),清空消息队列函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030物联网设备生产企业市场竞争格局供需分析投资风险评估方案
- 2025-2030物联网智能门禁行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030物流配送行业智能化市场分析与发展规划方案
- 2025-2030物流快递行业市场深度调研及发展前景及趋势预测研究报告
- 门诊消防安全培训
- 精准营养指导下的糖尿病内分泌管理新策略
- 精准肿瘤治疗术语与生物标志物检测策略
- 精准放疗:多组学引导的剂量优化与靶区定义
- 精准医疗质量评价的挑战与对策
- 精准医疗时代的心血管风险模型可视化策略
- 2025至2030中国立体定向仪行业产业运行态势及投资规划深度研究报告
- 电大专科《公共行政学》简答论述题题库及答案
- 2025成人高考全国统一考试专升本英语试题及答案
- 代办烟花爆竹经营许可证协议合同
- 国企员工总额管理办法
- 企业级AI大模型平台落地框架
- TD/T 1036-2013土地复垦质量控制标准
- 苏教版六年级数学上册全册知识点归纳(全梳理)
- 车位包销合同协议模板
- 病历书写规范版2025
- 中铁物资采购投标
评论
0/150
提交评论