- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ucos多任务演示实验
uCOS多任务演示实验
实验目的
(1)、理解任务,任务调度的概念
(2)、理解任务通信的几种方式(管道、共享内存、消息、队列、邮箱、套接字等)
(3)、理解任务同步的几种方式(信号量、互斥、忙等待、事件、临界区等)
(4)、掌握LPC2200(for MagicARM2200)专用工程模板的使用;
(5)、能够在MagicARM2200-S 上运行基于μC/OS-II 操作系统的程序;
(6)、掌握基于μC/OS-II 操作系统的用户程序的编写格式。
二、实验内容及要求?
建立三个或三个以上的μC/OS-II?的任务,一个任务用于检测KEY1?按键输入,称之为按键检测任务,另一个任务用于控制蜂鸣器,就称之为蜂鸣器控制任务。还有LED灯任务和电机任务。要求各个任务之间不是独立的,而是有相互关联的,达到多任务间的数据通信和同步的实验要求。
三、实验设备及软件?
?硬件:PC?机?一台?
MagicARM2200-S?教学实验开发平台?一套?
?软件:Windows98/XP/2000?系统,ADS?1.2?集成开发环境?μC/OS-II?操作系统(V2.52)
四、设计方案?
(一)方案原理?1、信号量与邮箱?
(1)要完成两个任务之间的单向同步,需要通过邮箱或者信号量来实现。?
用信号量进行单向同步,以一个事情触发两个以上任务时,按键任务划分原则可以将他们合并为一个任务。如果这些任务因为其他原因不能合并(不同的功能部件),则可以采用有消息分发功能的通信机制——邮箱,以减少通信工具的个数。?
(2)且用信号量进行行为同步时,只能提供同步的时刻信息,不能提供内容信息,当控制方在对被控制方进行控制,且还需要向被控制方提供内容信息(数据或字符串)时,消息邮箱是一种有效的方案。?
(3)当两个任务是系统“信息链条”中的相邻两个环节时,前一个任务的输出信息就是后一个任务的输入信息,消息邮箱就是连接这两个任务的桥梁。在消息邮箱看来,提供消息的任务(或ISR)是生产者,读取消息的任务是消费者,正常情况下,消息的消费时间比生产时间短,消费者总是在等待消息的到来,这时,生产者每向“消息邮箱”发送一次“消息”,就立即被消费者取走,两者达到理想的同步效果。?(4)由于“消息邮箱”里只能存放一条消息,所以在用消息邮箱进行同步控制时,必须满足一个前提:任何时候消息的产生速度都比消息的消费速度慢,即被控制任务总是在等待消息。?2、关于优先级?
如果单向同步发生在两个任务之间,那么实际同步效果与两个任务的优先级有很大关系,当控制方任务的优先级低于被控制方任务的优先级时,控制方任务发出信息后使被控制方任务进入就绪状态,瞬时同步效果较好,?
??当控制方任务的优先级高于被控制方任务的优先级时,控制方任务发出信息后使被控制方任务进入就绪状态,但并不发声切换,只有当控制方再次调用系统服务函数(如延时函数)并使自己挂起时,被控制方任务才会有运行机会,瞬时同步效果较差,当被控制方任务的实时性要求不高,或者采取有缓冲功能的通行手段时,这是可以接受的。常用做法是采用首尾触发方式(控制方任务的尾部触发被控制方的首部),控制方在发出信息后立即调用延时函数(延时时间大于被控制方任务的处理时间),主动使自己挂起来,让低优先级的控制方任务尽快得到运行机会,从而改善同步效果。?
(二)方案设计?
1、LED流水灯闪烁方式:?UCOS_LED[42]={0xff,0x00,?
???????????????0x33,0xcc,0x55,0x33,0xcc,0xaa,??????????????????0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,0x00,????????????????0xc0,0x60,0x30,0x18,0x0c,0x06,0x03,0x00,????????????????0x81,0xc3,0xe7,0xff,0xe7,0xc3,0x81,0x00,????????????????0xff,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,??
?
????????0xff,0x00};?
2、蜂鸣器鸣叫方式:?
蜂鸣器相当于一个警报提醒,提醒当前进程为等待按键状态,鸣叫方式为持续鸣叫,持续时间为3秒。另外由于LED任务执行完一次需要的时间是21秒,因此在蜂鸣器任务开始加上一个21秒的延时,以实现LED任务与蜂鸣器任务的却换。?3、按键的功能:?
当按键按下时,邮箱开始发送信息给LED任务和蜂鸣器任务。LED任务为最低优先级任务,按键为中优先级任务,蜂鸣器为最高优先级任务,由于优先级的关系,按键先给蜂鸣器任务发送消息,按键任务执行完后,再给LED任务发送消息,但事实上发送消息和按键任务完成
文档评论(0)