×
暂无评论
图文详情
  • ISBN:9787560644004
  • 装帧:暂无
  • 册数:暂无
  • 重量:暂无
  • 开本:26cm
  • 页数:312页
  • 出版时间:2017-04-01
  • 条形码:9787560644004 ; 978-7-5606-4400-4

本书特色

  本书在介绍嵌入式操作系统基本概念的基础上,以操作系统为背景介绍了其体系结构、任务管理、中断与时间管理、信号量与互斥信号量管理、消息管理、事件标志组管理、内存管理、移植等方面的原理与实现,并给出了范例和应用实例。本书中的全部源代码、范例和应用实例都可在PC上运行。在本书第三章中还对μC/OSⅡ任务栈的现有管理模式进行了改进,提出了一种“任务栈的优化管理模式”。这种模式可以极大地减少系统的RAM开销,使得即使较为复杂的系统也可以在RAM容量很少的CPU上得以应用,其性能在大量的工程技术实践中已得到验证。本书重点突出,注重讲清概念、原理和系统服务函数的应用方法,可作为高等学校嵌入式实时操作系统的教材,也可作为嵌入式系统开发工程技术人员的参考书。

内容简介

本书在介绍嵌入式操作系统基本概念的基础上, 以操作系统为背景介绍了其体系结构、 任务管理、 中断与时间管理、 信号量与互斥信号量管理、 消息管理、 事件标志组管理、 内存管理、 移植等方面的原理与实现, 并给出了范例和应用实例。本书中的全部源代码、 范例和应用实例都可在PC上运行。 在本书第三章中还对μC/OSⅡ任务栈的现有管理模式进行了改进, 提出了一种“任务栈的优化管理模式”。这种模式可以极大地减少系统的RAM开销, 使得即使较为复杂的系统也可以在RAM容量很少的CPU上得以应用, 其性能在大量的工程技术实践中已得到验证。 本书重点突出, 注重讲清概念、 原理和系统服务函数的应用方法, 可作为高等学校嵌入式实时操作系统的教材, 也可作为嵌入式系统开发工程技术人员的参考书。

目录

