第一章: 前言 | 第1-26页 |
1.1 嵌入式系统的概念 | 第20页 |
1.2 嵌入式系统的特点 | 第20页 |
1.3 嵌入式系统的分类 | 第20-21页 |
1.3.1 从对时间敏感性 | 第20-21页 |
1.3.2 从系统硬件结构 | 第21页 |
1.4 嵌入式系统的历史 | 第21-22页 |
1.5 嵌入式系统的未来 | 第22页 |
1.6 嵌入式操作系统 | 第22-24页 |
1.6.1 EOS的特点 | 第23页 |
1.6.2 EOS的分类 | 第23-24页 |
1.7 Linux为嵌入式带来新机 | 第24页 |
1.8 论文的内容和结构 | 第24-26页 |
第二章: 嵌入式Linux技术综述 | 第26-33页 |
2.1 Linux操作系统 | 第26-27页 |
2.1.1 Linux的Unix特征 | 第26页 |
2.1.2 Linux具有的新特征 | 第26-27页 |
2.1.3 Linux系统发展现状 | 第27页 |
2.2 嵌入式Linux系统的优势 | 第27-28页 |
2.3 嵌入式Linux系统的构成 | 第28页 |
2.3.1 最小的Linux系统 | 第28页 |
2.3.2 基本的Linux系统 | 第28页 |
2.3.3 实用的Linux系统 | 第28页 |
2.4 嵌入式Linux的特性 | 第28-31页 |
2.4.1 实时特性 | 第28-29页 |
2.4.2 内存占用 | 第29页 |
2.4.3 虚存特性 | 第29-30页 |
2.4.3.1 两个硬件条件 | 第29页 |
2.4.3.2 虚存管理的好处 | 第29页 |
2.4.3.3 虚存管理的代价 | 第29页 |
2.4.3.4 嵌入式中的处理 | 第29-30页 |
2.4.3.5 关闭虚存特性 | 第30页 |
2.4.4 文件系统 | 第30-31页 |
2.4.4.1 使用VFS管理各文件系统 | 第30页 |
2.4.4.2 用Buffer Cache提高速度 | 第30页 |
2.4.4.3 Buffer Cache机制的问题 | 第30页 |
2.4.4.4 文件系统和存储介质分配 | 第30-31页 |
2.4.5 进程通信 | 第31页 |
2.5 嵌入式Linux的弱点 | 第31页 |
2.6 面临的主要工作 | 第31-33页 |
第三章: 路由器总体设计分析 | 第33-37页 |
3.1 系统功能 | 第33页 |
3.1.1 硬件需求 | 第33页 |
3.1.2 软件需求 | 第33页 |
3.1.3 性能需求 | 第33页 |
3.2 系统组成 | 第33-35页 |
3.2.1 软件平台 | 第33-34页 |
3.2.2 硬件平台 | 第34页 |
3.2.3 核心组件 | 第34页 |
3.2.4 硬件结构图 | 第34-35页 |
3.2.5 软件框架图 | 第35页 |
3.3 设计分析 | 第35-36页 |
3.3.1 内核支持的功能 | 第36页 |
3.3.2 有待完成的任务 | 第36页 |
3.3.3 采用的设计方法 | 第36页 |
3.4 开发步骤 | 第36页 |
3.5 任务划分 | 第36-37页 |
第四章: 建立交叉开发环境 | 第37-42页 |
4.1 Target System | 第37页 |
4.2 Host Development Platform | 第37-38页 |
4.2.1 基于PowerPC CPU的主机系统 | 第38页 |
4.2.2 基于X86/IA32 CPU的系统 | 第38页 |
4.3 建立交叉编译环境 | 第38-41页 |
4.3.1 Native Host Environment | 第38-39页 |
4.3.2 Building Binutils | 第39页 |
4.3.3 Building a Bootstrap gcc | 第39页 |
4.3.4 Building the Linux Kernel | 第39-40页 |
4.3.5 Building the glibc for app development | 第40页 |
4.3.6 Rebuilding gcc to use glibc | 第40-41页 |
4.3.7 建立交叉调试器gdb | 第41页 |
4.4 编译问题 | 第41-42页 |
第五章: 调试目标系统 | 第42-55页 |
5.1 基本原理 | 第42-44页 |
5.1.1 加载和运行方式 | 第42页 |
5.1.2 没有OS的嵌入式系统 | 第42-43页 |
5.1.3 嵌入式Linux系统 | 第43-44页 |
5.2 编写代码 | 第44-46页 |
5.2.1 ppcboot的内存布局 | 第44-45页 |
5.2.2 ppcboot系统初始化 | 第45-46页 |
5.2.3 用ppcboot启动系统 | 第46页 |
5.3 调试代码 | 第46-52页 |
5.3.1 基本方法 | 第46-47页 |
5.3.2 硬件单步 | 第47页 |
5.3.3 Monitor | 第47页 |
5.3.4 ICE仿真 | 第47-48页 |
5.3.5 BDM调试 | 第48页 |
5.3.6 调试问题 | 第48-49页 |
5.3.6.1 三类问题 | 第48-49页 |
5.3.6.2 解决方法 | 第49页 |
5.3.7 BDM vs ICE | 第49页 |
5.3.8 调试步骤 | 第49-52页 |
5.3.8.1 使用BDM方式 | 第49-50页 |
5.3.8.2 ROM Monitor | 第50-52页 |
5.4 根文件系统 | 第52-54页 |
5.4.1 实现原理 | 第52-53页 |
5.4.2 系统类型 | 第53页 |
5.4.3 建立映像 | 第53页 |
5.4.4 加载映像 | 第53-54页 |
5.5 固化代码 | 第54-55页 |
5.5.1 Programmers | 第54页 |
5.5.2 BDM下载 | 第54-55页 |
第六章: 定制Linux系统 | 第55-67页 |
6.1 主要方法 | 第55页 |
6.2 缩减体积 | 第55-57页 |
6.2.1 从内核方面 | 第55-56页 |
6.2.2 从用户方面 | 第56页 |
6.2.3 库裁减技术 | 第56-57页 |
6.3 增强实时性 | 第57-62页 |
6.3.1 IEEE 1003.1b | 第57页 |
6.3.2 用双内核方法 | 第57-62页 |
6.3.2.1 RT-Linux机理 | 第58页 |
6.3.2.2 内核环境变化 | 第58-59页 |
6.3.2.3 分为两类中断 | 第59-60页 |
6.3.2.4 中断处理时机 | 第60-61页 |
6.3.2.5 双内核间通信 | 第61页 |
6.3.2.6 实时程序结构 | 第61-62页 |
6.3.2.7 实时性的弱化 | 第62页 |
6.4 利用LKM机制 | 第62-67页 |
6.4.1 为系统调用增加Hook | 第62-63页 |
6.4.2 增加系统API | 第63-65页 |
6.4.3 监视内核状态 | 第65-66页 |
6.4.4 其它应用场合 | 第66-67页 |
第七章: 利用Linux的网络支持 | 第67-80页 |
7.1 网络协议结构 | 第67-68页 |
7.2 包traffic过程 | 第68-71页 |
7.2.1 基本原理 | 第68-69页 |
7.2.2 发送数据包 | 第69-70页 |
7.2.3 接收数据包 | 第70-71页 |
7.2.4 转发数据包 | 第71页 |
7.3 网络设备驱动 | 第71-74页 |
7.3.1 设备表示 | 第71-72页 |
7.3.2 设备加载 | 第72-73页 |
7.3.3 编写驱动 | 第73-74页 |
7.3.4 忙时问题 | 第74页 |
7.3.5 处理措施 | 第74页 |
7.4 改造网络代码 | 第74-78页 |
7.4.1 WAN、LAN间转发原理 | 第74-76页 |
7.4.2 改变内核的协议层次 | 第76-78页 |
7.4.2.1 设计思路 | 第76-77页 |
7.4.2.2 具体实现 | 第77-78页 |
7.4.2.2.1 发送处理 | 第77-78页 |
7.4.2.2.2 接收处理 | 第78页 |
7.4.2.2.3 连接维护 | 第78页 |
7.5 实现动态路由 | 第78-79页 |
7.5.1 设计原理 | 第78-79页 |
7.5.2 修改gated | 第79页 |
7.5.3 内核控制 | 第79页 |
7.6 配置界面 | 第79-80页 |
结束语 | 第80-81页 |
附 录: 致谢 | 第81-83页 |
文献 | 第82-83页 |
GUI | 第83页 |