内容简介
第一篇 基础篇
第1章 嵌入式系统概述
1.1 嵌入式系统
1.1.1 嵌入式系统的定义
1.1.2 嵌入式系统组成
1.1.3 嵌入式系统的特点
1.1.4 嵌入式系统的应用
1.2 嵌入式操作系统
1.2.1 嵌入式操作系统分类
1.2.2 当前主流的嵌入式操作系统
1.3 嵌入式Linux操作系统
1.3.1 Linux简介
1.3.2 嵌入式Linux操作系统
1.3.3 嵌入式Linux操作系统的优势
1.4 嵌入式Linux开发环境
1.5 嵌入式Linux系统开发要点
本章小结
第2章 初识Linux
2.1 安装发行版Linux操作系统
2.1.1 安装虚拟机VMware
2.1.2 在虚拟机VMware中安装RedHat Linux 9.0操作系统
2.1.3 安装VMware Tools
2.2 Linux的目录结构
2.3 Linux的文件属性
2.4 Linux的文件类型
2.5 Shell
2.5.1 Shell简介
2.5.2 常用Shell命令
2.6 Shell编程基础
2.6.1 建立和运行Shell程序
2.6.2 Shell中的变量
2.6.3 Shell中引号的使用方法
2.6.4 Shell中的test命令
2.6.5 条件语句
2.6.6 循环语句
2.6.7 Shell中的函数
本章小结
第3章 Linux编程环境
3.1 编辑器vi
3.1.1 vi简介
3.1.2 vi用法
3.1.3 vi使用实例分析
3.2 编译器gcc
3.2.1 gcc简介
3.2.2 gcc的执行过程
3.2.3 gcc的基本用法和选项
3.2.4 gcc编译实例
3.3 调试器GDB
3.3.1 GDB简介
3.3.2 GDB常用命令
3.3.3 GDB使用实例
3.4 make工具和Makefile规则
3.4.1 make和Makefile概述
3.4.2 Makefile文件内容
3.4.3 Makefile规则
3.4.4 make工作原理
3.4.5 Makefile中的变量
3.4.6 clean命令的应用
3.4.7 Makefile文件示例
3.5 glibc
3.5.1 Linux编程库简介
3.5.2 Linux线程库
本章小结
第4章 交叉开发环境
4.1 交叉编译
4.2 交叉开发环境
4.3 交叉开发工具组成
4.4 宿主机与目标机之间的通信方式
4.4.1 互联通信方式
4.4.2 可拔插通信方式
4.5 交叉开发环境建立
4.5.1 创建交叉开发工具链
4.5.2 宿主机开发环境配置
4.6 基于UP-NETARM2410-S开发平台交叉开发环境建立
4.6.1 安装PC机RedHatLinux虚拟机
4.6.2 开发工具软件的安装
4.6.3 宿主机网络配置
4.6.4 宿主机串口配置
4.6.5 基于UP-NETARM2410-S开发平台交叉开发环境建立的总结
4.7 交叉编译和交叉调试实例
本章小结
第5章 ARM处理器
5.1 ARM处理器概述
5.1.1 ARM
5.1.2 ARM微处理器的应用领域及特点
5.1.3 ARM微处理器版本及系列
5.2 ARM微处理器结构
5.2.1 RISC体系结构
5.2.2 ARM微处理器的寄存器结构
5.2.3 ARM微处理器的指令结构
5.3 ARM编程模型
5.3.1 处理器的工作状态
5.3.2 流水线技术
5.3.3 存储器模式
5.3.4 数据和指令类型
5.3.5 处理器工作模式
5.3.6 寄存器组织
5.3.7 异常
5.4 ARM指令集
5.4.1 ARM处理器寻址方式
5.4.2 常见ARM指令集
5.5 ARM汇编程序设计
5.5.1 ARM汇编程序一些规范
5.5.2 ARM汇编程序设计举例
本章小结
第二篇 提高篇
第6章 创建嵌入式Linux交叉开发工具链
6.1 下载源文件
6.2 建立工作目录
6.3 输出环境变量
6.4 建立内核头文件
6.5 建立二进制工具
6.6 建立初始编译器
6.7 建立c库
6.8 建立全套编译器
6.9 完成工具链的设置
6.10 测试和验证交叉编译工具
本章小结
第7章 嵌入式Linux引导程序
7.1 引导程序(Bootloader)概述
7.2 ARM Bootloader的作用
7.3 Bootloader通用的概念
7.4 Bootloader的主要任务与框架结构
7.5 vivi
7.5.1 vivi简介
7.5.2 vivi的软件结构分析
7.5.3 vivi启动原理
7.6 vivi移植实例(移植vivi到博创2410)
7.6.1 对vivi进行移植修改
7.6.2 对vivi进行配置与编译
7.6.3 烧写vivi
7.6.4 测试vivi
本章小结
第8章 嵌入式Linux内核
8.1 Linux内核简介
8.2 Linux内核软件结构分析
8.2.1 Linux内核配置系统原理
8.2.2 配置Linux内核
8.2.3 Linux内核启动原理
8.3 Linux内核移植实例(移植Linux2.6.14.1到博创2410)
8.3.1 下载Linux内核并解压
8.3.2 修改Makefile
8.3.3 设置Flash分区
8.3.4 配置内核
8.3.5 测试2.6.14.1内核
8.3.6 内核编译过程中产生的部分错误及其解决方法
本章小结
第9章 嵌入式Linux根文件系统
9.1 文件系统
9.1.1 文件系统简介
9.1.2 文件和目录
9.1.3 文件权限
9.1.4 文件链接
9.1.5 文件系统
9.2 Linux文件系统
9.2.1 Linux文件系统概述
9.2.2 Linux文件系统组成
9.2.3 Linux文件系统管理
9.2.4 虚拟文件系统(VFS)
9.2.5 安装和卸载文件系统
9.3 嵌入式闪存文件系统
9.3.1 嵌入式系统存储设备及其管理机制分析
9.3.2 基于Flash的文件系统
9.3.3 基于RAM的文件系统
9.3.4 网络文件系统NFS(Network File System)
9.4 构建嵌入式Linux根文件系统原理
9.4.1 根文件系统关键目录
9.4.2 根文件系统关键文件
9.4.3 BusyBox
9.5 构建嵌入式Linux根文件系统实例——CramFS根文件系统构建(博创2410)
9.5.1 创建根文件系统目录
9.5.2 创建设备文件
9.5.3 编译BusyBox
9.5.4 系统配置文件的建立
9.5.5 添加应用程序
9.5.6 创建lib库文件
9.5.7 cramfs文件系统映像的制作
9.5.8 下载cramfs根文件系统映像到开发板
9.5.9 测试cramfs根文件系统
9.5.10 cramfs根文件系统制作中的常见错误及解决办法
本章小结
第10章 嵌入式Linux设备驱动
10.1 Linux设备驱动基本原理
10.1.1 概述
10.1.2 设备文件
10.1.3 使用/proc目录中的文件监视驱动程序的状态
10.2 Linux设备驱动程序模块
10.3 Linux设备驱动程序接口
10.4 Linux设备驱动程序实现过程
10.4.1 驱动程序的注册与注销
10.4.2 设备的打开与释放
10.4.3 设备的控制操作(ioctl)
10.4.4 中断处理
10.5 怎样编写设备驱动程序
10.6 Linux2.6内核驱动原理
本章小结
第三篇 实践篇
第11章 TFT-LCD驱动程序开发
11.1 TFT-LCD工作原理
11.1.1 LCD概述
11.1.2 LCD显示原理
11.1.3 LCD驱动原理
11.1.4 LCD的分类
11.2 LQ080V3DG01液晶屏
11.3 SC2410内部LCD控制器
11.3.1 管脚
11.3.2 寄存器介绍
11.3.3 控制流程
11.3.4 TFT控制器操作
11.4 Linux驱动程序接口——FrameBuffer
11.4.1 FrameBuffer
11.4.2 数据结构
11.5 LCD驱动程序主要代码结构以及关键代码分析
11.5.1 FrameBuffer驱动的统一管理
11.5.2 实现消息的分派
11.5.3 开发板S3C2410 LCD驱动的流程
11.6 LCD驱动程序开发实例
11.6.1 S3C2410与LCD模块的连接电路
11.6.2 修改代码(一)——LCD显示企鹅图像
11.6.3 修改代码(二)——LCD显示小车图像
本章小结
第12章 USB驱动程序开发
12.1 USB简介
12.1.1 USB
12.1.2 USB的结构及传输方式
12.1.3 USB设备的使用
12.1.4 USB的优势
12.2 Linux USB子系统
12.2.1 文件系统
12.2.2 USB驱动程序(USBD)
12.2.3 主机控制器驱动程序(hcd)
12.2.4 客户端驱动程序
12.3 USB客户端驱动程序架构和开发
12.3.1 USB的协议规范初识
12.3.2 Linux的USB驱动框架
12.4 在Linux内核中加入USB模块
12.4.1 配置文件
12.4.2 调试
12.5 USB驱动程序开发实例
12.5.1 S3C2410与USB模块的连接电路
12.5.2 制作新的根文件系统
12.5.3 修改代码
本章小结
第13章 Qt图形应用程序设计
13.1 图形用户界面系统(GUI)
13.2 Qt和Qt/Embedded简介
13.3 Qt/Embedded体系结构
13.3.1 交叉开发平台
13.3.2 Qt/E的窗口系统
13.3.3 Qt/E图形引擎的实现
13.4 Qt编程入门
13.4.1 Qt编程实例
13.4.2 代码解释
13.5 Qt和Qt/E开发环境的建立和移植
13.5.1 Qt2和Qt2/E开发环境的建立
13.5.2 Qt2/E程序在博创2410开发板上的移植
13.5.3 Qtopia开发环境的建立
本章小结
参考文献