嵌入式实时操作系统μC/OS原理与实践(第2版)pdf下载

嵌入式实时操作系统μC/OS原理与实践(第2版)百度网盘pdf下载

作者:
简介:嵌入式实时操作系统μC/OS原理与实践(第2版)
出版社:电子工业出版社
出版时间:2014-04-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介
  本书内容包括:实时操作系统基础、任务管理、中断和时间管理、事件管理、消息管理、内存管理、移植、μC/OS-II工程实例、μC/OS-III分析及工程实例等。本书内容翔实嘌文并茂,采用逐步深入、反复印证的方法,从数据结构的设计入手,再到代码分析、示例验证的剖析方法,逐层深入讲解,给出在虚拟平台下的移植示例和针对各章内容示例,并给出了基于ARM Cortex M3内核的STM32系统上移植和工程实例。
作者简介
  1994-2001在天津MOTOLORA电子有限公司从事研发工作,2004至今在成都电子科技大学自动化工程学院任教,教授操作系统、汇编语言程序设计等课程,并著有多部计算机方面的专著。
目录
版权信息
前言
第1章 实时操作系统基础
1.1 操作系统概述
1.1.1 什么是操作系统
1.1.2 操作系统基本功能
1.2 实时操作系统概述
1.2.1 什么是实时操作系统
1.2.2 实时操作系统的基本特征
1.3 任务
1.3.1 任务简介
1.3.2 多任务
1.3.3 任务状态
1.3.4 任务切换
1.3.5 可重入函数和不可重入函数
1.4 基于优先级的可剥夺内核
1.4.1 内核
1.4.2 基于优先级的调度算法
1.4.3 不可剥夺型内核和可剥夺型内核
1.5 同步与通信
1.5.1 同步
1.5.2 互斥
1.5.3 临界区
1.5.4 事件
1.5.5 信号量
1.5.6 互斥信号量
1.5.7 事件标志组
1.5.8 消息邮箱和消息队列
1.6 时钟和中断
1.7 内存管理
1.8 嵌入式实时操作系统μC/OS学习开发指引
习题
第2章 任务管理
2.1 任务管理数据结构
2.1.1 任务控制块
2.1.2 空闲链表和就绪链表
2.1.3 任务优先级指针表
2.1.4 任务堆栈
2.1.5 任务就绪表和就绪组
2.2 任务控制块初始化
2.2.1 代码解析
2.2.2 流程分析
2.3 操作系统初始化
2.3.1 代码解析
2.3.2 流程分析
2.4 任务的创建
2.4.1 OSTaskCreate代码解析
2.4.2 OSTaskCreate流程分析
2.4.3 OSTaskCreateExt代码解析
2.4.4 OSTaskCreateExt流程分析
2.5 任务的删除
2.5.1 任务删除代码解析
2.5.2 任务删除流程分析
2.5.3 请求删除任务代码解析
2.5.4 请求删除任务流程
2.6 任务挂起和恢复
2.6.1 OSTaskSuspend代码解析
2.6.2 OSTaskSuspend流程分析
2.6.3 OSTaskResume代码解析
2.6.4 OSTaskResume流程分析
2.7 任务的调度和多任务的启动
2.7.1 任务调度器
2.7.2 任务切换函数
2.7.3 中断中的任务调度
2.7.4 多任务的启动
2.8 特殊任务
2.8.1 空闲任务OS TaskⅠdle
2.8.2 统计任务OS TaskStat
2.9 任务管理总结
习题
第3章 中断和时间管理
3.1 中断管理
3.1.1 中断管理核心思路
3.1.2 中断处理的流程
3.1.3 时钟中断服务
3.2 时间管理
3.2.1 时间管理主要数据结构
3.2.2 时间的获取和设置
3.2.3 任务延时函数OSTimeDly
3.2.4 任务按分秒延迟函数OSTimeDlyHMSM
3.2.5 延时恢复函数OSTimeDlyResume
习题
第4章 事件管理
4.1 事件管理的重要数据结构
4.1.1 事件控制块(ECB)
4.1.2 事件等待组和事件等待表
4.1.3 事件控制块空闲链表
4.2 事件管理程序
4.2.1 事件控制块(ECB)初始化
4.2.2 事件等待表初始化
4.2.3 设置事件等待
4.2.4 取消事件等待
4.2.5 将等待事件的任务就绪
4.3 信号量管理
4.3.1 信号量的建立OSSemCreate
4.3.2 信号量的删除OSSemDel
4.3.3 请求信号量OSSemPend
4.3.4 提交信号量
4.3.5 无等待请求信号量
4.3.6 放弃等待信号量
4.3.7 信号量值设置
4.3.8 查询信号量状态
4.3.9 信号量应用举例
4.4 互斥信号量管理
4.4.1 互斥信号量的建立
4.4.2 请求互斥信号量
4.4.3 互斥信号量的删除
4.4.4 发互斥信号量
4.4.5 无等待请求互斥信号量
4.4.6 查询互斥信号量状态
4.4.7 改变任务的优先级并重新就绪
4.4.8 互斥信号量应用举例
4.5 事件标志组管理
4.5.1 事件标志组数据结构
4.5.2 事件标志组初始化
4.5.3 创建事件标志组
4.5.4 事件标志组阻塞函数
4.5.5 请求事件标志
4.5.6 删除事件标志组
4.5.7 提交事件标志组
4.5.8 标志节点任务就绪
4.5.9 无等待的请求事件标志
4.5.10 事件标志管理应用举例
习题
第5章 消息管理
5.1 消息邮箱
5.1.1 建立消息邮箱
5.1.2 等待消息
5.1.3 发消息
5.1.4 删除消息邮箱
5.1.5 放弃等待邮箱
5.1.6 无等待请求消息
5.1.7 查询消息邮箱状态
5.1.8 消息邮箱的例子
5.2 消息队列
5.2.1 消息队列数据结构
5.2.2 初始化消息队列
5.2.3 建立消息队列
5.2.4 发消息到消息队列
5.2.5 等待消息队列中的消息
5.2.6 删除消息队列
5.2.7 取得消息队列的状态
5.2.8 消息队列应用举例
习题
第6章 内存管理
6.1 内存管理数据结构
6.1.1 内存控制块
6.1.2 内存控制块实体
6.1.3 空闲内存控制块链表
6.1.4 内存分区
6.2 内存控制块初始化
6.3 创建内存分区
6.4 内存分区获取
6.5 内存分区释放
6.6 查询内存分区的状态
6.7 内存管理实例
习题
第7章 移植
7.1 移植说明
7.1.1 μC/OS-ⅠⅠ的代码结构
7.1.2 操作系统中与CPU相关的代码解析
7.1.3 μC/OS-ⅠⅠ移植步骤
7.2 在Visual C++6.0上实现基于Windows的虚拟μC/OS-ⅠⅠ移植
7.2.1 目录结构和工程的建立
7.2.2 包含文件includes.h
7.2.3 os cpu.h中修改的代码
7.2.4 os cpu.c中修改的代码
7.2.5 主程序代码实现
7.2.6 移植测试
7.3 μC/OS-ⅠⅠ在ARM Cortex M3下的移植
7.3.1 与移植相关的ARM Cortex M3研究
7.3.2 os cpu.h代码解析
7.3.3 os cpu c.c移植代码解析
7.3.4 os cpu a.asm移植代码解析
7.3.5 移植后的目录结构
习题
第8章 工程实践
8.1 工程需求说明
8.2 分析
8.3 工程设计
8.3.1 整体设计
8.3.2 主机硬件接口设计
8.3.3 多任务设计
8.3.4 串口数据格式
8.4 程序设计
8.4.1 主程序
8.4.2 串口中断服务程序
8.4.3 缓冲区处理任务代码
8.4.4 显示任务代码
8.4.5 AD 采集任务代码
8.4.6 触摸屏任务代码
8.4.7 μC/GUⅠ消息处理任务代码
8.4.8 启动任务代码
8.4.9 工程代码结构
8.5 运行测试
习题
设计题
第9章 μC/OS-Ⅲ分析、移植与应用实践
9.1 本章说明
9.2 μC/OS-ⅠⅠⅠ代码结构
9.3 μC/OS-ⅠⅠⅠ在STM32上的移植
9.3.1 os cpu.h代码
9.3.2 os cpu c.c移植代码
9.3.3 os cpu a.asm移植代码
9.4 μC/OS-ⅠⅠⅠ函数
9.4.1 任务管理函数
9.4.2 时间管理函数
9.4.3 信号量管理函数
9.4.4 互斥信号量管理函数
9.4.5 消息队列管理函数
9.4.6 中断管理函数
9.4.7 内核函数
9.5 μC/OS-ⅠⅠⅠ工程示例
9.5.1 工程分组
9.5.2 主程序
9.5.3 串口中断服务程序
9.5.4 缓冲区处理任务代码
9.5.5 显示任务代码
9.5.6 启动任务代码
9.5.7 其他代码
9.5.8 运行测试
习题
设计题
附录A 亮点STM32开发板资源
A.1 硬件资源概述
A.2 硬件资源按引脚分配
A.3 接口描述
A.4 软件资源
A.5 网络资源
参考文献
前言
  前言
  智能系统的盛行使21世纪前10年成为手指尖在触摸屏上滑动拖曳的时代。不少高级科技人员解决了一个又一个困难,使裸奔的软件在中断和循环的纠缠中走了很远很久。在ARM处理器走出江湖之后,处理器的处理速度和闪存Flash、静态存储器SRAM的容量都飞速提升,高性能处理器的出现也使高端的复杂处理程序采用嵌入式来实现,如物联网、智能手机。存储容量的扩充使嵌入式操作系统有了用武之地。在STM32使用的ARM Cortex处理器中,具有主堆栈MSP和进程堆栈PSP,具有PendSV和Systick中断,这些很明显是配合了μC/OS操作系统。
  本书的第1版内容充实,有流程图等辅助手段,笔者在博客提供了PPT、实验教程和代码,受到了读者的好评,并被一些有所作为的老师引为教材,不少工程师也因此尝到了熟读代码的甜头。因此,第2版的创作有了足够的动力。这本书是笔者独自完成的,第2版的改版经过和很多读者的交流及论坛的咨询交流。第1版的缺陷也显而易见,缺少了硬件平台,只是在VC下仿真学习。因此,笔者设计的亮点STM32开发板弥补了这一个缺陷,也是第2版修改和增加的移植、工程实例及μC/OS-III的基础平台。当然,实验平台是选项,如果喜欢在VC下学习仍然是可以的,而在其他嵌入式系统及开发板下对笔者提供的代码的配置信息进行修改,也可以胜任。
  第2版中将提供在STM32(ARM Cortex内核系列芯片)下的移植和例程,增加应用性的工程示例。2013年μC/OS-III逐步进入市场,第2版也包含了这方面的内容。为方便读者阅读代码,本书目前配套的亮点嵌入式开发板的资源也在附录中列出,不选择开发板的同样可以下载代码。另外以技术论坛作为交流平台或翻转课堂,论坛地址在序言最后给出。
  内容划分
  第1章是操作系统和嵌入式实时操作系统的基本原理。第2章是操作系统最核心的任务管理,需要对数据结构和源代码仔细体会。第3章是中断和事件管理。第4章、第5章是事件和消息部分,包含了各种事件和消息机制。第6章是内存管理。第7章是移植的流程分析和在虚拟平台及STM32下的移植。第8章是全新的工程实践部分,给出一个在STM32下的完整的工程示例。第9章是与时俱进的μC/OS-III,并将工程实践的代码在μC/OS-III上实现了一遍。
  本书特色
  ●采用逐步深入,反复印证的方法。
  ●采用从数据结构的设计入手,再到代码分析、示例验证的剖析方法。给出在虚拟平台下的移植示例和针对各章内容的示例。
  ●给出在实际嵌入式系统下的工程示例。
  ●表格、图形化的风格。
  ●适用面广,适合于广大IT类学生及工作者。
  ●对于没有学习过操作系统原理的读者无障碍。
  ●与时俱进地扩展到μC/OS-III。
  ●学习本课程的先导知识是C语言、软件技术基础或数据结构,可以同步学习微机原理或嵌入式系统设计。另外,本人的另一本著作《基于STM32的嵌入式系统原理与设计》可以与本书交相辉映。
  作为本科生等教材的建议是:第1、2、3章详细讲解,第4、5、6章的内容每章选择2~3节讲解。第7、8章的内容可作为实践部分。另外如果要上实验,则可以选择在Windows下的虚拟实验,在论坛和博客提供有实验的PPT和代码。另外,也可以选择使用亮点STM32开发板作为实验教学平台。本书在每章后提供了习题,笔者也编写了PPT,适合32~48学时对高年级本科生或低年级研究生讲授。同时欢迎广大技术人员引为学习资料,欢迎进论坛和访问笔者的博客进行交流。
  没有资源只有一本书不能成为平台,亮点嵌入式就是这么一个平台,本书就是核心。本书相关资源地址如下:
  ●亮点嵌入式技术交流论坛http://www.eeboard.com/bp。
  ●笔者新浪博客http://blog.sina.com.cn/u/2630123921。
  ●配套μC/OS开发板(教学实验):http://brightpoint.taobao.com(唯一地址,非免费)。
  目前可以提供的资源主要有:
  ●教学课件。
  ●15个学时的实验教程代码和PPT。
  ●亮点STM32开发板及配套μC/OS实例代码。
  感谢读者对本书的认可,欢迎读者到论坛和博客获取资料、交流及提出宝贵意见。
  笔者
  2014年于成都