icore3双核心工控板实验指导书ucos-iii.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验七:信号量实验——任务同步

一、任务同步

信号量是一个多任务内核一个协议机构,上一个实验中我们介绍了信号量共

享资源的功能,其实信号量最初是用来控制共享资源的,它还可以用来同步一个中断服

务函数(ISR)和一个任务,或者同步一个任务和另一个任务(如下图)。

简单地介绍一下,小旗标志的图形表示信号量,来发送发生信号,信号量的初始值一般

为0,表示还没有发生。下面的字母N表示信号量的计数值,每发送一个信号量N值

加一。一个ISR或者任务可以发送多次信号量,记录为N。初始化的时候信号量的值也可以

是除0以外的其它值,表示初始情况下有多少个信号量可用。带有Timeout的小沙漏表示任

务可以选择等待超时,设置的时间表示任务要等待这个信号量的最长时间,如果在这个时间

内没有等到信号量,uC/OS-III将恢复任务并且返回一个错误值,如果设置的值为0,表示无

限等待下去。

二、相关函数

在本实验中,用到三个函数,OSSemCreate(),OSSemPost(),OSSemPend(),摘

出例程中的部分代码简单地介绍一个。

1、创建一个信号量

2、发送信号量

1/3

3、等待信号量

三、实验内容

本实验建立两个任务AppTaskPost和AppTaskPend。按键按下时任务AppTaskPost当每

隔200ms向等待的任务AppTaskPend发送信号量,并通过串口打印出信号量的值。当按键

松开时任务AppTaskPend每隔200ms请求信号量,红色LED闪烁表示请求到信号量,信号

量的值减小,任务AppTaskPost通过串口打印信号量的值。当信号量的值减小到0时,任务

AppTaskPend请求不到信号量,红色LED不再闪烁。

四、实验步骤

1、把仿真器与iCore3的SWD调试口相连(直接相连或者通过转接器相连);

2、把iCore3通过MicroUSB线与计算机相连,为iCore3供电;

3、打开KeilMDK开发环境,并打开本实验工程;

4、烧写程序到iCore3上;

五、实验现象

打开串口工具(PuTTY),终端显示此时信号量的值为0。按下

ARM·KEY后,信号量的值每隔200ms增加1(如下图)。当松开ARM·KEY后,信号

量的值开始减小,红色ARM·LED开始闪烁,直到偏小为0,红色ARM·LED熄灭。

2/3

附录:

1、iCore3供电后,打开计算机属性设备管理器端口

2、打开PuTTY

3、此时就可以烧写程序进行验证了。

3/3

文档评论(0)

王子 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档