内核架构
一、实时系统概念
1、前后台系统(Foreground/Background System)
(A)代码的临界区
(B)资源
(C)共享资源
(D)多任务
(E)任务切换
(F)内核(Kernel)
(G)调度(Scheduler)
(H)非占先式内核
(I)占先式内核
(G)可重入性(Reentrancy)
2、时间片轮番调度法
(A)任务优先级
(B)静态优先级
(C)动态优先级
(D)优先级反转
(E)任务优先级分配
3、任务间的同步和通信
互斥条件
死锁(或抱死)( Deadlock( or Deadly Embrace
同步事件标志( Event Flag)
消息邮箱
消息队列( Message Queue)
4、中断的处理中断延迟中断响应.中断恢复时间( Interrupt Recovery)中断延迟、响应和恢复.中断处理时间非屏蔽中断( NMI)时钟节拍( Clock Tick)对存储器的需求使用实时内核的优缺点
二、内核结构
5、任务状态切换
临界区( Critical Section)任务
任务状态
任务控制块(Task Control Blocks, OS_TCB)
就绪表(Ready List)
任务调度(Task Scheduling)
给调度器上锁和开锁( Locking and UnLocking the Scheduler)
空闲任务(Idle Task)统计任务
6、 μC/OS内核分析 μC/OS中的中断处理 μC/OS时钟节拍. μC/OS‐Ⅱ初始化 μC/OS‐Ⅱ的启动获取当前 μC/OS‐Ⅱ的版本号
应用程序函数分析
7、任务管理函数分析
建立任务,OSTaskCreate()
建立任务,OSTaskCreateExt()
任务堆栈堆栈检验,OSTaskStkChk()
删除任务,OSTaskDel()
请求删除任务,OSTaskDelReq()
改变任务的优先级,OSTaskChangePrio()
挂起任务,OSTaskSuspend()
恢复任务,OSTaskResume()
获得有关任务的信息,OSTaskQuery()
8、时间管理函数分析
任务延时函数,OSTimeDly()
按时分秒延时函数 OSTimeDlyHMSM()
让处在延时期的任务结束延时,OSTimeDlyResume()
系统时间,OSTimeGet()和 OSTimeSet()
9、任务之间的通信与同步
事件控制块 ECB
初始化一个事件控制块,OSEventWaitListlnit()
使一个任务进入就绪态,OSEventTaskRdy()
使一个任务进入等待某事件发生状态,OSEventTaskWait()
由于等待超时而将任务置为就绪态,OSEventTO()
信号量
邮箱
消息队列
10、内存管理
内存控制块
建立一个内存分区,OSMemCreate()
分配一个内存块,OSMemGet()
释放一个内存块,OSMemPut()
查询一个内存分区的状态,OSMemQuery()
使用内存分区
等待一个内存块
移植 μC/OS‐Ⅱ
11、移植 μC/OS‐Ⅱ
开发工具
目录和文件
INCLUDES.H移植
OS_CPU.H.移植
OS_CPU_A.ASM.移植
OS_CPU_C.C移植
12、 μC/OS‐II在 NXP公司 LPC17XX上的移植
开发工具
目录和文件
INCLUDES.H文件
OS_CPU.H文件
OS_CPU_A.ASM.
OS_CPU_C.C
内存占用
运行时间
13、多任务操作系统分析
μC/OS‐Ⅱ工程介绍
μC/OS‐Ⅱ工程模板
μC/OS‐Ⅱ的多任务采集系统
移植实际项目实战
应用程序开发
应用程序开发技巧
实时程序多任务处理技巧
实时性检测以及提升
实际项目训练 1
实际项目训练 2