uC/OS
mmhh3000
这个作者很懒,什么都没留下…
展开
-
uC/OSIII的消息队列处理机制
在uC/OSIII中没有邮箱这个概念,而是统一合并到了消息队列MSG_Q。因为消息队列可以看作是很多邮箱的集合,邮箱只是包含单个消息的消息队列。在分析消息队列之前,必须要对消息的数据结构做一个彻底的分析。消息队列对象和其他内核对象一样,它的结构定义很简单:下面看一下消息队列的结构体,记住这个结构体名字叫OS_Q:struct os_q { /* Message Queue */原创 2014-03-16 17:40:49 · 2389 阅读 · 0 评论 -
uC/OSIII在Cortex-M3的任务切换和中断退出分析
按uC/OSIII书中所讲,普通任务切换和中断进入退出后的任务切换应该是不同的函数,因为普通任务切换时要入栈出栈全部寄存器,而中断进入和退出时处理器会自动入栈出栈一部分寄存器(Cortex-M3 是自动保存xPSR, PC, LR, R12, R0-R3 )。但是uC/OSIII在Cortex-M3平台中,任务切换函数却是使用的同一函数,确切的说是使用了同一样的一个宏定义,如下:#defi原创 2014-03-09 15:43:27 · 3027 阅读 · 0 评论 -
uC/OSIII时钟节拍处理过程
时钟节拍涉及到的函数调用过程:从main开始,创建了第一个任务AppTaskStart,在其一开始执行时,对BSP和CPU进行初始化,调用BSP_CPU_TickInit()函数;该函数定义在bsp文件夹下的bsp.c文件中,该函数先读取时钟频率,然后按OSCfg_TickRate_Hz值计算应该为CM3的systick定时器设置的到期值。void BSP_CPU_TickInit (原创 2014-03-14 17:57:57 · 4377 阅读 · 0 评论