图书介绍

嵌入式实时操作系统μC/OS-3pdf电子书版本下载

嵌入式实时操作系统μC/OS-3
  • (美)拉伯罗斯(JEANJ.LABROSSE)著;宫辉,曾鸣,龚光华等译;邵贝贝审校 著
  • 出版社: 北京:北京航空航天大学出版社
  • ISBN:9787512409668
  • 出版时间:2012
  • 标注页数:536页
  • 文件大小:246MB
  • 文件页数:562页
  • 主题词:实时操作系统-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

嵌入式实时操作系统μC/OS-3PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述 1

1.1 前后台系统 2

1.2 实时内核 3

1.3 RTOS(实时操作系统) 4

1.4 μC/OS-Ⅲ 5

1.5 μC/OS、μC/OS-Ⅱ、μC/OS-Ⅲ特性比较 8

1.6 关于本书 10

1.7 μC/Probe调试软件工具 10

1.8 本书的常用约定 11

1.9 各章内容 11

第2章 目录与文件 14

2.1 应用代码 16

2.2 CPU 17

2.3 板级支持包(BSP) 17

2.4 μC/OS-Ⅲ与CPU无关的源代码 18

2.5 μC/OS-Ⅲ与CPU相关的源代码 21

2.6 μC/CPU与CPU相关的源代码 22

2.7 μC/LIB可移植的库函数 24

2.8 小结 26

第3章 初识μC/OS-Ⅲ 28

3.1 单任务应用程序 28

3.2 有内核对象参与的多任务应用程序 34

第4章 临界段代码 41

4.1 关中断 41

4.1.1 测量中断关闭时间 42

4.2 给调度器上锁 42

4.2.1 测量调度器锁定时间 43

4.3 μC/OS-Ⅲ的某些功能会导致临界段代码长度增加 44

4.4 小结 44

第5章 任务管理 46

5.1 任务优先级的分配 52

5.2 栈空间大小的确定 54

5.3 任务栈溢出检测 55

5.4 任务管理函数 58

5.5 任务管理的内部原理 59

5.5.1 任务状态 59

5.5.2 任务控制块TCB 64

5.6 系统内部任务 74

5.6.1 空闲任务(OS-IdleTask()、os_core.c) 75

5.6.2 时钟节拍任务(OS_TickTask()、os_tick.c) 76

5.6.3 统计任务(OS_StatTask()、os_stat.c) 82

5.6.4 定时任务(OS_TmrTask()、os_tmr.c) 85

5.6.5 中断服务管理任务(OS_IntQTask()、os_int.c) 86

5.7 小结 87

第6章 任务就绪表 88

6.1 优先级 88

6.2 就绪任务列表 92

6.3 向就绪任务列表中增加任务 95

6.4 小结 96

第7章 任务调度 97

7.1 可剥夺型调度 97

7.2 调度点 99

7.3 时间片轮转调度 101

7.4 调度的实现细节 102

7.4.1 OSSched() 103

7.4.2 OSIntExit() 104

7.4.3 OS_SchedRoundRobin() 105

7.5 小结 106

第8章 任务切换 107

8.1 OSCtxSw() 109

8.2 OSIntCtxSw() 111

8.3 小结 113

第9章 中断管理 114

9.1 CPU的中断处理 115

9.2 典型的μC/OS-Ⅲ中断服务程序 115

9.3 无需内核参与的中断服务程序 118

9.4 多中断优先级的处理器 118

9.5 所有中断源共用中断服务程序 120

9.6 每个中断源都有专用中断服务程序 121

9.7 直接发布和延迟发布 122

9.7.1 直接发布 122

9.7.2 延迟发布 124

9.8 直接发布模式和延迟发布模式的对比 126

9.9 时钟节拍(或系统节拍) 127

9.10 小结 129

第10章 任务挂起表 130

10.1 小结 134

第11章 时间管理 135

11.1 OSTimeDly() 135

11.2 OSTimeDlyHMSM() 139

11.3 OSTimeDlyResume() 141

11.4 OSTimeSet()和OSTimeGet() 142

11.5 OSTimeTick() 142

11.6 小结 142

第12章 定时器管理 143

12.1 单次定时器 144

12.2 周期定时器(无初始延迟) 145

12.3 周期定时器(有初始延迟) 146

12.4 定时器管理内部机制 147

