嵌入式操作系统原理与应用

出版社:7-122
出版日期:2007-8
ISBN:9787122008190
作者:吴旭光
页数:283页

媒体关注与评论

前言当前,随着计算机科学与技术的发展,计算机和网络已经全面渗透到人们的日常生活、工业过程以及许多领域。对于每个人来说,后PC时代的需要不再仅仅是那种放在桌面上处理文档、进行科学计算、工程管理和生产控制的台式计算机。而是包括各种PDA、MP3、网络家电、智能家电,也包括诸如工业机器人、智能仪表、监测监控和复杂的武器系统等设备,所有这些设备都将拥有至少一颗“芯”。例如,现代豪华汽车,德国BMW的7系列车,其内部安装有近70个控制器,主要控制软件大于60MB。而在这些控制器、设备和仪器中负责管理CPU和用户应用程序的就是操作系统。但是台式计算机的操作系统和人们说到的这些设备中的操作系统有非常大的区别,常将后一种操作系统称为嵌入式操作系统,也是本书所要讲解的操作系统。 嵌入式系统技术是建立在操作系统、计算机结构和组成、计算机接口技术、计算机语言、电子线路、数字电路、控制理论、计算方法和计算机技术等学科上的一门综合性很强的技术科学。目前,大学中许多专业都已经将有关嵌入式系统的课程作为其专业基础课程开设。 随着嵌入式技术的普及和应用范围的拓宽,嵌入式系统的复杂性和规模都在提高。尤其是近10年来,嵌入式实时操作系统得到了飞速的发展,从支持8位处理器到16 位、32位甚至64位。从支持单一品种的微处理器芯片到支持多种微处理器芯片,从只有实时内核到除了内核外,还提供其他功能模块,如高速文件系统、TCP/IP网络系统、GUI系统等。另外又因为嵌入式系统具备硬件平台和软件平台的多样性和应用个性化的特点,因此包括嵌入式系统硬件和软件产品都呈现出一种高度细分的市场格局。即不可能像台式机的硬件结构和Windows操作系统那样,出现一种产品能够垄断整个市场。嵌入式系统的这个特点不但为我国的嵌入式产品的研制和开发提供了一个难得的发展机遇,也决定了市场对嵌入式系统技术开发人员的大量需求。为此,目前全国各高校大多已经开设嵌入式系统类的课程。 这次在西北工业大学教务处和化学工业出版社的大力支持下,也参照了国内外的许多教材和专著,结合西北工业大学自动化类专业的教学特点,以及作者对嵌入式系统的开发经验,编写这部教材。考虑到本书的读者大多数是嵌入式系统的应用者,非计算机专业毕业,没有学习过计算机操作系统的课程。因此,本书不但深入浅出地介绍计算机操作系统有关的基础知识,为帮助读者建立嵌入式操作系统打下基础,并建立设计嵌入式操作系统的基本概念,而且还针对嵌入式系统开发的特点,向读者介绍了嵌入式硬件平台的基本结构。通过本书的学习,不但使读者能全面地学习到嵌入式操作系统的概念,也能够使读者对嵌入式系统有更全面的学习和理解,因此本书更加适合目前的教学大纲要求。 全书共分11章。主要内容如下。 第1章嵌入式操作系统的概念。本章介绍计算机操作系统有关的基础知识,为帮助读者建立嵌入式操作系统打下基础,并建立设计嵌入式操作系统的基本概念。本章的内容包括操作系统的概念和结构、嵌入式系统的原理和结构、嵌入式系统软件开发设计、商用嵌入式操作系     统等。 第2章嵌入式系统的硬件构成。本章将向读者介绍嵌入式实时操作系统硬件的基本原理和结构,包括系统的基本结构和开发环境、嵌入式实时操作系统的任务、任务编程和调度、任务间通信、中断处理机制等内容。 第3章ARM体系结构。本章主要介绍嵌入式硬件系统的组成、嵌入式处理器的特点和选型。本章以目前使用最多的嵌入式微处理器ARM系列为主,讲解嵌入式微处理器的结构和指令、嵌入式系统的存储器结构、输入/输出接口和设备等内容。 第4章嵌入式实时操作系统内核。本章介绍RTOS的结构和功能,包括内核、任务、任务的调度等。另外以VxWorks的实时内核Wind和任务编程接口为实例。本章也是各章的重要    基础。 第5章任务间通信。实时内核的主要部分是任务,内核中多个任务之间不可避免地存在相互协同的关系,来完成一定的内核功能,这种协同最直观的就是任务间相互通信。嵌入式操作系统一般都会提供许多任务间通信的方法。本章对于每一种通信机制,均从主要数据结构、功能和有关的资源配置等方面讲解。希望通过本章的学习,读者能够了解实时多任务操作系统的同步、互斥与通信机制的基本原理,以便在做具体应用开发时能够正确、合理地使用。 对于嵌入式系统开发者来说,中断、异常和定时都是必须要面对的工作,它们不但是RTOS中非常重要的概念,也是利用RTOS开发正确、高效应用程序的重要基础。因此正确理解中断和定时的机制,对于用户开发操作系统和设计应用程序都是十分有意义的。因此在第6章向读者介绍操作系统内核的两个主要功能:中断和定时,在此基础上,进一步结合VxWorks来阐述这些概念。 第7章介绍嵌入式系统中的I/O子系统。一般的操作系统提供I/O系统、文件系统和网络系统的主要目的,就是为应用层提供标准的设备驱动接口,以最大程度地屏蔽应用层对硬件的相关性,来减轻开发者对底层硬件和操作系统的依赖性。本章是先介绍嵌入式系统的基本I/O操作机制,最后还是以VxWorks的I/O系统为对象介绍实时内核的I/O系统的开发和应用。 第8章是VxWorks文件系统。所谓文件系统,是指操作系统中用来组织、存储和命名文件的结构。本章将介绍dosFs文件系统、rawFs原始文件系统、tapeFs磁带文件系统、CD_ROM文件系统和目标服务器文件系统。 第9章内存管理。嵌入式系统开发者通常在基本RTOS提供的基础上制定内存管理功能。因此,了解操作系统的内存管理成为开发嵌入式系统的一个重要方面,对嵌入式系统的内存管理有充分的了解,对系统开发者也是有利的。这也是本章编排的初衷。 系统引导程序及调试环境的建立是第10章的内容。本章将从嵌入式系统的软件结构、系统启动流程、 引导装载程序的概念和主要任务以及引导装载程序与板级支持包的对比等四个方面来讨论嵌入式系统的引导机制。最后将给出笔者在s3c44b0x开发板上开发VxWorks的板级支持包过程,并详细分析了开发流程,对于初次涉足嵌入式操作系统开发的读者提供很好的实例。 第11章涉及嵌入式系统的开发方法。本章首先介绍嵌入式系统的开发模式,重点讨论如何选择处理器和硬件开发平台、操作系统和开发环境等问题。这些对后续的嵌入式系统软件开发有很大的影响。第3小节介绍实时软件设计方法。第4小节介绍嵌入式系统的软件/硬件协同设计问题。最后,还要向读者介绍目前嵌入式系统的最新开发方法,即快速控制原型和硬件在回路的仿真。以便读者在今后的嵌入式系统开发中能够应用最新的技术和最新的方法来完成自己的设计。 嵌入式系统是一门涉及面较广的学科,就嵌入式系统本身来看,可分硬件平台和软件平台,而软件平台又分为底层的操作系统内核和I/O驱动以及上层的应用程序。本书仅介绍嵌入式系统中软件平台的底层,即嵌入式操作系统的内核和I/O驱动。其他部分本书仅仅作了扼要的介绍,在实际嵌入式系统开发中,读者还需要进一步学习嵌入式系统的硬件平台结构和上层应用程序的开发技术。 在本书的编写和使用过程中,西北工业大学自动化教研室和自动控制理论教研室的许多老师都曾给予了极大的帮助,许多与作者有过合作的研究所的工程师也提出过许多具体和中肯的意见。尤其是作者的研究生王慧、王欢、赵勋峰、王艳、张朝、苏娟、陈兴隆、张竞凯、刘鲁玉、张佐经等也都参与了本书编写的前期准备工作,在此表示衷心的感谢。许多使用过本书讲义的学生也曾经提出过许多宝贵的意见,也向他们表示深深的谢意。 本书的编写还参阅了大量的文献,这些文献给我们不少启迪,在此向引用这些文献的作者表示感谢。 最后,第一作者还要感谢他的夫人和女儿长期对他的教学和科研工作给予的支持和鼓励,在生活中给予的关怀,也正是这些支持、鼓励和关怀,不断激励作者的向上精神。 由于编者水平有限,不妥之处在所难免,敬请读者给予批评指正。       编  者       2007年6月

