新書推薦:
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:NT$
245.0
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:NT$
301.0
《
新时代硬道理 广东寻路高质量发展
》
售價:NT$
352.0
《
6S精益管理实战(精装版)
》
售價:NT$
458.0
《
异域回声——晚近海外汉学之文史互动研究
》
售價:NT$
500.0
《
世界文明中的作物迁徙:聚焦亚洲、中东和南美洲被忽视的本土农业文明
》
售價:NT$
454.0
《
无端欢喜
》
售價:NT$
347.0
《
股票大作手操盘术
》
售價:NT$
245.0
內容簡介:
本书涵盖了操作系统的基本概念和原则,展示了如何将它们应用于设计和实现完整的嵌入式与实时操作系统。包括ARM架构、ARM指令和编程、用于开发程序的工具链、用于软件实现和测试的虚拟机、程序执行映像、函数调用约定、运行时堆栈使用以及用汇编代码链接C程序的所有基础和背景信息。
關於作者:
王孔啟(K. C. Wang)1960年获中国台湾大学电机工程学士学位,1965年获美国西北大学电机工程博士学位。他目前是华盛顿州立大学电机工程与计算机科学学院教授,研究方向是操作系统、分布式系统和并行计算。
目錄 :
出版者的话
译者序
前言
关于作者
第1章 引言1
1.1 关于本书1
1.2 本书的动机1
1.3 本书的目标读者1
1.4 本书的独特之处2
1.5 本书的内容3
1.6 本书可作为嵌入式系统的教科书5
1.7 本书可作为操作系统的教科书5
1.8 本书可用于自学5
参考文献6
第2章 ARM体系结构和程序设计7
2.1 ARM处理器模式7
2.2 ARM CPU寄存器8
2.2.1 通用寄存器8
2.2.2 状态寄存器8
2.2.3 ARM处理器模式的变更9
2.3 指令流水线10
2.4 ARM指令10
2.4.1 条件标志和条件10
2.4.2 分支指令11
2.4.3 算术运算11
2.4.4 比较运算11
2.4.5 逻辑运算12
2.4.6 数据移动操作12
2.4.7 即时值和桶移位器12
2.4.8 乘法指令13
2.4.9 加载和存储指令13
2.4.10 基址寄存器13
2.4.11 块数据传输13
2.4.12 堆栈操作13
2.4.13 堆栈和子例程14
2.4.14 软中断14
2.4.15 PSR转移指令14
2.4.16 协处理器指令14
2.5 ARM工具链15
2.6 ARM系统模拟器15
2.7 ARM程序设计16
2.7.1 ARM汇编编程示例116
2.7.2 ARM汇编编程示例218
2.7.3 汇编和C语言的结合编程19
2.8 设备驱动程序25
2.8.1 系统内存映射26
2.8.2 GPIO编程26
2.8.3 串行IO的UART驱动程序27
2.8.4 彩色LCD驱动程序31
2.9 本章小结44
思考题44
参考文献45
第3章 中断和异常处理46
3.1 ARM异常46
3.1.1 ARM处理器模式46
3.1.2 ARM异常类型47
3.1.3 异常向量表48
3.1.4 异常处理程序48
3.1.5 从异常处理程序返回49
3.2 中断50
3.2.1 中断类型50
3.2.2 中断控制器50
3.2.3 主中断控制器和辅中断控制器51
3.3 中断处理52
3.3.1 向量表内容52
3.3.2 硬件中断序列52
3.3.3 软件中的中断控制53
3.3.4 中断处理程序54
3.3.5 非嵌套中断处理程序54
3.4 计时器驱动程序55
3.4.1 ARM Versatile 926EJS计时器55
3.4.2 计时器驱动程序实现55
3.5 键盘驱动程序60
3.5.1 ARM PL050鼠标-键盘接口60
3.5.2 键盘驱动程序原理60
3.5.3 中断驱动的驱动程序设计60
3.5.4 键盘驱动程序实现61
3.6 UART驱动程序66
3.6.1 ARM PL011 UART接口66
3.6.2 UART寄存器66
3.6.3 中断驱动的UART驱动程序67
3.7 安全数字卡72
3.7.1 SD卡协议72
3.7.2 SDC驱动程序72
3.7.3 改进的SDC驱动程序79
3.7.4 多扇区数据传输80
3.8 向量中断83
3.8.1 ARM PL190向量中断控制器83
3.8.2 为向量中断配置VIC83
3.8.3 向量中断处理程序84
3.8.4 向量中断的演示84
3.9 嵌套中断86
3.9.1 为何需要嵌套中断86
3.9.2 ARM中的嵌套中断86
3.9.3 在SYS模式下处理嵌套中断87
3.9.4 嵌套中断的演示87
3.10 嵌套中断和进程切换90
3.11 本章小结90
思考题91
参考文献92
第4章 嵌入式系统的模型93
4.1 嵌入式系统的程序结构93
4.2 超级循环模型93
4.3 事件驱动模型95
4.3.1 超级循环程序的缺点95
4.3.2 事件95
4.3.3 周期性事件驱动程序95
4.3.4 异步事件驱动程序99
4.4 事件的优先级100
4.5 进程模型101
4.5.1 单处理器进程模型101
4.5.2 多处理器进程模型101
4.5.3 实地址空间进程模型101
4.5.4 虚拟地址空间进程模型101
4.5.5 静态进程模型101
4.5.6 动态进程模型101
4.5.7 非抢占式进程模型102
4.5.8 抢占式进程模型102
4.6 单处理器内核模型102
4.7 单处理器操作系统模型102
4.8 多处理器系统模型102
4.9 实时系统模型102
4.10 嵌入式系统软件设计方法论102
4.10.1 高级语言支持事件驱动编程103
4.10.2 状态机模型103
4.10.3 StateChart模型107
4.11 本章小结107
思考题107
参考文献108
第5章 嵌入式系统中的进程管理109
5.1 多任务109
5.2 进程的概念109
5.3 多任务和上下文切换109
5.3.1 一个简单的多任务程序109
5.3.2 上下文切换111
5.3.3 多任务处理的演示116
5.4 动态进程117
5.4.1 动态进程的创建117
5.4.2 动态进程的演示119
5.5 进程调度120
5.5.1 进程调度术语120
5.5.2 进程调度的目标、策略和算法120
5.5.3 嵌入式系统中的进程调度121
5.6 进程同步121
5.6.1 睡眠和唤醒121
5.6.2 使用睡眠唤醒的设备驱动程序122
5.6.3 使用睡眠唤醒的事件驱动嵌入式系统125
5.6.4 使用睡眠唤醒的资源管理127
5.7 信号量128
5.8 信号量的应用129
5.8.1 信号量锁129
5.8.2 互斥锁130
5.8.3 使用信号量的资源管理130
5.8.4 等待中断和消息130
5.8.5 进程协作130
5.8.6 信号量的优势132
5.8.7 使用信号量的注意事项132
5.8.8 在嵌入式系统中使用信号量132
5.9 其他同步机制134
5.9.1 OpenVMS中的事件
內容試閱 :
自2015年Springer出版我的第一本书Design and Implementation of the MTX Operating System以来,我收到了很多热心读者的反馈,大家比较关心如何在基于ARM的移动设备(如iPod或iPhone等)上运行MTX操作系统,这激励了我撰写本书。
本书旨在为嵌入式与实时操作系统的理论和实践教学提供一个合适的平台。书中涵盖了操作系统的基本概念和原理,并介绍了如何将其应用于设计与实现完整的嵌入式与实时操作系统。为了体现本书的可操作性和实用性,本书使用ARM工具链进行程序开发,并使用ARM虚拟机来演示设计原则和实现技术。
本书的技术性很强,不适合用于入门级课程,因为入门课程仅讲授操作系统的概念和原理,没有任何编程实践。本书专门面向计算机科学工程的嵌入式与实时系统课程,强调理论和实践并重。本书采用循序渐进的风格,并且包含详细的源代码和完整的示例工作系统,这使本书特别适合自学。
事实证明,完成本书的创作是一项非常艰巨、耗时的工作,但是我却喜欢这项挑战。在撰写书稿时,我很幸运地得到了很多人的鼓励和帮助。我想借此机会向所有帮助过我的人表示真诚的感谢,我也非常感谢出版社允许向公众免费开放本书的源代码,这些源代码可以通过网址http:wang.eecs.wsu.edu~kcw或华章网站下载,或与我直接联系:kwang@eecs.wsu.edu。
特别感谢Cindy一如既往的支持和鼓励,使本书得以成功出版。最后,我要再次感谢我的家人,因为我总是借口自己很忙而忽视他们。
K. C. Wang
美国华盛顿州普尔曼
2016年10月