《一步步写嵌入式操作系统 ARM编程的方法与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李无言著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121122408
  • 页数:268 页
图书介绍:本书是一本介绍怎样去实际编写一款嵌入式操作系统的书,所涉及的内容包括操作系统基本原理以及这些原理在嵌入式平台中的实现方法。全书共分九章,从最基本的嵌入式编程方法开始,逐渐深入到中断管理、内存管理、设备管理、文件系统管理以及进程管理等操作系统核心部分,为读者系统地呈现了一个操作系统的全貌。

第1章 搭建工作环境 1

1.1 选择合适的开发环境 1

1.1.1 准备Cygwin开发环境 2

1.1.2 使用Linux开发环境 7

1.2 开发工具的使用 8

1.2.1 编译器的选择和安装 8

1.2.2 编辑器的选择和使用 10

1.3 虚拟硬件的安装和使用 13

1.3.1 SkyEye的安装 15

1.3.2 SkyEye的使用 15

1.4 总结 17

第2章 基础知识 18

2.1 使用C语言写第一段程序 18

2.2 用脚本链接目标文件 22

2.3 用汇编语言编写程序 25

2.4 汇编和C的混合编程 29

2.4.1 过程调用标准 30

2.4.2 混合编程的例子 31

2.5 Makefile 33

2.6 总结 35

第3章 操作系统的启动 36

3.1 启动流程 36

3.1.1 ARM的启动过程 38

3.1.2 ARM操作系统解读 39

3.1.3 正式开始写操作系统 46

3.1.4 让启动代码运行起来 52

3.2 MMU 56

3.2.1 页表 58

3.2.2 页权限 64

3.2.3 cache和write buffer 66

3.2.4 激活MMU 69

3.3 GCC内联汇编 71

3.4 总结 78

第4章 打印函数 79

4.1 打印函数实例 80

4.1.1 变参函数是如何工作的 81

4.1.2 亲自实现一个可变参数函数 83

4.1.3 实现打印函数中的格式转换 87

4.2 实现自己的打印函数 91

4.3 总结 99

第5章 中断处理 100

5.1 ARM的中断 101

5.1.1 统一的异常和中断处理 102

5.1.2 独立的中断处理 114

5.2 简单的中断处理实例 118

5.2.1 解决异常向量表的问题 118

5.2.2 简单的中断处理代码 120

5.2.3 S3C2410中的定时器 122

5.2.4 让中断处理程序运行起来 124

5.3 复杂的中断处理实例 126

5.3.1 提高中断的效率 126

5.3.2 中断嵌套的实现 130

5.4 更优秀的中断嵌套方法 134

5.5 总结 139

第6章 动态内存管理 140

6.1 伙伴算法 141

6.1.1 伙伴算法的原理 143

6.1.2 伙伴算法的实现 146

6.2 slab 169

6.2.1 使用slab的前提条件 170

6.2.2 slab的组成 171

6.2.3 通过slab进行内存分配 176

6.2.4 内存空间的释放 177

6.2.5 slab的销毁 178

6.3 kmalloc函数 179

6.4 总结 183

第7章 框架 184

7.1 驱动程序框架 184

7.1.1 基于存储设备的实例 186

7.1.2 运行存储设备实例 192

7.2 文件系统框架 194

7.2.1 文件系统的原理 195

7.2.2 文件系统框架的实现 197

7.2.3 romfs文件系统类型 200

7.2.4 实现romfs文件系统 204

7.2.5 让代码运行起来 210

7.3 总结 215

第8章 运行用户程序 217

8.1 二进制程序的运行方法 218

8.2 可执行文件格式 222

8.2.1 ELF格式的组成结构 223

8.2.2 操作ELF格式文件的方法 226

8.2.3 运行ELF格式的应用程序 230

8.3 系统调用 232

8.3.1 用户和内核的运行空间 232

8.3.2 实现一个系统调用 235

8.3.3 运行系统调用程序 244

8.4 总结 246

第9章 进程 247

9.1 进程的实现原理 247

9.2 进程的实现 252

9.2.1 改写中断处理程序 252

9.2.2 抽象调度函数 256

9.2.3 新进程的产生 258

9.2.4 多个进程同时运行 262

9.3 总结 265

结束语 266

参考资料 267