社区
单片机/工控
帖子详情
UCOS-II的信号量问题
wtliubei
2009-12-29 01:07:03
我用单片机移植UCOS-II创建了信号量后,不使用OSTaskQuery的时候OSSemPend和OSSemPost都可以正常调用,返回值都是OS_NO_ERR
杂个用了OSTaskQuery后OSSemPend和OSSemPost就不动了,返回值为OS_ERR_EVENT_TYPE
搞不懂啊,谁知道哦,帮帮忙 啊
...全文
109
2
打赏
收藏
UCOS-II的信号量问题
我用单片机移植UCOS-II创建了信号量后,不使用OSTaskQuery的时候OSSemPend和OSSemPost都可以正常调用,返回值都是OS_NO_ERR 杂个用了OSTaskQuery后OSSemPend和OSSemPost就不动了,返回值为OS_ERR_EVENT_TYPE 搞不懂啊,谁知道哦,帮帮忙 啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wtliubei
2009-12-29
打赏
举报
回复
主要就是这部分
void TestTask4 (void * pdata) TASK_REENTRANT
{
OS_SEM_DATA sem_data;
printf("Check semaphore:\n");
err=OSSemQuery(mis5,&sem_data);
if(err==OS_NO_ERR){
printf("MIS4 has been established\n");}
OSSemPost(mis5);
}
void TestTask9(void * os_pdata) TASK_REENTRANT
{
INT8U err ;
os_pdata = os_pdata;
for(;;)
{
OSSemPend(mis5,0,&err);
if(err==OS_NO_ERR) {
printf ("OS_NO_ERR\n");
}
}
}
void main (void)
{
OSInit();
OSTaskCreate (TestTask4,(void *)0, &TestTask4Stk[63], 4);
OSTaskCreate (TestTask5,(void *)0, &TestTask5Stk[63], 5);
OSTaskCreate (TestTask6,(void *)0, &TestTask6Stk[63], 6);
OSTaskCreate (TestTask7,(void *)0, &TestTask7Stk[63], 7);
OSTaskCreate (TestTask8,(void *)0, &TestTask8Stk[63], 8);
OSTaskCreate (TestTask9,(void *)0, &TestTask9Stk[63], 9);
mis1=OSSemCreate(0);
mis2=OSSemCreate(0);
mis3=OSSemCreate(0);
mis4=OSSemCreate(0);
mis5=OSSemCreate(0);
OSStart();
}
把OS_SEM_DATA改成其他的就可以正常运行
Arnold9009
2009-12-29
打赏
举报
回复
贴代码出来看看
uCOS
-
II
信号量
集.ppt
在嵌入式实时内核中,
信号量
是指一种表明预先定义的系统事件已经发生的机制。
信号量
机制用于任务与任务之间、任务与ISR之间的同步。其主要的特点是可实现一对多的同步。 一个
信号量
就是一个标志,不具备其它信息。 一个或多个
信号量
构成一个
信号量
集。
信号量
集可以用一个指定长度的变量(比如一个32位的无符号整型变量,不同的操作系统其具体实现不一样)来表示,而每个
信号量
由在
信号量
集变量中的某一位来代表。
ucos
-
ii
学习笔记——
信号量
的原理及使用
详细介绍了
ucos
-
ii
操作系统的
信号量
的原理及使用,程序完美可以运行,注释详细,希望对你能有所帮助
uCOS
2源码分析3-RTOS核心代码视频课程-第4季第4部分
本课程是《朱有鹏老师单片机完全学习系列课程》第4季第4个课程,本课程我们重点分析
uCOS
2工程源码的
uCOS
-
II
/source目录中os_time.c,os_task.c,os_core.c这几个核心文件,学习完后对
ucos
内核核心代码譬如调度部分、任务创建部分等有了本质深入的理解。
30-2
ucos
-
ii
信号量
.rar
ucos
信号量
,邮箱,怎么理解?
信号量
好比代号 ,只由当主任务发送
信号量
后 分任务正好有请求
信号量
---才继续执行分任务请求
信号量
函数后面的功能;如果分任务有请求
信号量
函数,但是主任务中没有发送,分任务还是不能执行的。好比老师提问
问题
叫 “老王” 来回答一个
问题
, 老王 竖起耳朵在听 听到了 老师喊他, 老王才开始给老师回答
问题
,回答完后就停止回答了;只有老师在喊老王,老王生气了(也就是任务中没有请求函数) 是不会甩老师的。老王还是很有脾气的。
嵌入式实时操作系统
uCOS
-
II
(中文版)电子书+配套光盘
在保留对实时操作系统基本概念阐述的基础上,详细讲解μC/OS—Ⅲ相比μC/OS—Ⅱ所做的大量扩展与改进,如同时支持时间片轮转调度算法和基于优先级的可剥夺型任务调度算法;用系统任务来处理中断队列以缩短关中断时间;以时间节拍任务来管理时钟节拍从而彻底实现硬实时;以直接向任务发信号方式简化任务间通信与同步等,特别是新增加的在线测试与调试功能,使应用开发更为方便。
单片机/工控
27,382
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章