图书介绍

Linux/Unix技术丛书 深度探索嵌入式操作系统 从零开始设计、架构和开发pdf电子书版本下载

Linux/Unix技术丛书  深度探索嵌入式操作系统  从零开始设计、架构和开发
  • 彭东著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111514879
  • 出版时间:2015
  • 标注页数:528页
  • 文件大小:85MB
  • 文件页数:543页
  • 主题词:实时操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

Linux/Unix技术丛书 深度探索嵌入式操作系统 从零开始设计、架构和开发PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 操作系统的功能及为什么需要它 1

1.1 从hello world开始 1

1.2 操作系统功能演进 3

1.3 小结 7

第2章 硬件平台 8

2.1 选择平台 8

2.1.1 mini2440 8

2.1.2 mini2440平台的信息 9

2.2 必须要关注的硬件 13

2.2.1 原因 14

2.2.2 RTC 15

2.2.3 定时器 16

2.2.4 串口 17

2.2.5 中断控制器 18

2.2.6 SDRAM 19

2.2.7 Norflash 23

2.2.8 Nandflash 24

2.3 小结 26

第3章 处理器 28

3.1 ARM公司与其处理器 28

3.2 ARM920T的结构与特性 29

3.2.1 ARM920T CPU结构 29

3.2.2 ARM920T CPU特性 32

3.3 ARM920T存储体系 33

3.3.1 ARM920T地址空间 33

3.3.2 ARM920T存储器格式 34

3.3.3 ARM920T存储地址对齐 35

3.4 ARM920T状态 35

3.4.1 ARM状态 36

3.4.2 Thumb状态 36

3.5 ARM920T处理器的7种工作模式 37

3.6 寄存器 38

3.7 异常和中断 43

3.7.1 什么是异常和中断 43

3.7.2 异常中断向量 46

3.8 ARM920T指令集 47

3.8.1 指令及其编码格式 48

3.8.2 分支跳转指令 50

3.8.3 数据处理指令 53

3.8.4 装载和存储指令 63

3.8.5 程序状态寄存器操作指令 73

3.8.6 协处理器操作指令 76

3.8.7 异常中断产生指令 79

3.9 MMU 80

3.9.1 MMU概述 80

3.9.2 为什么要有MMU 82

3.9.3 ARM920T CP15协处理器 85

3.9.4 MMU页表 98

3.9.5 MMU页面访问权限的控制 113

3.9.6 MMU的快表TLB 113

3.9.7 MMU的编程接口 114

3.10 Cache 115

3.10.1 ARM920T的Cache 115

3.10.2 Cache的原理 116

3.10.3 Cache的类型及要注意的问题 117

3.10.4 ARM920TCache的编程接口 119

3.11 小结 120

第4章 操作系统内核的设计与构建 122

4.1 操作系统内核的设计 122

4.1.1 内核要完成的功能 123

4.1.2 内核的架构 124

4.1.3 分离硬件的相关性 126

4.1.4 我们的选择 127

4.2 开发环境及相关工具 129

4.2.1 Linux环境 129

4.2.2 文本编辑器 132

4.2.3 GCC 134

4.2.4 LD 136

4.2.5 make 139

4.3 LMOSEM的构建系统 142

4.3.1 LMOSEM的makefile 142

4.3.2 LMOSEM的链接脚本 147

4.4 开发板的安装 150

4.5 小结 154

第5章 语言间调用约定与基本数据结构 156

5.1 寄存器使用约定 156

5.1.1 寄存器别名 157

5.1.2 参数传递与返回值 157

5.2 基本数据结构 159

5.2.1 C语言的基本数据结构 160

5.2.2 list_h_t数据结构 161

5.2.3 spinlock_t数据结构 164

5.2.4 kwlst_t数据结构 165

5.2.5 sem_t数据结构 166

5.3 数据结构存在于内存中的形式 168

5.4 C与汇编的混用 170

5.5 小结 174

第6章 内核初始化 175

6.1 开始 175

6.1.1 第一行汇编代码 175

6.1.2 第一个C函数 178

6.2 MMU和中断向量的初始化 181

6.2.1 初始化MMU 181

6.2.2 复制中断向量 186

6.3 串口初始化 190

6.3.1 串口硬件 190

6.3.2 内核的printf 196

6.4 机器数据结构 201

6.4.1 设计数据结构 201

6.4.2 确定一些重要数据结构与内核的地址 203

6.5 初级内存管理初始化 205

6.5.1 设计一些数据结构 205

6.5.2 初始化mmapdsc_t结构数组 209

6.5.3 建立起内存分配数据结构 212

6.6 中断初始化 215

6.6.1 设计一些数据结构 215

6.6.2 初始中断源描述符 220

6.7 初始化测试 222

6.8 小结 225

第7章 内存管理 226

7.1 内核功能层入口 226

7.2 内存管理组件的设计 228

7.3 块级内存管理 229

7.3.1 块级内存管理数据结构视图 229

7.3.2 块级内存管理接口 230

7.3.3 主分配函数 232

7.3.4 分配时查找alcfrelst_t 234

7.3.5 分配时查找和操作mmapdsc_t 236

7.3.6 分配代码写得对吗 239

7.3.7 主释放函数 240

7.3.8 释放时查找alcfrelst_t 241

7.3.9 释放时查找和操作mmapdsc_t 242

7.3.10 测试块级内存管理层 246

7.4 页级内存管理 248

7.4.1 页级内存管理接口及调用流程 248

7.4.2 相关的数据结构 251

7.4.3 页级内存管理初始化 254

