新書推薦:
《
南方谈话:邓小平在1992
》
售價:HK$
82.8
《
纷纭万端 : 近代中国的思想与社会
》
售價:HK$
109.8
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:HK$
172.5
《
朋党之争与北宋政治·大学问
》
售價:HK$
102.4
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:HK$
90.9
《
以爱为名的支配
》
售價:HK$
64.4
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:HK$
55.2
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:HK$
66.1
|
內容簡介: |
本书的*终目的是构建一个用于学习的嵌入式操作系统内核,并工作在真正的物理机上。为了达到这一目的,本书大体上分为两部分:硬件部分和软件部分。硬件部分首先分析了我们选择的平台,以及这个平台上的组件。软件部分首先分析了操作系统内核是干什么的,其中都有些什么组件,这些个组件分别是干什么的有什么作用。然后是如何设计操作系统架构并将这些重要的组件组合在一起,以及设计时需要注意些什么。*后介绍了构建操作系统的工具。
|
目錄:
|
前言
第1章操作系统的功能及为什么
需要它
1.1从helloworld开始
1.2操作系统功能演进
1.3小结
第2章硬件平台
2.1选择平台
2.1.1mini
2.1.2mini2440平台的信息
2.2必须要关注的硬件
2.2.1原因
2.2.2RTC
2.2.3定时器
2.2.4串口
2.2.5中断控制器
2.2.6SDRAM
2.2.7NOmaSh
2.2.8Nandflash
2.3小结
第3章处理器
3.1ARM公司与其处理器
3.2ARM920T的结构与特性
3.2.1ARM920TCPU结构
3.2.2ARM920TCPU特性
3.3ARM920T存储体系
3.3.1ARM920T地址空间
3.3.2ARM920T存储器格式
3.3.3ARM920T存储地址对齐-
3.4ARM920T状态
3.4.1ARM状态
3.4.2Thumb状态
3.5ARM920T处理器的7种工作模式
3.6寄存器
3.7异常和中断
3.7.1什么是异常和中断
3.7.2异常中断向量
3.8ARM920T指令集
3.8.1指令及其编码格式
3.8.2分支跳转指令
3.8.3数据处理指令
3.8.4装载和存储指令
3.8.5程序状态寄存器操作指令
3.8.6协处理器操作指令
3.8.7异常中断产生指令
3.9MMU
3.9.1MMU概述
?3.9.2为什么要有MMU
3.9.3ARM920TCP15协处理器
3.9.4MMU页表
3.9.5MMU页面访问权限的控制
3.9.6MMU的快表TLB
3.9.7MMU的编程接口
3.10Cache
3.10.1ARM920T的Cache
3.10.2Cache的原理
3.10.3Cache的类型及要注意的
问题
3.10.4ARM920TCache的编程接口l
3.11小结
第4章操作系统内核的设计与构建
4.1操作系统内核的设计
4.1.1内核要完成的功能
4.1.2内核的架构
4.1.3分离硬件的相关性
4.1.4我们的选择
4.2开发环境及相关工具
4.2.1Linux环境
4.2.2文本编辑器
4.2.3GCC
4.2.4LD
4.2.5make"l
4.3LMOSEM的构建系统
4.3.1LMOSEM的makefile
4.3.2LMOSEM的链接脚本
4.4开发板的安装
4.5小结
第5章语言间调用约定与基本数据
结构
5.1寄存器使用约定
5.1.1寄存器别名
5.1.2参数传递与返回值
5.2基本数据结构
5.2.1C语言的基本数据结构
5.2.2listht数据结构16l
5.2.3spinlock_t数据结构
5.2.4kwlstt数据结构
5.2.5semt数据结构
5.3数据结构存在于内存中的形式l
5.4C与汇编的混用
5.5小结
第6章内核初始化
6.1开始
6.1.1**行汇编代码
6.1.2**个C函数
6.2MMU和中断向量的初始化
6.2.1初始化MMU"
6.2.2复制中断向量-
6.3串口初始化
6.3.1串口硬件
6.3.2内核的printf
6.4机器数据结构
6.4.1设计数据结构
6.4.2确定一些重要数据结构与内核
的地址"
6.5初级内存管理初始化
6.5.1设计一些数据结构-
6.5.2初始化mmapdsc_t结构数组
6.5.3建立起内存分配数据结构
6.6中断初始化
6.6.1设计一些数据结构
6.6.2初始中断源描述符-
6.7初始化测试
6.8小结
第7章内存管理
7.1内核功能层入口
7.2内存管理组件的设计
7.3块级内存管理
7.3.1块级内存管理数据结构视图
7.3.2块级内存管理接口
7.3.3主分配函数
7.3.4分配时查找alcfrelst_t
7.3.5分配时查找和操作
mm叩dsc_t
7.3.6分配代码写得对吗
7.3.7主释放函数
7.3.8释放时查找alcfrelst
7.3.9释放时查找和操作
HHnapdscj
7.3.10测试块级内存管理层
7.4页级内存管理-
7.4.1页级内存管理接口及调用
流程
7.4.2相关的数据结构
7.4.3页级内存管理初始化
7.4.4分配主函数
7.4.5分配时查找mplhead-t
7.4.6分配时新建页级内存池
7.4.7分配时操作mplhead_t
7.4.8分配代码写得对吗
7.4.9释放主函数
7.4.10释放时查找mplhead-t"
7.4.11释放时操作mpmeadj"
7.4.12释放时删除页级内存池
7.4.13测试页级内存管理层
7.5字级内存管理
7.5.1字级内存接口及调用流程
7.5.2相关的数据结构
7.5.3分配主函数
7.5.4分配时查找mplhead』
7.5.5分配时新建字级内存池
7.5.6分配时操作mplhead_t
7.5.7分配代码写得对吗
7.5.8释放主函数一
7.5.9释放时查找mpmead_j
7.5.10释放时操作mplhead_t"
7.5.11释放时删除字级内存池"
7.5.12测试字级内存管理层
7.6小结
第8章中断管理
8.1中断与中断控制器
8.1.1什么是中断--
8.1.2S3C2440A中断控制器
8.2中断管理的架构与相关数据
结构
8.2.1中断管理的架构-
8.2.2设计数据结构intfltdscj
和intserdsc-t"
8.3中断处理-
8.3.1中断辅助例程
8.3.2从中断向量开始"
8.3.3保存CPU上下文
8.3.4中断主分派例程3lO
8.3.5确定中断源"
8.3.6调用中断处理例程
8.4安装中断回调例程
8.5小结
第9章驱动模型
9.1操作系统内核如何管理设备"
9.1.1分权而治
9.1.2设备类型
9.1.3驱动程序
?9.2相关数据结构。
9.2.1驱动一
9.2.2派发例程类型一
9.2.3设备ID"
9.2.4设备"
9.2.510包"
9.2.6设备表"
9.3驱动模型的基础设施
9.3.1驱动程序从哪里执行
9.3.2新建与注册设备
9.3.3注册回调函数"
9.3.4发送IO包一
9.3.5调用驱动程序函数
9.3.6等待服务"
9.3.7完成服务"
9.3.8驱动模型辅助函数
9.4systick驱动程序实例~
9.4.1systick硬件"
9.4.2systick驱动程序框架-
9.4.3systick驱动程序实现''
9.4.4测试systick驱动程序
9.5RTC驱动程序实例-
9.5.1RTC硬件一
9.5.2RTC驱动程序实现
9.6小结"
第10章进程
10.1应用程序的运行
10.1.1程序运行需要什么资源
10.1.2任何时刻资源都可用吗
10.1.3提出多道程序模型
10.2相关的数据结构
10.2.1设计进程的数据结构
10.2.2调度进程表"
10.3LMOSEM内核的**个进程
10.3.1进程管理组件的初始化
10.3.2建立空转进程
10.3.3空转进程运行
10.4新建进程
10.4.1分配进程描述符
10.4.2分配内存空间
10.4.3加入进程调度表
10.5进程调度
10.5.1调度算法"
10.5.2处理进程时间片
10.5.3检查调度状态
10.5.4选择进程"
10.5.5进程切换一
10.5.6进程等待与唤醒
10.5.7进程测试"
10.6小结-
第11章文件系统
11.1文件系统设计
11.1.1文件系统只是一个设备
11.1.2数据格式与存储块
11.1.3如何组织文件
11.1.4关于我们文件系统的限制
11.2相关的数据结构
11.2.1超级块
11.2.2位图
11.2.3目录一
11.2.4文件管理头"
11.3文件系统格式化
11.3.1建立超级块"
11.3.2建立位图
11.3.3建立根目录
11.4文件系统基础操作
11.4.1获取与释放根目录文件
11.4.2字符串操作
?11.4.3分解路径名
11.4.4检查文件是否存在
11.5文件操作
11.5.1新建文件
11.5.2删除文件
11.5.3打开文件
11.5.4读写文件
11.5.5关闭文件
11.5.6驱动整合
11.6文件系统测试
11.6.1格式化测试
11.6.2文件操作测试
11.7小结
第12章系统调用与应用程序库
12.1系统调用机制
12.1.1软中断指令
12.1.2传递系统调用参数
12.1.3系统调用分发器
12.2时间管理系统调用
12.3进程管理系统调用
12.3.1进程的运行与退出
12.3.2获取进程的ID
12.4内存管理系统调用
12.5设备与文件系统调用
12.5.1设备与文件的打开
12.5.2设备与文件的关闭
12.5.3设备与文件的读写
12.5.4设备与文件的控制
12.6应用程序库
12.7测试
12.8小结
后记
|
|