uc/os 学习

第三章 内核结构
1. 临界段
      uc为了处理临界段代码,需要开关中断。 因为不同的系统硬件,有不同的实现方法,uc定义了os_enter_critical 和 os_exit_critical宏,放在os_cpu.h文件中
2.任务
      任务就是一个无限的循环,永不返回。(所以返回值为void).  任务可以传入参数。这样可以建立多个相同代码的任务,但是可以有不同的参数。


      void xxxTask(void *pData)

      uc/os总是执行进入就绪态的最高优先级的任务,(如果有高优先级的任务一直在执行,别的任务就没有办法执行了,所以如果要共享cpu,就要让出来,等待一段时间,让别的任务有机会执行。)


当所有任务都在等待中时,就会运行idle任务。
3.任务控制块

ucos用它来保存任务的当前状态,当任务重新执行的时候,tcb能够确保任务返回到中断时的状态
OSTcbStkPtr 当前任务的堆栈的指针
OSTcbPrev OSTcbNext 双向链表使得建立任务时,ostcb能够被快速的插入和删除

OS_MAX_TASKS 在OS_CFG.H中,定义少些,可以省掉tcb所占用的内存

第五章 时间管理

OSTimeDly(INT16U ticks)

延时以时钟节拍记。

×:如果要延时一个时钟节拍,任务挂起后会在一个时钟到来时就要执行(如果没有其他就绪的高优先级任务),这之间的间隔是不定的,因为任务挂起与时钟节拍非同步的,因此中间的间隔会在一个时钟节拍之间变化。
      因此,如果要延时一个时钟节拍,必须至少延迟2个时钟节拍。
--OSTimeDlyHMSM()
可以按直接指定时分秒延时,最多256小时

转载于:https://www.cnblogs.com/jiangxinghui/archive/2009/09/04/1560449.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值