7.4.4 分配主函数 256

7.4.5 分配时查找mplhead_t 257

7.4.6 分配时新建页级内存池 258

7.4.7 分配时操作mplhead_t 262

7.4.8 分配代码写得对吗 263

7.4.9 释放主函数 265

7.4.10 释放时查找mplhead_t 266

7.4.11 释放时操作mplhead_t 268

7.4.12 释放时删除页级内存池 269

7.4.13 测试页级内存管理层 271

7.5 字级内存管理 273

7.5.1 字级内存接口及调用流程 274

7.5.2 相关的数据结构 275

7.5.3 分配主函数 276

7.5.4 分配时查找mplhead_t 278

7.5.5 分配时新建字级内存池 279

7.5.6 分配时操作mplhead_t 282

7.5.7 分配代码写得对吗 283

7.5.8 释放主函数 285

7.5.9 释放时查找mplhead_t 285

7.5.10 释放时操作mplhead_t 287

7.5.11 释放时删除字级内存池 288

7.5.12 测试字级内存管理层 289

7.6 小结 292

第8章 中断管理 293

8.1 中断与中断控制器 293

8.1.1 什么是中断 293

8.1.2 S3C2440A中断控制器 294

8.2 中断管理的架构与相关数据结构 298

8.2.1 中断管理的架构 298

8.2.2 设计数据结构intfltdsc_t和intserdsc_t 298

8.3 中断处理 301

8.3.1 中断辅助例程 301

8.3.2 从中断向量开始 305

8.3.3 保存CPU上下文 306

8.3.4 中断主分派例程 310

8.3.5 确定中断源 314

8.3.6 调用中断处理例程 317

8.4 安装中断回调例程 319

8.5 小结 322

第9章 驱动模型 323

9.1 操作系统内核如何管理设备 323

9.1.1 分权而治 323

9.1.2 设备类型 325

9.1.3 驱动程序 327

9.2 相关数据结构 328

9.2.1 驱动 329

9.2.2 派发例程类型 329

9.2.3 设备ID 330

9.2.4 设备 331

9.2.5 IO包 332

9.2.6 设备表 333

9.3 驱动模型的基础设施 335

9.3.1 驱动程序从哪里执行 335

9.3.2 新建与注册设备 340

9.3.3 注册回调函数 344

9.3.4 发送IO包 345

9.3.5 调用驱动程序函数 346

9.3.6 等待服务 347

9.3.7 完成服务 350

9.3.8 驱动模型辅助函数 352

9.4 systick驱动程序实例 356

9.4.1 systick硬件 356

9.4.2 systick驱动程序框架 360

9.4.3 systick驱动程序实现 362

9.4.4 测试systick驱动程序 368

9.5 RTC驱动程序实例 370

9.5.1 RTC硬件 370

9.5.2 RTC驱动程序实现 375

9.6 小结 385

第10章 进程 386

10.1 应用程序的运行 386

10.1.1 程序运行需要什么资源 387

10.1.2 任何时刻资源都可用吗 388

10.1.3 提出多道程序模型 389

10.2 相关的数据结构 390

10.2.1 设计进程的数据结构 391

10.2.2 调度进程表 392

10.3 LMOSEM内核的第一个进程 394

10.3.1 进程管理组件的初始化 395

10.3.2 建立空转进程 396

10.3.3 空转进程运行 399

10.4 新建进程 404

10.4.1 分配进程描述符 404

10.4.2 分配内存空间 406

10.4.3 加入进程调度表 408

10.5 进程调度 410

10.5.1 调度算法 410

10.5.2 处理进程时间片 411

10.5.3 检查调度状态 414

10.5.4 选择进程 415

10.5.5 进程切换 418

10.5.6 进程等待与唤醒 421

10.5.7 进程测试 425

10.6 小结 428

第11章 文件系统 430

11.1 文件系统设计 430

11.1.1 文件系统只是一个设备 430

11.1.2 数据格式与存储块 432

11.1.3 如何组织文件 433

11.1.4 关于我们文件系统的限制 434

11.2 相关的数据结构 434

11.2.1 超级块 435

11.2.2 位图 435

11.2.3 目录 437

11.2.4 文件管理头 438

11.3 文件系统格式化 440

11.3.1 建立超级块 440

11.3.2 建立位图 445

11.3.3 建立根目录 448

11.4 文件系统基础操作 452

11.4.1 获取与释放根目录文件 453

11.4.2 字符串操作 455

11.4.3 分解路径名 457

11.4.4 检查文件是否存在 459

11.5 文件操作 460

11.5.1 新建文件 461

11.5.2 删除文件 463

11.5.3 打开文件 466

11.5.4 读写文件 469

11.5.5 关闭文件 472

11.5.6 驱动整合 473

11.6 文件系统测试 475

11.6.1 格式化测试 475

11.6.2 文件操作测试 479

11.7 小结 482

第12章 系统调用与应用程序库 483

12.1 系统调用机制 483

12.1.1 软中断指令 484

12.1.2 传递系统调用参数 486

12.1.3 系统调用分发器 488

12.2 时间管理系统调用 489

12.3 进程管理系统调用 492

12.3.1 进程的运行与退出 492

12.3.2 获取进程的ID 494

12.4 内存管理系统调用 496

12.5 设备与文件系统调用 498

12.5.1 设备与文件的打开 498

12.5.2 设备与文件的关闭 506

12.5.3 设备与文件的读写 508

12.5.4 设备与文件的控制 512

12.6 应用程序库 514

12.7 测试 520

12.8 小结 526

后记 528

精品推荐