书籍目录

1 嵌入式操作系统的概念 1 1.1 操作系统的概念和结构 1 1.2 操作系统的功能和主要特征 2 1.2.1 操作系统的功能 2 1.2.2 操作系统的主要特征 5 1.3 操作系统的结构 6 1.3.1 操作系统的内核 6 1.3.2 传统的操作系统结构设计模式 8 1.3.3 现代的操作系统结构设计模式 9 1.4 嵌入式实时操作系统 11 1.4.1 嵌入式实时操作系统的特点 11 1.4.2 嵌入式应用 12 1.4.3 嵌入式实时操作系统的发展 13 1.5 嵌入式实时系统的分类 15 1.5.1 按速度分类 15 1.5.2 按确定性分类 15 1.5.3 按软件结构分类 15 1.6 商用嵌入式实时操作系统 18 1.7 小结 19 思考题 19 2 嵌入式系统的硬件构成 20 2.1 嵌入式系统的总体结构 20 2.2 嵌入式系统硬件 22 2.2.1 嵌入式处理器 22 2.2.2 存储器 24 2.2.3 输入输出设备 25 2.3 嵌入式系统硬件开发相关技术 27 2.3.1 接口技术 27 2.3.2 总线 30 2.3.3 嵌入式系统开发常用的硬件 调试和编程技术 34 2.4 小结 37 思考题 38 3 ARM体系结构 39 3.1 ARM的结构和特性 39 3.1.1 ARM处理器系列 39 3.1.2 ARM处理器的特点 42 3.1.3 ARM处理器模式 43 3.2 ARM寄存器介绍 43 3.3 ARM体系的异常中断 45 3.4 ARM的存储系统 47 3.5 ARM指令系统 48 3.6 ARM指令基本寻址方式 50 3.7 ARM指令集 52 3.8 ARM汇编程序设计 55 3.8.1 ARM汇编器所支持的伪指令 55 3.8.2 汇编语言的语句格式 56 3.8.3 汇编语言的程序结构 60 3.8.4 ARM和Thumb混合编程简介 60 3.9 小结 61 思考题 62 4 嵌入式实时操作系统内核 63 4.1 嵌入式实时内核的结构和功能 63 4.1.1 嵌入式实时内核的结构 63 4.1.2 嵌入式实时内核的功能 65 4.2 嵌入式实时内核的任务管理 72 4.2.1 多任务机制 72 4.2.2 任务状态和状态转变 73 4.2.3 任务调度策略 74 4.2.4 任务异常处理 76 4.3 嵌入式实时内核的共享代码和重入 76 4.4 VxWorks操作系统结构 79 4.4.1 VxWorks操作系统 79 4.4.2 VxWorks的内核Wind 81 4.5 VxWorks任务编程接口 82 4.5.1 任务控制函数 82 4.5.2 任务扩展函数 86 4.5.3 VxWorks系统任务 87 4.6 POSIX调度接口 88 4.6.1 POSIX和Wind调度方法的 差异 88 4.6.2 获得和设置POSIX任务优先级 89 4.6.3 获得和显示当前的调度策略 90 4.6.4 获得调度参数:优先级限制和 时间片 91 4.7 小结 91 思考题 92 5 任务间通信 93 5.1 实时内核任务间通信机制 93 5.1.1 任务之间的关系 93 5.1.2 共享内存 94 5.1.3 互斥 95 5.1.4 信号量 96 5.1.5 内部数据结构 96 5.2 二进制信号量 97 5.2.1 互斥 98 5.2.2 同步 99 5.2.3 二进制信号量用于任务间同步 100 5.3 互斥信号量 104 5.3.1 优先级倒置 105 5.3.2 删除安全 106 5.3.3 递归资源访问 106 5.3.4 互斥信号量用于任务间同步 107 5.4 计数器信号量 112 5.4.1 计数器信号量 112 5.4.2 计数器信号量用于任务间同步 113 5.5 消息队列 116 5.5.1 概述 116 5.5.2 普通消息队列 119 5.5.3 消息队列使用例子 121 5.6 管道 124 5.6.1 概述 124 5.6.2 使用管道 125 5.6.3 管道用于任务间通信 126 5.7 POSIX信号量 129 5.7.1 POSIX信号量接口 129 5.7.2 POSIX和Wind信号量比较 130 5.7.3 未命名信号量使用 130 5.7.4 命名信号量的使用 132 5.8 POSIX消息队列 134 5.8.1 POSIX和Wind消息队列比较 135 5.8.2 POSIX消息队列属性 135 5.8.3 显示消息队列属性 137 5.8.4 用消息队列通信 137 5.8.5 通知任务有消息在等待 140 5.8.6 POSIX队列信号 143 5.9 小结 144 思考题 144 6 中断处理与定时机制 145 6.1 中断管理 145 6.1.1 异常的定义 145 6.1.2 中断的类型 146 6.1.3 中断处理的过程 148 6.1.4 实时内核的中断管理 150 6.2 中断服务程序 152 6.2.1 设置中断处理程序 152 6.2.2 中断堆栈 154 6.2.3 ISR的特殊限制 154 6.2.4 中断级异常 155 6.2.5 保留的最高中断级 156 6.2.6 最高中断级ISRs的约束 156 6.2.7 中断与任务的通信 156 6.3 时间管理 156 6.3.1 硬件时钟设备 157 6.3.2 时间管理 158 6.4 看门狗机制和应用 161 6.4.1 看门狗 161 6.4.2 利用看门狗处理任务时限 162 6.5 POSIX计时器和内存上锁 166 6.5.1 POSIX计时器 166 6.5.2 POSIX内存上锁接口 167 6.6 小结 167 思考题 168 7 I/O子系统 169 7.1 基本I/O概念 169 7.1.1 I/O子系统 169 7.1.2 端口映射与内存映射I/O和 DMA 170 7.1.3 文件名称 171 7.2 I/O系统的内部结构 172 7.2.1 标准的I/O函数 173 7.2.2 标准I/O函数到驱动程序函数 的映射 174 7.2.3 设备 175 7.2.4 文件描述符 176 7.2.5 基本I/O的操作流程 177 7.3 VxWorks的I/O接口 178 7.3.1 文件描述符 178 7.3.2 标准输入输出设备和标准错误 输出设备 179 7.3.3 打开和关闭 180 7.3.4 新建和删除 181 7.3.5 读写操作 181 7.3.6 I/O系统的其他操作 182 7.3.7 基于多文件描述符的挂起 操作:select功能 183 7.4 缓冲I/O 184 7.5 其他的格式化I/O操作 185 7.5.1 printf()、sprintf()、sscanf() 函数 185 7.5.2 printErr()和fdprintf() 185 7.5.3 信息记录 186 7.6 基本I/O应用示例 186 7.7 小结 191 思考题 191 8 文件系统 192 8.1 与MS-DOS系统兼容的文件系统 192 8.1.1 dosFs文件系统的磁盘组织 193 8.1.2 包含必要的dosFs文件系统 组件 194 8.1.3 初始化dosFs文件系统 195 8.1.4 初始化及使用支持dosFs的 设备 195 8.1.5 对磁盘和磁盘卷进行操作 195 8.1.6 目录操作 196 8.1.7 文件操作 196 8.1.8 分配磁盘空间 199 8.1.9 灾难恢复和磁盘卷的一致性 问题 200 8.1.10 dosFs文件系统支持的I/O 控制参数 200 8.2 原始文件系统(rawFs) 201 8.3 磁带文件系统(tapeFs) 204 8.4 CD-ROM文件系统(cdromFs) 206 8.5 目标机服务器文件系统(TSFS) 207 8.6 文件系统应用示例 208 8.7 小结 213 思考题 213 9 内存管理 214 9.1 引言 214 9.2 内存管理机制 215 9.2.1 固定大小存储区管理 215 9.2.2 可变大小存储区管理 217 9.2.3 VxWorks动态内存管理机制 218 9.2.4 VxWorks动态内存管理函数 219 9.3 内存保护 220 9.3.1 存储器管理单元MMU 220 9.3.2 VxWorks的虚拟内存接口 224 9.4 小结 227 思考题 227 10 系统引导程序及调试环境的建立 228 10.1 嵌入式系统的软件结构 228 10.1.1 嵌入式操作系统的运行条件 229 10.1.2 系统的启动流程 230 10.2 嵌入式系统的引导装载程序 bootloader 230 10.2.1 bootloader作用分析及 一般实现 231 10.2.2 bootloader的阶段1 232 10.2.3 bootloader的阶段2 234 10.2.4 u-boot简介 236 10.3 嵌入式系统板级支持包BSP 237 10.3.1 BSP概念 237 10.3.2 BSP在嵌入式开发中的位置 和作用 237 10.3.3 BSP以及bootloader与PC机主板上的BIOS的关系与区别 238 10.4 VxWorks的BSP 238 10.4.1 VxWorks的BSP开发 240 10.4.2 VxWorks的BSP启动流程 242 10.5 基于S3C44B0X开发板的VxWorks 的BSP定制 244 10.5.1 S3C44B0X开发板板上资源 244 10.5.2 BSP包的初步定制 245 10.5.3 在BSP包中进行串行通信 的建立 248 10.6 小结 258 思考题 258 11 嵌入式系统的开发 259 11.1 嵌入式系统开发模式 259 11.1.1 嵌入式系统开发模式概述 259 11.1.2 处理器及硬件开发平台的 选择 261 11.1.3 操作系统的选择 263 11.1.4 开发环境的选择 266 11.2 嵌入式系统的硬件/软件协同设计 技术 267 11.3 集成开发环境Tornado 269 11.3.1 Tornado集成开发环境简述 269 11.3.2 Tornado集成开发工具 270 11.3.3 VxWorks的交叉编译开发 环境 271 11.4 MATLAB/RTW系统开发环境 273 11.4.1 MATLAB/RTW系统概述 273 11.4.2 RTW生成代码结构与外部 模式 275 11.4.3 RTW Tornado目标环境 276 11.4.4 RTW程序创建过程 277 11.5 航行器控制系统仿真及性能分析 278 11.5.1 RTW嵌入式代码在VxWorks/ Tornado环境下的实现过程 278 11.5.2 控制系统仿真 282 11.6 小结 282 思考题 283 参考文献 284

