SDLu的uCOS II 入门学习笔记(7)信号量集.doc

SDLu的uCOS II 入门学习笔记(7)信号量集.doc

ID:53314600

大小:125.00 KB

页数:2页

时间:2020-04-03

SDLu的uCOS II 入门学习笔记(7)信号量集.doc_第1页
SDLu的uCOS II 入门学习笔记(7)信号量集.doc_第2页
资源描述:

《SDLu的uCOS II 入门学习笔记(7)信号量集.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、S.D.Lu的uC/OSII入门学习笔记(7):信号量集前面的篇章中,我们学过了信号量,它是用于标识资源的占用情况的标志。而信号量集则是信号量的集合,是若干个信号量的逻辑组合。先看实例。在上一篇的例6-1基础上进行修改。例7-1将app.c中的内容改为如下:编译运行,LED2以固定的频率闪烁,上电后LED1熄灭,LED2闪烁20次之后LED1才闪烁,频率比LED2低,且不再停下。简单分析一下代码:第5行,声明一个标志组。和前面篇章中介绍的信号量、消息邮箱、消息队列不同,μC/OSII另一个结构来描述信号量集,该结构就是标志组。第18行的功能是,请求信号量集,

2、等待,直到信号量集中的bit0和bit1两个信号量均为1,然后执行后面的语句。第41行,在LED1闪烁10次后,发送信号量,将信号量集的bit0置1。第46行,在LED1再闪烁10次后,发送信号量,将信号量集的bit1置1。2/2应该特别注意的是,信号量和信号量集有一个不同点,信号量被申请成功之后,其值会被自动减1,而信号量集被申请成功后,其值是不变的。这一点,在任哲老师的书里并没有说明。本例中用到了信号量集及相关函数等,所以在os_cfg.h配置文件中必须将OS_FLAG_EN置1,如下图:分析代码会发现,Task_LED2只发送了两次信号量,此后Task

3、_LED循环申请信号量集均成功,这就是LED1可以不停闪烁的原因。将例7-1修改一下,看看如何关停LED1。例7-2将Task_LED2的内容改为如下:编译运行,上电后LED1熄灭,LED2以固定的频率闪烁,LED2闪烁20次之后LED1才闪烁,频率比LED2低;LED2再闪烁10次后,LED1停止闪烁。深入了解信号量集的相关知识,请参考任哲《嵌入式实时操作系统μCOS-II原理及应用》(第2版)第六章的相关内容。作者:S.D.Lu深圳2014-6-132/2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。