标题：ARM&Linux嵌入式系统开发详解
基本信息

  ARM&amp;amp;Linux嵌入式系统开发详解作者：锐极电子科技有限公司
ISBN：10位［7810779788］13位［9787810779784］
出版社：北京航空航天大学
出版日期：2007-03
定价：￥33.00元
内容简介
本书分为基础篇和实验篇两大部分，主要是针对理论和实践相结合的嵌入式Linux开发的教材和培训用书。基础篇主要包括嵌入式系统基础、嵌入式系统开发过程、ARM体系结构和嵌入式系统的BootLoad开发引导详解，为嵌入式系统初学者能快速入门提供了基础。实验篇详细讲解了如何创建嵌入式系统开发环境、如何在ARM平台上移植Linux系统，以及Linux设备驱动程序开发、USB设备驱动程序开发、嵌入式Linux网络编程和图形用户接口开发等，每章都配有丰富的实验内容，使读者能够理论联系实际，边学边用，更快更好地掌握所学知识。     本书可作为高等院校计算机类、电子类、电气类、控制类等专业高年级本科生、研究生教材，也可供广大工程技术人员参考使用，还可作为嵌入式培训教材和参考书。
前言
如今，人类已经进入了后PC时代，伴随信息技术与网络技术的高速发展，嵌入式技术已被广泛应用于科学研究、工程设计、军事技术以及文艺、商业等方方面面，成为后PC时代的主力军。     嵌入式系统和Linux的有机结合，成为后PC时代计算机最普遍的应用形式。嵌入式Linux不仅继承了Linux源代码开放、内核稳定高效、软件丰富、强大的网络支持功能、优秀的开发工具等优势，而且还具备支持广泛的处理器结构和硬件平台占有空间小、成本低等特点。
嵌入式Linux技术在中国有巨大的发展潜力和市场需求。有数据显示，未来两年里，在计算机、消费电子、通信、汽车电子、工业控制、军事国防这六大主要应用领域，嵌入式Linux产品将达到80亿美元的市场规模。
编写目的
嵌入式Linux属于一个交叉学科，涵盖了微电子技术、电子信息技术、计算机软件和硬件等多项技术领域的应用。另外嵌入式Linux需要相应的嵌入式开发板和软件，还需要有经验的人进行指导开发，目前国内大部分高校都很难达到这种要求，这也造成了目前国内嵌入式Linux开发人才极其缺乏的局面。
因此,上海锐极科技有限公司在自主研发的嵌入式Linux开发平台的基础上编写了此书，希望能帮助读者快速跨入嵌入式Linux开发的门槛。
主要内容
本书主要分为两大部分，基础篇和实验篇。基础篇主要讲解了嵌入式系统基础知识、嵌入式系统开发过程、ARM体系结构和嵌入式系统的BootLoad开发引导，为嵌入式系统初学者能快速入门提供了基础。
实验篇详细讲解了如何创建嵌入式系统开发环境、如何在ARM平台上移植Linux系统、Linux设备驱动程序开发、USB设备驱动程序开发、嵌入式Linux网络编程和图形用户接口开发等，每章都配有丰富的实验内容，使读者能够理论联系实际，边学边用，更快更好地掌握所学知识。
实验平台
本书所用的硬件平台是锐极RJARM9?EDU教学实验系统，所有的程序都是基于该平台下精心设计的实验，实验程序也可移植到其他ARM平台上。
本书由李道流编写第1、6、10章，王冬青编写第3、8、9章，陈猛编写第4、7章，季乐威编写第2、5章，全书由李道流统稿。
阅读建议
本书以实践为特色，提供了大量的实验，若读者能自己动手操作本书提供的每一个实验，一定会取得很快的提高。
致谢
本书编写参考了很多网友贡献的宝贵资料，没有你们无私的贡献，此书也无法完成，在此特向那些无名作者表示谢意。
鉴于作者水平有限，加之时间仓促，本书一定有不少缺点和错误，希望得到广大读者批评指正。我们将在吸取大家意见和建议的基础上，不断完善此书的内容，在下一次改版中进行订正。任何批评和建议请发到告知我们，以便共同提高。
目录
第一篇 基础篇 第1章 嵌入式系统基础
1.1 嵌入式系统3
1.1.1 嵌入式系统的概念3
1.1.2 嵌入式系统的组成3
1.1.3 嵌入式系统的特点4
1.1.4 嵌入式系统的应用5
1.1.5 实时操作系统5
1.2 嵌入式处理器6
1.2.1 嵌入式处理器简介6
1.2.2 嵌入式处理器分类6
1.3 嵌入式操作系统8
1.3.1 操作系统简介8
1.3.2 嵌入式操作系统基本概念10
1.3.3 使用实时操作系统的必要性11
1.3.4 实时操作系统的优缺点11
1.4 ARM9实验系统12
1.4.1 ARM9教学实验系统简介12
1.4.2 ARM9教学实验系统操作步骤13
第2章 嵌入式系统开发过程
2.1 嵌入式软件开发的特点17
2.2 嵌入式软件的开发流程18
2.3 嵌入式系统调试方法19
2.3.1 ARM仿真器19
2.3.2 GDB调试20
2.4 嵌入式系统集成开发环境23
第3章 ARM体系结构
3.1 ARM介绍24
3.1.1 ARM微处理器系列25
3.1.2 ARM体系结构28
3.2 ARM编程模型32
3.2.1 工作状态及切换32
3.2.2 存储器格式32
3.2.3 存储器访问33
3.2.4 体系结构直接支持的指令和数据类型34
3.2.5 处理器模式34
3.2.6 内部寄存器35
3.2.7 异常40
第4章 BootLoader
4.1 嵌入式系统的引导代码45
4.2 vivi45
4.3 U?Boot58
4.4 PPCBoot62
4.5 RJARM2410平台BootLoad代码65
4.5.1 启动分析65
4.5.2 片选69
4.6 ARMLinux启动分析72
4.6.1 概述72
4.6.2 head.S和heads3c2410.S分析73
4.6.3 headarmv.S分析86
第二篇 实验篇
第5章 创建嵌入式系统开发环境
5.1 嵌入式Linux的开发环境99
5.2 Cygwin100
5.3 交叉编译的预备知识101
5.4 交叉编译101
5.4.1 安装Linux的头文件102
5.4.2 编译安装binutils105
5.4.3 编译安装gcc的C编译器105
5.4.4 编译安装glibc106
5.4.5 编译安装gcc的C, C++编译器107
5.5 Makefile解析108
5.6 实验1： 一个简单的应用程序——Helloworld110
第6章 Linux系统在ARM平台的移植
6.1 移植的概念115
6.2 Linux内核结构115
6.2.1 Linux内核组成115
6.2.2 子系统相互间的关系116
6.2.3 系统数据结构116
6.2.4 Linux系统实现结构117
6.2.5 Linux内核源代码117
6.3 Linux操作系统移植118
6.3.1 Linux系统移植的两大部分119
6.3.2 系统移植所必需的环境119
6.4 编译Linux内核122
6.5 文件系统简介123
6.6 实验2： RAMDISK文件系统制作126
6.7 实验3： Linux2.6内核移植131
第7章 Linux设备驱动程序开发
7.1 设备驱动概述144
7.2 设备驱动基础151
7.3 设备驱动模块化编程155
7.4 实验4： 框架型驱动161
7.5 实验5： 小键盘+LED驱动171
7.6 实验6： LCD驱动182
7.7 实验7： IDE硬盘接口205
7.8 实验8： 音频输入/输出227
第8章 USB设备驱动程序开发
8.1 USB协议简介259
8.2 USB体系结构261
8.3 USB通信协议263
8.4 USB设备驱动程序设计265
8.4.1 USB系统编程框架266
8.4.2 编写USB设备驱动程序271
8.5 实验9： USB接口277
第9章 嵌入式Linux网络编程
9.1 嵌入式Linux网络体系结构280
9.2 嵌入式Linux环境下的socket编程284
9.3 实验10： 以太网socket通信290
第10章 图形用户接口开发
10.1 嵌入式系统中的GUI简介303
10.1.1 基于嵌入式Linux的GUI系统底层实现基础303
10.1.2 3种嵌入式GUI系统的分析与比较304
10.2 MiniGUI编程305
10.2.1 概述305
10.2.2 窗口308
10.2.3 对话框、窗片和控件313
10.2.4 消息及消息队列313
10.2.5 图形设备接口314
10.2.6 菜单321
10.2.7 定时器322
10.2.8 鼠标光标323
10.2.9 插入符323
10.2.10 键盘和鼠标输入324
10.2.11 键盘快捷键324
10.3 初识Qt/Embedded324
10.4 Qt/Embedded嵌入式图形开发基础339
10.4.1 Qt的资源340
10.4.2 系统要求341
10.4.3 架构342
10.4.4 窗口系统342
10.4.5 字体343
10.4.6 输入设备343
10.4.7 输入方法343
10.4.8 屏幕加速344
10.5 Qt/Embedded实战演练344
10.6 实验11： 图形界面GUI实验353
附录A Linux下常用命令373
参考文献385