封面
版权信息
第二版前言
前言
第1章 概述
1.1 嵌入式系统概述
1.2 嵌入式操作系统概述
1.2.1 嵌入式操作系统的特点
1.2.2 嵌入式操作系统与通用操作系统的区别
1.2.3 嵌入式实时操作系统
1.3 操作系统的基本概念
1.3.1 微内核与大内核
1.3.2 进程、线程与任务
1.3.3 可抢占与不可抢占
1.3.4 同步机制
1.4 Hello China概述
1.4.1 Hello China的功能特点
1.4.2 Hello China的开发环境
1.4.3 面向对象思想的模拟
1.4.4 对象机制
1.4.5 Hello China V1.0版本的源文件构成
1.4.6 Hello China V1.5版本的源文件构成
1.4.7 Hello China的使用
1.5 实例:一个简单的IP路由器的实现
1.5.1 概述
1.5.2 路由器的硬件结构
1.5.3 路由器的软件功能
1.5.4 各任务的实现
第2章 Hello China的加载和初始化
2.1 常见嵌入式系统的启动
2.1.1 典型嵌入式系统内存映射布局
2.1.2 嵌入式系统的启动概述
2.1.3 常见嵌入式操作系统的加载方式
2.1.4 嵌入式系统软件的写入
2.2 Hello China在PC上的启动
2.2.1 PC启动过程概述
2.2.2 Hello China的引导过程
2.2.3 实地址模式下的初始化
2.2.4 保护模式下的初始化
2.2.5 操作系统核心功能的初始化
第3章 Hello China的Shell
3.1 Shell的启动和初始化
3.2 Shell的消息处理过程
3.3 内部命令的处理过程
3.4 外部命令的处理过程
第4章 Hello China的线程
4.1 线程概述
4.1.1 进程、线程和任务
4.2 Hello China V1.0版本的线程实现
4.2.1 核心线程管理对象
4.2.2 线程的状态及其切换
4.2.3 核心线程对象
4.2.4 线程的上下文
4.2.5 线程的优先级与调度
4.2.6 线程的创建
4.2.7 线程的结束
4.2.8 线程的消息队列
4.2.9 线程的切换——中断上下文
4.2.10 线程的切换——系统调用上下文
4.2.11 上下文保存和切换的底层函数
4.2.12 线程的睡眠与唤醒
4.3 V1.5版本中核心线程的实现
4.3.1 概述
4.3.2 核心线程调度时机
4.4 V1.5核心线程管理器(KernelThreadManager)的实现
4.4.1 V1.5核心线程队列的实现
4.5 V1.5核心线程对象(KernelThreadObject)的实现
4.5.1 V1.5版本中硬件上下文的保存
4.5.2 线程的调度——中断上下文
4.5.3 线程的调度——程序上下文
4.5.4 核心线程的创建和初始化
4.5.5 中断处理程序结束后的线程调度
第5章 Hello China的内存管理机制
5.1 内存管理机制概述
5.2 IA32 CPU内存管理机制
5.2.1 IA32 CPU内存管理机制概述
5.2.2 几个重要的概念
5.2.3 分段机制的应用
5.2.4 分页机制的应用
5.3 Power PC CPU的内存管理机制
5.4 Hello China内存管理模型
5.4.1 Hello China的内存管理模型
5.4.2 Hello China的内存布局
5.4.3 核心内存池的管理
5.4.4 页框管理对象(PageFrameManager)
5.4.5 页面索引对象(PageIndexManager)
5.4.6 虚拟内存管理对象(VirtualMemoryManager)
第6章 线程本地堆的实现
6.1 Heap概述
6.2 堆的功能需求定义
6.3 堆的实现概要
6.4 堆的详细实现
6.4.1 堆的创建
6.4.2 堆的销毁
6.4.3 堆内存申请
6.4.4 堆内存释放
6.4.5 malloc函数和free函数的实现
第7章 互斥和同步机制的实现
7.1 互斥和同步概述
7.2 关键区段概述
7.3 关键区段产生的原因
7.3.1 多个线程之间的竞争
7.3.2 中断服务程序与线程之间的竞争
7.3.3 多个CPU之间的竞争
7.4 单CPU下关键区段的实现
7.5 多CPU下关键区段的实现
7.5.1 多CPU环境下的实现方式
7.5.2 Hello China的未来实现
7.6 Power PC下关键区段的实现
7.6.1 Power PC提供的互斥访问机制
7.6.2 多CPU环境下的互斥机制
- APP免费
7.7 关键区段使用注意事项
- APP免费
7.8 Semaphore概述
- APP免费
7.9 Semaphore对象的定义
- APP免费
7.10 Semaphore对象的实现
- APP免费
7.10.1 Initialize和Uninitialize实现
- APP免费
7.10.2 WaitForThisObject的实现
- APP免费
7.10.3 WaitForThisObjectEx的实现
- APP免费
7.10.4 ReleaseSemaphore的实现
- APP免费
第8章 中断和定时处理机制的实现
- APP免费
8.1 中断和异常概述
- APP免费
8.2 硬件相关部分处理
- APP免费
8.2.1 IA32中断处理过程
- APP免费
8.2.2 IDT初始化
- APP免费
8.3 硬件无关部分处理
- APP免费
8.3.1 系统对象和中断对象
- APP免费
8.3.2 中断调度过程
- APP免费
8.3.3 默认中断处理函数
- APP免费
8.4 对外服务接口
- APP免费
8.5 几个注意事项
- APP免费
8.6 Power PC的异常处理机制
- APP免费
8.6.1 Power PC异常处理机制概述
- APP免费
8.6.2 Power PC异常的分类
- APP免费
8.6.3 异常的处理和返回
- APP免费
8.7 定时器概述
- APP免费
8.7.1 SetTimer函数的调用
- APP免费
8.7.2 CancelTimer函数的调用
- APP免费
8.7.3 ResetTimer函数的调用
- APP免费
8.8 设置定时器操作
- APP免费
8.9 定时器超时处理
- APP免费
8.10 定时器取消处理
- APP免费
8.11 定时器复位
- APP免费
8.12 定时器注意事项
- APP免费
第9章 系统总线管理
- APP免费
9.1 系统总线概述
- APP免费
9.1.1 系统总线
- APP免费
9.1.2 总线管理模型
- APP免费
9.1.3 设备标识符
- APP免费
9.2 系统资源管理
- APP免费
9.2.1 资源描述对象
- APP免费
9.2.2 IO端口资源管理
- APP免费
9.3 驱动程序接口
- APP免费
9.3.1 GetResource
- APP免费
9.3.2 GetDevice
- APP免费
9.3.3 CheckPortRegion
- APP免费
9.3.4 ReservePortRegion
- APP免费
9.3.5 ReleasePortRegion
- APP免费
9.3.6 AppendDevice
- APP免费
9.3.7 DeleteDevice
- APP免费
9.4 PCI总线驱动程序概述
- APP免费
9.4.1 PCI总线概述
- APP免费
9.4.2 PCI设备的配置空间
- APP免费
9.4.3 配置空间关键字段的说明
- APP免费
9.4.4 PCI配置空间的读取与设置
- APP免费
9.5 PCI总线驱动程序的实现
- APP免费
9.5.1 探测PCI总线是否存在
- APP免费
9.5.2 对普通PCI设备进行枚举
- APP免费
9.5.3 配置PCI桥接设备
- APP免费
第10章 驱动程序管理框架
- APP免费
10.1 设备驱动程序管理框架
- APP免费
10.1.1 概述
- APP免费
10.1.2 设备管理器和IO管理器
- APP免费
10.1.3 Hello China的设备管理框架
- APP免费
10.1.4 I/O管理器(IOManager)
- APP免费
10.2 文件系统的实现
- APP免费
10.2.1 文件系统与文件的命名
- APP免费
10.2.2 文件系统驱动程序
- APP免费
10.2.3 打开一个文件的操作流程
- APP免费
10.3 设备驱动程序框架
- APP免费
10.3.1 设备请求控制块(DRCB)
- APP免费
10.3.2 设备驱动程序的文件组织结构
- APP免费
10.3.3 设备驱动程序的功能实现
- APP免费
10.3.4 设备驱动程序对象
- APP免费
10.3.5 DriverEntry的实现
- APP免费
10.3.6 UnloadEntry的实现
- APP免费
10.4 设备对象
- APP免费
10.4.1 设备对象的定义
- APP免费
10.4.2 设备对象的命名
- APP免费
10.4.3 设备对象的类型
- APP免费
10.4.4 设备对象的设备扩展
- APP免费
10.4.5 设备的打开操作
- APP免费
10.4.6 设备命名策略
- APP免费
10.5 设备的中断管理
- APP免费
第11章 核心线程CPU占用率统计功能
- APP免费
11.1 CPU占用率概述
- APP免费
11.2 核心线程CPU占用率统计的实现
- APP免费
11.2.1 统计周期和统计算法
- APP免费
11.2.2 核心线程统计对象
- APP免费
11.2.3 CPU统计对象
- APP免费
11.2.4 CPU占用率统计线程
- APP免费
11.3 进程和多CPU情况下的考虑
- APP免费
11.3.1 进程的用户态和核心态执行时间统计
- APP免费
11.3.2 多CPU环境下的考虑
- APP免费
第12章 系统核心HOOK机制的实现
- APP免费
12.1 Hook概述
- APP免费
12.2 线程Hook的实现
- APP免费
12.2.1 线程Hook的实现概述
- APP免费
12.2.2 线程调度前后的回调机制
- APP免费
12.2.3 线程创建和结束的回调机制
- APP免费
12.2.4 CallThreadHook例程的实现
- APP免费
12.3 线程Hook的应用
- APP免费
第13章 串口交互程序及其实现
- APP免费
13.1 串行通信接口概述
- APP免费
13.2 串行通信编程方式
- APP免费
13.2.1 串口初始化
- APP免费
13.2.2 数据发送
- APP免费
13.2.3 数据接收
- APP免费
13.3 串口交互程序的实现
- APP免费
13.3.1 串口交互程序的使用
- APP免费
13.3.2 轮询模式的串口交互程序实现
- APP免费
13.3.3 中断模式的串口交互程序实现
- APP免费
13.4 串行通信编程总结
- APP免费
13.4.1 轮询方式和中断方式编程的对比
- APP免费
13.4.2 串口交互程序的其他实现方式
- APP免费
第14章 应用编程接口与示例
- APP免费
14.1 核心线程操作接口
- APP免费
14.1.1 CreateKernelThread
- APP免费
14.1.2 DestroyKernelThread
- APP免费
14.1.3 SendMessage
- APP免费
14.1.4 GetMessage
- APP免费
14.1.5 SetKernelThreadPriority
- APP免费
14.1.6 GetKernelThreadPriority
- APP免费
14.1.7 GetKernelThreadID
- APP免费
14.2 内存操作接口
- APP免费
14.2.1 KMemAlloc
- APP免费
14.2.2 KMemFree
- APP免费
14.2.3 VirtualAlloc
- APP免费
14.2.4 VirtualFree
- APP免费
14.2.5 malloc
- APP免费
14.2.6 free
- APP免费
14.2.7 CreateHeap
- APP免费
14.2.8 DestroyHeap
- APP免费
14.2.9 HeapAlloc
- APP免费
14.2.10 HeapFree
- APP免费
14.3 定时器操作接口
- APP免费
14.3.1 SetTimer
- APP免费
14.3.2 CancelTimer
- APP免费
14.4 核心线程同步操作接口
- APP免费
14.4.1 Sleep
- APP免费
14.4.2 CreateMutex
- APP免费
14.4.3 ReleaseMutex
- APP免费
14.4.4 DestroyMutex
- APP免费
14.4.5 CreateEvent
- APP免费
14.4.6 SetEvent
- APP免费
14.4.7 ResetEvent
- APP免费
14.4.8 DestroyEvent
- APP免费
14.4.9 WaitForThisObject
- APP免费
14.4.10 WaitForThisObjectEx
- APP免费
14.5 系统中断操作接口
- APP免费
14.5.1 ConnectInterrupt
- APP免费
14.5.2 DisconnectInterrupt
- APP免费
14.6 输入/输出(IO)接口
- APP免费
14.6.1 CreateFile
- APP免费
14.6.2 ReadFile
- APP免费
14.6.3 WriteFile
- APP免费
14.6.4 IoControl
- APP免费
14.6.5 SetFilePointer
- APP免费
14.6.6 FlushFile
- APP免费
14.6.7 CloseFile
- APP免费
14.7 设备驱动程序接口
- APP免费
14.7.1 CreateDevice
- APP免费
14.7.2 DestroyDevice
- APP免费
14.8 相关辅助功能接口
- APP免费
14.8.1 StrLen
- APP免费
14.8.2 StrCpy
- APP免费
14.8.3 MemZero
- APP免费
14.8.4 MemCpy
- APP免费
14.9 PC服务接口
- APP免费
14.9.1 PrintLine
- APP免费
14.9.2 PrintChar
- APP免费
14.9.3 ChangeLine
- APP免费
14.9.4 GotoHome
- APP免费
第15章 Hello China的应用开发方法
- APP免费
15.1 Hello China的开发方法概述
- APP免费
15.2 在Hello China基础上开发一个简单应用程序
- APP免费
附录A 如何搭建一个基于Windows的操作系统开发平台
- APP免费
A.1 总体概述
- APP免费
A.2 Windows RAD开发工具概述
- APP免费
A.2.1 常用的Windows RAD
- APP免费
A.2.2 Windows RAD工具不能直接用于OS开发的原因
- APP免费
A.3 RAD开发工具开发OS注意事项
- APP免费
A.3.1 避免调用任何Windows操作系统提供的系统调用
- APP免费
A.3.2 避免任何C运行期函数调用
- APP免费
A.3.3 避免使用C或C++提供的异常处理机制
- APP免费
A.4 使用Microsoft Visual C++搭建一个OS开发环境
- APP免费
A.4.1 操作系统开发中常用的Microsoft Visual C++特性
- APP免费
A.4.2 如何搭建一个OS映像文件开发环境
- APP免费
A.5 简单OS开发示例
- APP免费
A.5.1 创建一个名字为OSIMG_1的DLL工程
- APP免费
A.5.2 添加一个源程序文件,并编辑实现代码
- APP免费
A.5.3 设置编译连接选项,并进行编译连接
- APP免费
A.5.4 处理目标文件
- APP免费
A.5.5 创建引导磁盘
- APP免费
A.6 后续开发建议
- APP免费
A.6.1 开发一个单线程的交互式系统
- APP免费
A.6.2 开发一个多线程的实时操作系统
- APP免费
A.6.3 开发一个多任务的轻量操作系统
- APP免费
A.6.4 开发一个网络应用终端
- APP免费
附录B 一种代码执行时间测量方法的实现
- APP免费
B.1 概述
- APP免费
B.2 执行时间计算方法
- APP免费
B.3 实现方式
- APP免费
B.3.1 对外接口
- APP免费
B.3.2 IA32硬件平台下的实现
- APP免费
B.3.3 误差分析
- APP免费
B.4 Hello China系统时钟中断测试结果
- APP免费
附录C 64bit整型数据类型的实现
- APP免费
C.1 概述
- APP免费
C.2 加法
- APP免费
C.2.1 __U64的加法
- APP免费
C.2.2 __I64的加法
- APP免费
C.3 减法
- APP免费
C.3.1 __U64的减法
- APP免费
C.3.2 __I64的减法
- APP免费
C.4 比较
- APP免费
C.4.1 __U64的比较
- APP免费
C.4.2 __I64的比较
- APP免费
C.5 移位
- APP免费
C.5.1 __U64的移位
- APP免费
C.5.2 __I64的移位
- APP免费
C.6 后续支持
- APP免费
附录D IOCTRL控制程序使用介绍及实例
- APP免费
D.1 概述
- APP免费
D.2 使用方式
- APP免费
D.2.1 Inputb
- APP免费
D.2.2 Inputw
- APP免费
D.2.3 Inputd
- APP免费
D.2.4 Outputb
- APP免费
D.2.5 Outputw
- APP免费
D.2.6 Outputd
- APP免费
D.2.7 Memwb
- APP免费
D.2.8 Memww
- APP免费
D.2.9 Memwd
- APP免费
D.2.10 Memrb
- APP免费
D.2.11 Memrw
- APP免费
D.2.12 Memrd
- APP免费
D.2.13 Help和exit
- APP免费
D.3 一个读取PCI设备配置空间的例子
- APP免费
D.3.1 PCI配置空间读取方法
- APP免费
D.3.2 PCI配置空间布局
- APP免费
D.3.3 PCI总线设备位置获取方法
- APP免费
D.3.4 一个读取PCI配置信息的例子
- APP免费
附录E 如何快速掌握汇编语言
- APP免费
E.1 掌握汇编语言的益处
- APP免费
E.2 熟练掌握汇编语言的困难所在
- APP免费
E.3 一种快速掌握汇编语言的方法
- APP免费
附录F 源代码使用说明
- APP免费
F.1 源代码说明
- APP免费
F.2 对V1.5版本源代码的说明
- APP免费
F.3 SYSDIAG程序使用说明
- APP免费
附录G 优先队列(Priority Queue)和环形缓冲区(RING BUFFER)的实现
- APP免费
G.1 优先队列概述
- APP免费
G.2 优先队列对象的定义和对外接口
- APP免费
G.3 中断安全和多CPU支持
- APP免费
G.4 优先队列的实现
- APP免费
G.4.1 InsertIntoQueue的实现
- APP免费
G.4.2 DeleteFromQueue的实现
- APP免费
G.4.3 GetHeaderElement的实现
- APP免费
G.4.4 初始化和销毁函数的实现
- APP免费
G.4.5 队列接口函数的复杂度分析
- APP免费
G.5 环形缓冲区概述
- APP免费
G.6 环形缓冲区的实现
- APP免费
G.6.1 初始化函数的实现
- APP免费
G.6.2 GetElement函数的实现
- APP免费
G.6.3 AddElement函数的实现
更新时间:2018-12-27 18:06:18