《建立一个属于自己的AVR的RTOS》笔记——OSTaskSemPost
来源:互联网 发布:linux下的system命令 编辑:程序博客网 时间:2024/06/04 17:53
第五篇:完善的协作式的内核——OSTaskSemPost
//发送一个信号量,可以从任务或中断发送 void OSSemPost(unsigned char Index) { if(Sem[Index].OSEventType) //当要求的信号量是共享型 { Sem[Index].OSEventState=0x01; //使信号量有效 OSRdyTbl |=Sem [Index].OSTaskPendTbl; //使在等待该信号的所有任务就绪 Sem[Index].OSTaskPendTbl=0; //清空所有等待该信号的等待任务 } else //当要求的信号量为独占型 { unsigned char i; for (i = 0; i < OS_TASKS && !(Sem[Index].OSTaskPendTbl & (0x01<<i)); i++); if(i < OS_TASKS) //如果有任务需要 { Sem[Index].OSTaskPendTbl &= ~(0x01<<i); //从等待表中去除 OSRdyTbl |= 0x01<<i; //任务就绪 } else { Sem[Index].OSEventState =1; //使信号量有效 } } } //从任务发送一个信号量,并进行调度 void OSTaskSemPost(unsigned char Index) { OSSemPost(Index); OSSched(); }
0 0
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskSemPost
- 《建立一个属于自己的AVR的RTOS》笔记——AVR中断
- 《建立一个属于自己的AVR的RTOS》笔记——完善的占先式内核
- 《建立一个属于自己的AVR的RTOS》笔记——引言、资料下载
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskCreate
- 《建立一个属于自己的AVR的RTOS》笔记——OSStartTask
- 《建立一个属于自己的AVR的RTOS》笔记——OSSched
- 《建立一个属于自己的AVR的RTOS》笔记——OSTimeDly
- 《建立一个属于自己的AVR的RTOS》笔记——任务切换全过程
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskSuspend
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskResume
- 《建立一个属于自己的AVR的RTOS》笔记——OSSemCreate
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskSemPend
- 《建立一个属于自己的AVR的RTOS》笔记——时间片轮番调度
- 《建立一个属于自己的AVR的RTOS》笔记——时钟节拍中断对比
- 《建立一个属于自己的AVR的RTOS》笔记——任务调度对比
- 建立一个属于自己的AVR的RTOS
- AVR单片机的RTOS-AVRX
- 模拟电路推荐学习书单
- 裘宗燕:C/C++ 语言中的表达式求值
- 函数式思维: 函数设计模式,第 3 部分
- 两种生成唯一字符串的方法
- JS闭包深入详解
- 《建立一个属于自己的AVR的RTOS》笔记——OSTaskSemPost
- VOC-release4和VOC-release5检测速度测试
- LeetCode Spiral Matrix II 带打印程序
- 安装matlab到99%时出现的问题:在您的许可证文件中找不到 SERVER 行。您需要在 "......" 中手动编辑 SERVER
- 《建立一个属于自己的AVR的RTOS》笔记——时间片轮番调度
- A*算法
- 无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法。
- 2013 ACM-ICPC 长沙赛区 部分分析
- C#读取设置Cookie