转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992351.html
花了将近一个星期的时间将ucos的源码大致的通读了一遍,在这里先进行总结一下,以便以后继续深入学习。
(1)ucos的源码结构:
与处理器类型无关的代码:OS_CORE.C
OS_FLAG.C
OS_MBOX.C
OS_MEM.C
OS_MUTEX.C
OS_Q.C
OS_SEM.C
OS_TIME.C
uC/OS-II.C
uC/OS-II.H
uC/OS的配置文件(与应用程序有关)
OS_CFG.H
INCLUDES.H
与处理器类型有关的代码
OS_CPU.H
OS_CPU_A.ASM
OS_CPU_C.C
(2)ucos的特点
多任务,最多可以支持64个任务,但是每个任务的优先级必须不一样,而且有两个任务已经被系统占用。
内核可剥夺,当就绪任务队列中有高优先级的任务到达时,当前运行的任务让出CPU使用权。
(3)ucos的程序架构
系统的启动以及运行过程:
先进行系统初始化OSInit();
然后进行创建任务等工作。
最后运行OSStart(),在OSStart()运行时,系统运行任务优先级最高的任务。
在系统运行时,任务跟任务之间的通信可以使用“信号量”、“邮箱”、“消息队列”进行通信。
任务在运行的时候,当遇到阻塞时,会进行一次OS_Sched(),当所有的用户任务都不需要执行时,系统开始执行系统自带的空闲任务,当有任务就绪时再重新开始执行。然后外部定时器驱动OSTimeTick函数,进行对任务的状态进行管理。
转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992351.html