UCOS
水桶前辈
爱旅行爱生活喜欢西藏的蓝天白云
展开
-
UCOS II 消息队列学习一
消息队列通常可以应用以下两个地方;1.存储外部事件:外部事件由中断收集,然后存储到队列。2.串口接收程序中的接收循环缓冲区,可理解为消息队列。使用一个消息队列的步骤如下;1、 建立一个指向消息数组的指针和数组的大小,该指针数组必须申明为void类型,如下: void *MyArrayOfMsg[SIZE];2、 声明一个OS_EV原创 2013-10-13 21:53:13 · 1486 阅读 · 0 评论 -
UCOS II 消息队列学习二
今天终于利用消息队列实现了串口的映射!要点回顾:1.刚开始一直用消息邮箱经行映射,后来才发现消息邮箱只能发送一个指针的数据(4个字节),而消息队列可以发送N个消息邮箱的消息!简言之,消息邮箱只能发送4个字节的数据,消息队列可以发送无限数据!2.消息队列的发送OSQPost(MsgQueue, (void *)&txmsg[0]); 和消息队列的请求 OSQPend(MsgQueue原创 2013-10-14 21:45:49 · 1014 阅读 · 0 评论 -
如何利用ucos-ii 写嵌入式程序
把具体的工作划分为若干个任务,根据任务的紧急情况及相互关系确定不同的优先级,同时确定任务见的通讯方式,到底是用全局变量呢,还是邮箱,队列呢。然后声明需要用到的资源,接着编写各个任务。具体可以找本书看看。划分具体任务是最关键的一步转载 2013-10-21 11:29:19 · 726 阅读 · 0 评论 -
UCOS环境下的中断程序
BSP_IntVectSet(BSP_INT_ID_USART1, RFID_RxTxISRHandler); //设置中断号 与中断函数 名称相匹配。 BSP_IntEn(BSP_INT_ID_USART1); //使能 中断号的中断 RFID_RxIntEn (); //开启接收中断原创 2014-03-17 13:42:57 · 3350 阅读 · 1 评论 -
ucos中2.86版本中的这个问题(BUG)
转自:1) OS_CORE.C:OSIntExit() and OS_Sched() have changed slightly because of a boundary condition found with the Cortex-M3 port. Specifically, we needed to move the statement:OSTCBHighRdy = OST转载 2014-05-06 16:31:49 · 2623 阅读 · 0 评论 -
UCOS 延时阻塞修改
在ucos II 中用 OSTimeDlyHMSM()函数经常会阻塞本任务,原创 2014-05-06 16:47:18 · 2377 阅读 · 0 评论 -
互斥信号量和二进制信号量的区别
互斥型信号量必须是同一个任务申请,同一个任务释放,其他任务释放无效。同一个任务可以递归申请。 二进制信号量,一个任务申请成功后,可以由另一个任务释放。 二进制信号量实现任务互斥: 打印机资源只有一个,abc三个任务共享,当a取得使用权后,为了防止其他任务错误地释放了信号量(),必须将打印机房的门关起来(进入临界段),用完后,释放信号量,再把门打开(出临界段转载 2014-05-21 13:16:20 · 1326 阅读 · 0 评论