第1章 嵌入式系统导论 1 1.1 嵌入式系统的基本概念 1 1.1.1 嵌入式系统的发展概况 1 1.1.2 嵌入式系统的定义 3 1.1.3 嵌入式系统的特点 4 1.2 嵌入式系统的组成结构 5 1.2.1 硬件层 5 1.2.2 硬件抽象层 8 1.2.3 应用层 9 1.3 嵌入式系统设计的基本方法 10 1.3.1 总体设计 11 1.3.2 软硬件组件的详细设计 13 1.3.3 系统集成 13 1.3.4 系统测试 13 1.4 嵌入式操作系统的基本概念 14 1.4.1 嵌入式操作系统的发展历程 14 1.4.2 嵌入式实时操作系统的定义 14 1.4.3 评价嵌入式操作系统的几个重要指标 17 1.4.4 嵌入式实时操作系统的特点 17 1.4.5 嵌入式操作系统的分类 20 1.4.6 通用操作系统与嵌入式操作系统的区别 20 1.5 初识μC/OSⅡ操作系统 21 1.5.1 μC/OSⅡ的特点 22 1.5.2 μC/OSⅡ内核文件组成 23 1.5.3 如何学好μC/OSⅡ 23 1.5.4 一个简单的实例 24 参考文献 27 习题 27 第2章 嵌入式操作系统中的基本概念 28 2.1 前后台系统 28 2.2 调度 29 2.3 临界区 29 2.4 进程与线程 29 2.4.1 进程的概念 29 2.4.2 线程的概念 30 2.5 任务与多任务 30 2.6 任务切换 31 2.7 死锁 32 2.8 不可剥夺型内核 32 2.9 可剥夺型内核 33 2.10 可重入性 34 2.11 优先级反转 36 2.11.1 任务的优先级 36 2.11.2 优先级反转 36 2.12 事件 37 2.12.1 信号量 37 2.12.2 消息邮箱 38 2.12.3 消息队列 39 2.12.4 事件标志组 39 2.13 互斥 40 2.13.1 禁止中断 41 2.13.2 禁止调度 41 2.13.3 信号量 42 2.13.4 测试并置位 42 2.14 同步 43 2.15 通信 44 2.16 对存储器的要求 44 2.16.1 代码存储器需求 44 2.16.2 数据存储器需求 44 习题 45 第3章 任务管理 46 3.1 核心任务管理 46 3.1.1 临界区的处理 46 3.1.2 任务的形式 48 3.1.3 任务的状态 49 3.1.4 任务控制块 49 3.1.5 就绪表 52 3.1.6 任务调度 55 3.1.7 任务级的任务切换 57 3.1.8 调度器上锁和解锁 60 3.1.9 空闲任务 61 3.1.10 统计任务 62 3.1.11 μC/OSⅡ的初始化 64 3.1.12 μC/OSⅡ的启动 66 3.2 用户任务管理 68 3.2.1 任务栈管理 69 3.2.2 建立任务——OSTaskCreate()函数 77 3.2.3 建立任务——OSTaskCreateExt()函数 80 3.2.4 优先级变更——OSTaskChangePrio()函数 83 3.2.5 删除任务——OSTaskDel()函数 86 3.2.6 请求删除任务——OSTaskDelReq()函数 90 3.2.7 堆栈检验——OSTaskStkChk()函数 92 3.2.8 任务挂起——OSTaskSuspend()函数 96 3.2.9 任务恢复——OSTaskResume()函数 98 3.2.10 任务信息的获取——OSTaskQuery()函数 100 3.3 部分其他系统服务功能 102 习题 103 第4章 中断与时间管理 104 4.1 中断相关概念 104 4.1.1 中断 104 4.1.2 中断延迟时间 105 4.1.3 中断响应时间 105 4.1.4 中断恢复时间 105 4.1.5 中断延迟、 响应和恢复比较 106 4.1.6 非屏蔽中断 106 4.2 μC/OSⅡ的中断处理 106 4.2.1 中断处理程序 106 4.2.2 中断处理过程 109 4.3 μC/OSⅡ的时钟节拍 110 4.3.1 时钟节拍 110 4.3.2 时钟节拍程序 112 4.3.3 时钟节拍器的正确用法 114 4.4 μC/OS-Ⅱ的时间管理 114 4.4.1 任务延时函数——OSTimeDly()函数 115 4.4.2 按时分秒毫秒延时函数——OSTimeDlyHMSM()函数 116 4.4.3 结束任务延时——OSTimeDlyResume()函数 118 4.4.4 系统时间函数——OSTimeGet()和OSTimeSet() 120 习题 121 第5章 事件控制块 122 5.1 基本概念 122 5.2 将任务置于等待事件的任务列表中 124 5.3 从等待事件的任务列表中删除任务 125 5.4 在等待事件的任务列表中查找优先级*高的任务 126 5.5 空闲事件控制块链表 127 5.5.1 基本概念 127 5.5.2 对事件控制块的基本操作 127 5.6 初始化一个事件控制块——OS_EventWaitListInit()函数 128 5.7 使一个任务脱离等待进入就绪——OS_EventTaskRdy()函数 129 5.8 使一个任务进入等待事件发生状态——OS_EventTaskWait()函数 131 5.9 由于等待超时而将任务置为就绪态——OS_EventTO()函数 131 习题 132 第6章 信号量与互斥信号量管理 133 6.1 信号量管理 133 6.1.1 概述 133 6.1.2 建立信号量——OSSemCreate()函数 135 6.1.3 删除信号量——OSSemDel()函数 137 6.1.4 等待信号量——OSSemPend()函数 139 6.1.5 发送信号量——OSSemPost()函数 142 6.1.6 无等待地获取信号量——OSSemAccept()函数 144 6.1.7 查询信号量的当前状态——OSSemQuery()函数 145 6.2 互斥信号量管理 147 6.2.1 概述 147 6.2.2 建立互斥信号量——OSMutexCreate()函数 149 6.2.3 删除互斥信号量——OSMutexDel()函数 151 6.2.4 等待互斥信号量——OSMutexPend()函数 154 6.2.5 释放互斥信号量——OSMutexPost()函数 157 6.2.6 无等待地获取互斥信号量——OSMutexAccept()函数 161 6.2.7 获取当前互斥信号量的状态——OSMutexQuery()函数 163 第7章 消息管理 167 7.1 消息邮箱管理 167 7.1.1 概述 167 7.1.2 建立消息邮箱——OSMboxCreate()函数 169 7.1.3 删除消息邮箱——OSMboxDel()函数 171 7.1.4 等待邮箱中的消息——OSMboxPend()函数 173 7.1.5 发出邮箱消息——OSMboxPost()函数 176 7.1.6 发出邮箱消息——OSMboxPostOpt()函数 180 7.1.7 无等待地从邮箱中获取消息——OSMboxAccept()函数 182 7.1.8 查询邮箱的状态——OSMboxQuery()函数 184 7.2 消息队列管理 186 7.2.1 概述 186 7.2.2 实现消息队列所需要的各种数据结构 188 7.2.3 建立消息队列——OSQCreate()函数 190 7.2.4 删除消息队列——OSQDel()函数 192 7.2.5 等待消息队列中的一则消息——OSQPend()函数 194 7.2.6 向消息队列发送一则(FIFO)消息——OSQPost()函数 197 7.2.7 向消息队列发送一则 (LIFO)消息——OSQPostFront()函数 199 7.2.8 以可选方式(FIFO或LIFO)向消息队列发一则消息 202 7.2.9 无等待地从消息队列中获取一则消息——OSQAccept()函数 205 7.2.10 清空消息队列——OSQFlush()函数 206 7.2.11 查询一个消息队列的状态——OSQQuery()函数 207 习题 209 第8章 事件标志组管理 210 8.1 概述 210 8.1.1 事件标志组的组成及管理函数 210 8.1.2 事件标志组的配置常量 210 8.1.3 实现事件标志组所需要的数据结构 211 8.2 建立事件标志组——OSFlagCreate()函数 212 8.3 等待事件标志——OSFlagPend()函数 214 8.4 设置事件标志——OSFlagPost()函数 218 8.5 删除事件标志组——OSFlagDel()函数 223 8.6 无等待地获得事件标志——OSFlagAccept()函数 226 8.7 查询事件标志组的状态——OSFlagQuery()函数 228 习题 230 第9章 内存管理 231 9.1 概述 231 9.1.1 基本原理 231 9.1.2 内存管理函数 232 9.1.3 内存管理函数配置常量 232 9.1.4 内存控制块 233 9.2 建立内存分区——OSMemCreate()函数 233 9.3 获取一个内存块——OSMemGet()函数 236 9.4 释放一个内存块——OSMemPut()函数 238 9.5 查询内存分区的状态——OSMemQuery()函数 240 习题 242 第10章 μC/OSⅡ的移植 243 10.1 移植的基本方法 243 10.1.1 移植的概念与一般要求 243 10.1.2 OS_CPU.H代码的移植 245 10.1.3 OS_CPU_C.C代码的移植 247 10.1.4 OS_CPU_A.ASM代码的移植 250 10.1.5 移植代码的测试 253 10.2 基于MCS51单片机的移植实例 253 10.2.1 OS_CPU.H代码的移植 253 10.2.2 OS_CPU_C.C代码的移植 254 10.2.3 OS_CPU_A.ASM代码的移植 255 10.3 基于ARM处理器的移植实例 261 10.3.1 移植规划 261 10.3.2 OS_CPU.H代码的移植 261 10.3.3 OS_CPU_C.C代码的移植 262 10.3.4 OS_CPU_A.ASM代码的移植 264 习题 276 第11章 应用实例 277 11.1 基于MCS51处理器的应用实例 277 11.1.1 设计目标 277 11.1.2 总体设计 277 11.1.3 系统电路设计 280 11.1.4 系统程序设计 281 11.2 基于ARM处理器的应用实例 304 第12章 μC/OSⅡ几个版本的区别简介 310 12.1 μC/OSⅡV2.52与V2.62的区别 310 12.2 μC/OSⅡV2.62与V2.76的区别 311 12.3 μC/OSⅡV2.76与V2.83的区别 312
展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航