[uCOS/uCGUI] 想学ucos应先读懂这几个函数!!

qzgui   2011-12-8 11:22 楼主

       初学uc/os的一点方法。

       首先把任务代码、任务堆栈、任务控制块、就绪表(OSRdyGrp、OSRdyTbl[])、如何让任务就绪和脱离就绪、如何查高优先级、任务调度等概念搞清楚。

      然后结合这几个函数:OSTaskCreat()、OSInit()、OSStart()、OSTimeTick()、OSTimeDly()、OSIntEnter()、OSIntExit()。读懂,读的过程中结合上述概念。由此就可完成一个最简的多任务运行。

      其中,OSTaskCreat()作用是创建一个任务,并进行该任务的堆栈初始化、任务控制块初始化。

      OSInit()初始化操作系统的全局变量,把就绪表初始化成0,任务控制块(当前任务控制块、高优先级任务控制块等等)初始化成0。

      OSStart()启动从就绪表中查优先级最高的任务,第一次去运行。

     OSTimeDly(),该函数尤为重要,调用它可实现将正在运行的任务脱离就绪,并进行一次任务调度(运高优先级任务)。

     OSTimetick(),遍历所有的基于优先级的任务,将延时时间节拍减一次。如为0说延时时间到,将任务在就绪表中就绪。

回复评论 (10)

请问楼主你理解了没,给些独到见解,别光给个标题,继续更新
点赞  2011-12-8 16:32
点赞  2011-12-23 10:15
点赞  2012-1-15 01:15

对于初学者挺好啊

点赞  2012-2-12 11:23

说得太笼统了吧,细节也没有啊

说得太笼统了吧,细节也没有啊
点赞  2012-2-12 12:22
太少了啊
点赞  2012-2-18 20:58
谢谢分享。
点赞  2012-2-21 18:30
多谢LZ的指点,刚刚起步
点赞  2012-2-22 09:20
呃,看过之后再来看楼主这些觉得还是有些道理,没看的人基本可以路过!
点赞  2012-2-22 16:08
点赞  2012-2-22 18:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复