没有合适的资源?快使用搜索试试~ 我知道了~
首页μC/OS-II:源码公开的实时嵌入式操作系统
资源详情
资源评论
资源推荐

第一章:范例 .......................................................................................................................... 1
1.00
安装
µC/OS-II ................................................................................................................. 1
1.01 INCLUDES.H ..................................................................................................... 2
1.02
不依赖于编译的数据类型
................................................................................ 2
1.03
全局变量
........................................................................................................... 3
1.04 OS_ENTER_CRITICAL()
和
OS_EXIT_CRITICAL() ....................................... 5
1.05
基于
PC
的服务
................................................................................................ 6
1.05.01
字符显示
...................................................................................................................... 6
1.05.02
花费时间的测量
.......................................................................................................... 6
1.05.03
其他函数
...................................................................................................................... 7
1.06
应用
µC/OS-II
的范例
...................................................................................... 7
1.07
例
1 .................................................................................................................... 8
1.07.01 main() ........................................................................................................................... 9
1.07.02 TaskStart() .................................................................................................................. 11
1.07.03 TaskN
()
.................................................................................................................. 13
1.08
例
2 ................................................................................................................................... 14
1.08.01 main() ......................................................................................................................... 15
1.08.02TaskStart() ................................................................................................................... 16
1.08.03 TaskN() ....................................................................................................................... 17
1.09
例
3 ................................................................................................................................... 21
1.09.01 main() ......................................................................................................................... 21
1.09.02
任务
............................................................................................................................ 22
1.09.03
注意
............................................................................................................................ 25
第二章实时系统概念......................................................................................................... 28
2.0
前后台系统(
FOREGROUND/BACKGROUND SYSTEM
)
...................................... 28
2.1
代码的临界段
................................................................................................... 29
2.2
资源
................................................................................................................... 29
2.3
共享资源
........................................................................................................... 29
2.4
多任务
............................................................................................................... 29
2.5
任务
................................................................................................................... 30
2.6
任务切换
(CONTEXT SWITCH OR TASK SWITCH) .................................................... 31
2.7
内核(
KERNEL
)
............................................................................................... 31
2.8
调度(
SCHEDULER
)
......................................................................................... 31
2.9
不可剥夺型内核(
NON-PREEMPTIVE KERNEL
)
.............................................. 32
2.10
可剥夺型内核
................................................................................................. 33
2.11
可重入性(
REENTRANCY
)
.............................................................................. 33
2.12
时间片轮番调度法
......................................................................................... 35
2.13
任务优先级
..................................................................................................... 35
2.14
静态优先级
..................................................................................................... 35
2.15
动态优先级
..................................................................................................... 36

2.16
优先级反转
..................................................................................................... 36
2.17
任务优先级分配
............................................................................................. 38
2.18
互斥条件
......................................................................................................... 39
2.18.1
关中断和开中断
.......................................................................................................... 39
2.18.2
测试并置位
.................................................................................................................. 40
2.18.3
禁止
,
然后允许任务切换
............................................................................................. 41
2.18.4
信号量
(Semaphores) .................................................................................................... 42
2.19
死锁
(
或抱死
)
(
DEADLOCK (OR DEADLY EMBRACE)
)
..................................... 46
2.20
同步
................................................................................................................. 46
2.21
事件标志
(EVENT FLAGS) .................................................................................. 48
2.22
任务间的通讯
(INTERTASK COMMUNICATION) ................................................... 49
2.23
消息邮箱
(MESSAGE MAIL BOXES) ..................................................................... 49
2.24
消息队列
(MESSAGE QUEUE) ............................................................................ 50
2.25
中断
................................................................................................................. 51
2.26
中断延迟
......................................................................................................... 51
2.27
中断响应
......................................................................................................... 52
2.28
中断恢复时间
(INTERRUPT RECOVERY) ............................................................. 53
2.29
中断延迟、响应和恢复
................................................................................. 53
2.30
中断处理时间
................................................................................................. 53
2.31
非屏蔽中断
(NMI) ........................................................................................... 54
2.32
时钟节拍
(CLOCK TICK).................................................................................... 56
2.33
对存储器的需求
............................................................................................. 58
2.34
使用实时内核的优缺点
................................................................................. 59
2.35
实时系统小结
................................................................................................. 60
第三章内核结构 ................................................................................................................... 61
3.0
临界段
(CRITICAL SECTIONS) ............................................................................... 61
3.1
任务
................................................................................................................... 61
3.2
任务状态
........................................................................................................... 63
3.3
任务控制块(
TASK CONTROL BLOCKS, OS_TCBS
)
.......................................... 64
3.4
就绪表(
READY LIST
)
...................................................................................... 67
3.5
任务调度(
TASK SCHEDULING
)
....................................................................... 70
3.6
给调度器上锁和开锁
(LOCKING AND UNLOCKING THE SCHEDULER) ................. 71
3.7
空闲任务
(IDLE TASK) ......................................................................................... 73
3.8
统计任务
........................................................................................................... 73
3.9 ΜC/OS
中的中断处理
........................................................................................ 77
3.10
时钟节拍
......................................................................................................... 81
3.11 ΜC/OS-
Ⅱ初始化
.............................................................................................. 85
3.12 ΜC/OS-
Ⅱ的启动
.............................................................................................. 85
3.13
获取当前
Μ C/OS-
Ⅱ的版本号
........................................................................ 88
3.14 OSEVENT???()
函数
.......................................................................................... 89
第四章任务管理 ................................................................................................................... 90