编辑推荐

本书以嵌入式系统的开发为核心,重点讲述了嵌入式技术中的嵌入式操作系统,并且考虑到嵌入式系统开发的特点,也介绍了嵌入式系统的硬件平台和系统开发技术。这样读者既能够深入地学习实时多任务嵌入式操作系统,也能对嵌入式系统和嵌入式系统开发有一个比较全面的学习和理解。  本书的主要内容有:嵌入式操作系统的概念、嵌入式系统的硬件构成、ARM体系结构、嵌入式实时操作系统内核、任务间通信、中断处理与定时机制、I/O子系统、VxWorks文件系统、网络系统、内存管理、系统引导程序及调试环境的建立和嵌入式系统的开发等。 本书语言流畅、条理清晰,内容全面且深入浅出,并结合作者多年的实际开发经验编写而成。本书可作为高等理工院校自动化、电气工程及其自动化、计算机应用、电子信息工程、测控技术与仪器、电子科学与技术等相关专业的本科生和研究生教材,也可供从事嵌入式系统开发、系统控制的科研人员和工程师参考。

作者简介

本书以嵌入式系统的开发为核心,重点讲述了嵌入式技术中的嵌入式操作系统,并且考虑到嵌入式系统开发的特点,也介绍了嵌入式系统的硬件平台和系统开发技术。这样读者既能够深入地学习实时多任务嵌入式操作系统,也能对嵌入式系统和嵌入式系统开发有一个比较全面的学习和理解。  

本书的主要内容有:嵌入式操作系统的概念、嵌入式系统的硬件构成、ARM体系结构、嵌入式实时操作系统内核、任务间通信、中断处理与定时机制、I/O子系统、VxWorks文件系统、网络系统、内存管理、系统引导程序及调试环境的建立和嵌入式系统的开发等。

本书语言流畅、条理清晰,内容全面且深入浅出,并结合作者多年的实际开发经验编写而成。本书可作为高等理工院校自动化、电气工程及其自动化、计算机应用、电子信息工程、测控技术与仪器、电子科学与技术等相关专业的本科生和研究生教材,也可供从事嵌入式系统开发、系统控制的科研人员和工程师参考。

图书封面


 嵌入式操作系统原理与应用下载



发布书评

 
 


精彩短评 (总计2条)

  •     The author of this book is an experienced engineer and also, a decent writer. The book covers some confusing topics as to the study and development of embeded computer system, dipping into a certain extent in depth and certain width in span. As a whole, an useful book for studying and researching.
  •     作为入门书看看还不错,理论扎实有一定的指导意义,实用性倒不是很明显
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024