12.4.1 定时器管理内部机制——定时器状态 147

12.4.2 定时器管理内部机制——os_tmr 148

12.4.3 定时器管理内部机制——定时器任务 149

12.4.4 定时器管理内部机制——定时器列表 151

12.5 小结 156

第13章 资源管理 157

13.1 关中断/开中断 159

13.2 给调度器上锁/开锁 160

13.3 信号量 161

13.3.1 二进制信号量 162

13.3.2 计数型信号量 168

13.3.3 使用信号量的注意事项 170

13.3.4 (用来共享资源的)信号量内部结构 170

13.3.5 优先级反转 174

13.4 互斥型信号量(MUTEX) 176

13.4.1 互斥型信号量的内部结构 180

13.5 何时可以用普通信号量替代互斥型信号量 184

13.6 死锁(或抱死) 184

13.7 小结 187

第14章 任务同步 189

14.1 信号量 189

14.1.1 单向同步 190

14.1.2 信用记录 193

14.1.3 多个任务等待同一个信号量 194

14.1.4 信号量的内部结构(以同步为目的) 195

14.2 任务信号量 200

14.2.1 等待任务信号量 201

14.2.2 发布任务信号量 202

14.2.3 双向同步 203

14.3 事件标志组 205

14.3.1 使用事件标志 206

14.3.2 事件标志的内部结构 210

14.4 与多任务同步 215

14.5 小结 216

第15章 消息传递 217

15.1 消息 217

15.2 消息队列 218

15.3 任务内建的消息队列 219

15.4 双向同步 220

15.5 流量控制 221

15.6 保持数据的可见性 223

15.7 使用消息队列 224

15.8 客户端和服务器 231

15.9 消息队列内部的细节 232

15.10 小结 235

第16章 同时等待多个内核对象 236

16.1 小结 242

第17章 存储管理 243

17.1 创建存储分区 244

17.2 从分区中获得存储块 247

17.3 将存储块归还到分区中 248

17.4 使用存储分区 249

17.5 小结 251

第18章 移植μC/OS-Ⅲ 252

18.1 约定 254

18.2 μC/CPU 255

18.2.1 CPU_BSP.H 256

18.2.2 CPU_DEF.H 256

18.2.3 CPU_CFG.H 256

18.2.4 CPU_CORE.C 257

18.2.5 CPU_CORE.H 258

18.2.6 CPU.H 258

18.2.7 CPU_C.C 261

18.2.8 CPU_A.ASM 261

18.3 μC/OS-Ⅲ移植 262

18.3.1 OS_CPU.H 263

18.3.2 OS_CPU_C.C 264

18.3.3 OS_CPU_A.ASM 270

18.3.4 OS_CPU_A.INC 275

18.4 板级支持包(BSP) 278

18.4.1 BSP.C和BSP.H 279

18.4.2 BSP_INT.C和BSP_INT.H 280

18.5 移植的测试 281

18.5.1 创建一个简单的测试工程 281

18.5.2 验证任务级任务切换 285

18.5.3 验证中断级任务切换 290

18.6 小结 293

第19章 程序运行时的各类统计信息 295

19.1 程序运行时的总体统计信息 295

19.2 程序运行时每个任务的统计信息 299

19.3 程序运行时和内核对象相关的统计信息 302

19.4 OS_DBG.C——编译时(静态)的统计信息 305

19.5 OS_CFG_APP.C——编译时(静态)的统计信息 316

19.6 小结 318

附录A μC/OS-Ⅲ API参考手册 319

A.1 任务管理 319

A.2 时间管理 321

A.3 互斥型信号量——资源管理 321

A.4 事件标志组——同步 322

A.5 信号量——同步 323

A.6 任务信号量——同步 324

A.7 消息队列——消息传递 325

A.8 任务消息队列——消息传递 326

A.9 等待多个对象 327

A.10 定时器 328

A.11 固定大小的存储分区——存储管理 329

A.12 OSCtxSw() 330

A.13 OSFlagCreate() 331

A.14 OSFlagDel() 333

A.15 OSFlagPend() 334

A.16 OSFlagPendAbort() 337

A.17 OSFlagPendGetFlagsRdy() 339

A.18 OSFlagPost() 341

A.19 OSIdleTaskHook() 343

A.20 OSInit() 344

A.21 OSInitHook() 348

A.22 OSIntCtxSw() 349

