学习嵌入式系统首先要掌握常用嵌入式处理器、嵌入式操作系统、嵌入式编程语言,即ARM处理器、嵌入式Linux系统、嵌入式C语言,有了这些基础就可以进行嵌入式Linux应用开发、系统开发、驱动开发等的学习。
本书专门为那些已经有较全面的计算机基础,而又希望能快速进入嵌入式Linux相关行业的开发人员而编写,希望能帮助读者快速跨过嵌入式开发的门槛。
本书以嵌入式Linux系统开发流程为主线,剖析了嵌入式Linux系统构建的各个环节。本书从嵌入式系统基础知识和Linux编程技术讲起,接下来介绍了嵌入式Linux交叉开发环境的建立,然后分析了嵌入式Linux系统的引导程序、内核和文件系统三大组成部分,最后介绍了嵌入式Linux系统集成和部署的方法。
本书先以ARM平台为例,对U-Boot和Linux内核启动过程做了详细分析,为学习嵌入式Linux系统开发奠定基础,然后从概念上阐述了嵌入式Linux系统开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式Linux系统的构建。
本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望进入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和教辅材料。
第1章 嵌入式系统概述
1.1 嵌入式系统的定义与特点
1.2 常见的嵌入式操作系统
1.3 嵌入式Linux的发展历史
1.4 初步认识嵌入式Linux开发环境
1.5 嵌入式Linux系统开发要点
第2章 ARM嵌入式处理器
2.1 初识ARM
2.1.1 ARM公司简介
2.1.2 ARM体系结构基础
2.1.3 Linux与ARM处理器
2.2 ARM指令集
2.2.1 ARM处理器的指令集概述
2.2.2 ARM指令寻址方式
2.2.3 Thumb指令概述
2.3 典型ARM处理器简介
2.3.1 Atmel AT91RM9200
2.3.2 Samsung S3C2410
2.3.3 TI OMAP1510/1610系列
2.3.4 Freescale i.Max21
2.4 典型的嵌入式系统开发平台——三星S3C2410开发板
第3章 Linux编程环境
3.1 Linux常用工具
3.1.1 Shell简介
3.1.2 常用Shell命令
3.1.3 编写Shell脚本
3.1.4 正则表达式
3.1.5 Linux程序编辑器
3.2 Makefile简介
3.2.1 GNU make
3.2.2 Makefile规则语法
3.2.3 Makefile文件中变量的使用
3.3 二进制代码工具的使用
3.3.1 GNU Binutils工具介绍
3.3.2 Binutils工具软件使用
3.4 编译器GCC的使用
3.4.1 GCC编译器介绍
3.4.2 GCC编译选项解析
3.5 调试器GDB的使用技巧
3.5.1 GDB调试器介绍
3.5.2 GDB调试命令
3.6 Linux编程库
3.6.1 Linux编程库介绍
3.6.2 Linux系统调用
3.6.3 Linux线程库
第4章 嵌入式交叉开发环境
4.1 交叉开发环境介绍
4.1.1 交叉开发概念模型
4.1.2 目标板与主机之间的连接
4.1.3 文件传输
4.1.4 网络文件系统
4.2 安装交叉编译工具
4.2.1 获取交叉开发工具链
4.2.2 主机安装工具链
4.3 主机开发环境配置
4.3.1 主机环境配置
4.3.2 串口控制台工具
4.3.3 DHCP服务
4.3.4 TFTP服务
4.3.5 NFS服务
4.4 启动目标板
4.4.1 系统引导过程
4.4.2 内核解压启动
4.4.3 挂接根文件系统
4.5 应用程序的远程交叉调试
4.5.1 交叉调试的模型
4.5.2 交叉调试程序实例
……
第5章 交叉开发工具链
第6章 Bootloader
第7章 配置编译Linux 2.6内核
第8章 基于ARM的Linux内核移植
第9章 内核调试技术
第10章 制作Linux根文件系统
第11章 在嵌入式系统中充分利用开源软件
第12章 系统集成测试
第13章 部署Linux系统
第14章 嵌入式Linux系统软硬件设计开发实例——GPS系统