4.0
建立任务,
OSTASKCREATE() ............................................................................ 91
4.1
建立任务,
OSTASKCREATEEXT() ...................................................................... 95
4.2
任务堆栈
........................................................................................................... 98
4.3
堆栈检验,
OSTASKSTKCHK() ......................................................................... 100
4.4
删除任务,
OSTASKDEL() ................................................................................ 103
4.5
请求删除任务,
OSTASKDELREQ() ................................................................. 106
4.6
改变任务的优先级,
OSTASKCHANGEPRIO() ................................................. 109
4.7
挂起任务,
OSTASKSUSPEND() ........................................................................ 112
4.8
恢复任务,
OSTASKRESUME() ......................................................................... 113
4.9
获得有关任务的信息,
OSTASKQUERY()........................................................ 115
第五章时间管理 ................................................................................................................. 117
5.0
任务延时函数,
OSTIMEDLY() ........................................................................ 117
5.1
按时分秒延时函数
OSTIMEDLYHMSM()....................................................... 118
5.2
让处在延时期的任务结束延时,
OSTIMEDLYRESUME() ............................... 120
5.3
系统时间,
OSTIMEGET()
和
OSTIMESET() ..................................................... 122
第六章任务之间的通讯与同步 ................................................................................. 123
6.0
事件控制块
ECB ............................................................................................. 124
6.1
初始化一个事件控制块,
OSEVENTWAITLISTINIT() ....................................... 127
6.2
使一个任务进入就绪态,
OSEVENTTASKRDY() .............................................. 128
6.3
使一个任务进入等待某事件发生状态
, OSEVENTTASKWAIT()....................... 130
6.4
由于等待超时而将任务置为就绪态
, OSEVENTTO() ..................................... 131
6.5
信号量
............................................................................................................. 131
6.5.1
建立一个信号量
, OSSemCreate() ............................................................................... 132
6.5.2
等待一个信号量
, OSSemPend() ................................................................................. 133
6.5.3
发送一个信号量
, OSSemPost() .................................................................................. 135
6.5.4
无等待地请求一个信号量
, OSSemAccept() ............................................................... 136
6.5.5
查询一个信号量的当前状态
, OSSemQuery() ............................................................ 137
6.6
邮箱
.................................................................................................................................. 138
6.6.1
建立一个邮箱,
OSMboxCreate() .............................................................................. 139
6.6.2
等待一个邮箱中的消息,
OSMboxPend() ................................................................. 139
6.6.3
发送一个消息到邮箱中,
OSMboxPost() .................................................................. 141
6.6.4
无等待地从邮箱中得到一个消息
, OSMboxAccept() ................................................ 143
6.6.5
查询一个邮箱的状态
, OSMboxQuery() ..................................................................... 143
6.6.6
用邮箱作二值信号量
.................................................................................................. 144
6.6.7
用邮箱实现延时,而不使用
OSTimeDly() ................................................................ 145
6.7
消息队列
......................................................................................................................... 146
6.7.1
建立一个消息队列,
OSQCreate() ............................................................................. 149
6.7.2
等待一个消息队列中的消息,
OSQPend() ............................................................... 151
6.7.3
向消息队列发送一个消息(
FIFO
),
OSQPost() ..................................................... 153
6.7.4
向消息队列发送一个消息(后进先出
LIFO
),
OSQPostFront() ............................ 155
6.7.5
无等待地从一个消息队列中取得消息
, OSQAccept() ............................................... 156