A.23 OSIntEnter() 350

A.24 OSIntExit() 351

A.25 OSMemCreate() 352

A.26 OSMemGet() 354

A.27 OSMemPut() 356

A.28 OSMutexCreate() 357

A.29 OSMutexDel() 359

A.30 OSMutexPend() 360

A.31 OSMutexPendAbort() 363

A.32 OSMutexPost() 365

A.33 OSPendMulti() 367

A.34 OSQCreate() 370

A.35 OSQDel() 372

A.36 OSQFlush() 374

A.37 OSQPend() 376

A.38 OSQPendAbort() 379

A.39 OSQPost() 381

A.40 OSSafetyCriticalStart() 384

A.41 OSSched() 384

A.42 OSSchedLock() 386

A.43 OSSchedRoundRobinCfg() 387

A.44 OSSchedRoundRobinYield() 388

A.45 OSSchedUnlock() 389

A.46 OSSemCreate() 390

A.47 OSSemDel() 392

A.48 OSSemPend() 394

A.49 OSSemPendAbort() 397

A.50 OSSemPost() 399

A.51 OSSemSet() 401

A.52 OSStart() 402

A.53 OSStartHighRdy() 403

A.54 OSStatReset() 404

A.55 OSStatTaskCPUUsageInit() 405

A.56 OSStatTaskHook() 406

A.57 OSTaskChangePrio() 407

A.58 OSTaskCreate() 409

A.59 OSTaskCreateHook() 418

A.60 OSTaskDel() 419

A.61 OSTaskDelHook() 421

A.62 OSTaskQFlush() 422

A.63 OSTaskQPend() 424

A.64 OSTaskQPendAbort() 427

A.65 OSTaskQPost() 429

A.66 OSTaskRegGet() 431

A.67 OSTaskRegSet() 432

A.68 OSTaskReturnHook() 434

A.69 OSTaskResume() 436

A.70 OSTaskSemPend() 437

A.71 OSTaskSemPendAbort() 440

A.72 OSTaskSemPost() 441

A.73 OSTaskSemSet() 443

A.74 OSStatTaskHook() 444

A.75 OSTaskStkChk() 445

A.76 OSTaskStkInit() 447

A.77 OSTaskSuspend() 451

A.78 OSTaskSwHook() 452

A.79 OSTaskTimeQuantaSet() 454

A.80 OSTickISR() 456

A.81 OSTimeDly() 457

A.82 OSTimeDlyHMSM() 459

A.83 OSTimeDlyResume() 461

A.84 OSTimeGet() 463

A.85 OSTimeSet() 464

A.86 OSTimeTick() 465

A.87 OSTimeTickHook() 465

A.88 OSTmrCreate() 467

A.89 OSTmrDel() 472

A.90 OSTmrRemainGet() 473

A.91 OSTmrStart() 475

A.92 OSTmrStateGet() 476

A.93 OSTmrStop() 478

A.94 OSVersion() 480

附录B μC/OS-Ⅲ配置手册 481

B.1 μC/OS-Ⅲ的功能(os_cfg.h) 483

B.2 μC/OS-Ⅲ的数据类型(os_type.h) 492

B.3 μC/OS-Ⅲ的堆栈、池和其他数据类型(os_cfg_app.h) 493

附录C 从μC/OS-Ⅱ迁移到μC/OS-Ⅲ 497

C.1 源文件名称和内容的差异 498

C.2 编程约定的变化 501

C.3 变量名称的变化 506

C.4 API的变化 507

C.4.1 事件标志 507

C.4.2 消息邮箱 509

C.4.3 存储管理 511

C.4.4 互斥型信号量 513

C.4.5 消息队列 514

C.4.6 信号量 516

C.4.7 任务管理 518

C.4.8 时间管理 523

C.4.9 定时器管理 524

C.4.10 其他 526

C.4.11 介入函数与系统移植 528

附录D MISRA-C:2004和μC/OS-Ⅲ 531

D.1 MISRA-C:2004,规则8.5(强制) 531

D.2 MISRA-C:2004,规则8.12(强制) 532

D.3 MISRA-C:2004,规则14.7(强制) 532

D.4 MISRA-C:2004,规则15.2(强制) 533

D.5 MISRA-C:2004,规则17.4(强制) 534

附录E 参考文献 535

附录F μC/OS-Ⅲ许可政策 536

精品推荐