6.7.6
清空一个消息队列
, OSQFlush() ................................................................................ 157
6.7.7
查询一个消息队列的状态,
OSQQuery() ................................................................. 158
6.7.8
使用消息队列读取模拟量的值
.................................................................................. 159
6.7.9
使用一个消息队列作为计数信号量
.......................................................................... 160
第七章 内存管理............................................................................................................... 162
7.0
内存控制块
..................................................................................................... 163
7.1
建立一个内存分区,
OSMEMCREATE() .......................................................... 164
7.2
分配一个内存块,
OSMEMGET() ................................................................... 166
7.3
释放一个内存块,
OSMEMPUT() ................................................................... 168
7.4
查询一个内存分区的状态,
OSMEMQUERY() ............................................... 169
7.5 USING MEMORY PARTITIONS ............................................................................... 169
7.6
等待一个内存块
............................................................................................. 171
第八章 移植 µC/OS-Ⅱ ................................................................................................. 174
8.0
开发工具
......................................................................................................... 175
8.1
目录和文件
..................................................................................................... 175
8.2 INCLUDES.H ................................................................................................... 176
8.3 OS_CPU.H ....................................................................................................... 176
8.3.1
与编译器相关的数据类型
................................................................................... 177
8.3.2 OS_ENTER_CRITICAL()
和
OS_EXIT_CRITICAL() ............................................ 178
8.3.3 OS_STK_GROWTH .............................................................................................. 179
8.3.4 OS_TASK_SW() ..................................................................................................... 179
8.4 OS_CPU_A.ASM ............................................................................................................ 180
8.4.1 OSStartHighRdy() ................................................................................................. 180
8.4.2 OSCtxSw() ............................................................................................................. 181
8.4.3 OSIntCtxSw() ........................................................................................................ 182
8.4.4 OSTickISR() ........................................................................................................... 184
8.5 OS_CPU_C.C ................................................................................................................. 185
8.5.1 OSTaskStkInt() ....................................................................................................... 185
8.5.2 OSTaskCreateHook() ............................................................................................. 187
8.5.3 OSTaskDelHook() .................................................................................................. 188
8.5.4 OSTaskSwHook() ................................................................................................... 188
8.5.5 OSTaskStatHook() ................................................................................................. 188
8.5.6 OSTimeTickHook() ................................................................................................ 188
第九章 µC/OS-II 在 80X86 上的移植 ................................................................... 193
9.0
开发工具
......................................................................................................... 195
9.1
目录和文件
..................................................................................................... 195
9.2 INCLUDES.H
文件
.......................................................................................... 195
9.3 OS_CPU.H
文件
.............................................................................................. 196
9.3.1
数据类型
..................................................................................................................... 199

9.3.2
代码临界区
................................................................................................................. 199
9.3.3
堆栈增长方向
............................................................................................................. 200
9.3.4 OS_TASK_SW() ............................................................................................................ 200
9.3.5
时钟节拍的发生频率
................................................................................................. 200
9.4 OS_CPU_A.ASM ............................................................................................................ 200
9.4.1 OSStartHighRdy() ........................................................................................................ 200
9.4.2 OSCtxSw() .................................................................................................................... 202
9.4.3 OSIntCtxSw() ............................................................................................................... 203
9.4.4 OSTickISR() .................................................................................................................. 207
9.5 OS_CPU_C.C ................................................................................................................. 211
9.5.1 OSTaskStkInit() ............................................................................................................ 212
9.6
内存占用
......................................................................................................... 214
9.7
运行时间
......................................................................................................... 214
第十章从 µC/OS 升级到 µC/OS-II .................................................................... 226
10.0
目录和文件
................................................................................................... 226
10.1 INCLUDES.H ................................................................................................. 227
10.2 OS_CPU.H ..................................................................................................... 227
10.2.1
与编译有关的数据类型
s ........................................................................................ 227
10.2.2 OS_ENTER_CRITICAL()
和
OS_EXIT_CRITICAL()................................................. 229
10.2.3 OS_STK_GROWTH ................................................................................................... 229
10.2.4 OS_TASK_SW() .......................................................................................................... 229
10.2.5 OS_FAR ...................................................................................................................... 229
10.3 OS_CPU_A.ASM .......................................................................................................... 230
10.3.1 OSStartHighRdy() ...................................................................................................... 230
10.3.2 OSCtxSw() .................................................................................................................. 231
10.3.3 OSIntCtxSw() ............................................................................................................. 231
10.3.4 OSTickISR() ................................................................................................................ 232
10.4 OS_CPU_C.C ............................................................................................................... 232
10.4.1 OSTaskStkInit() .......................................................................................................... 232
10.4.2 OSTaskCreateHook() .................................................................................................. 234
10.4.3 OSTaskDelHook()....................................................................................................... 235
10.4.4 OSTaskSwHook() ........................................................................................................ 235
10.4.5 OSTaskStatHook() ...................................................................................................... 236
10.4.6 OSTimeTickHook() ..................................................................................................... 236
10.5
总结
................................................................................................................................ 236
第 11 章参考手册 ............................................................................................................... 238
第 12 章配置手册............................................................................................................... 289
剩余297页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1