《ARM嵌入式Linux系统开发详解(第2版)》是2014年2月1日清华大学出版社出版的图书,作者是弓雷。
基本介绍
- 书名:ARM嵌入式Linux系统开发详解(第2版)(Linux典藏大系)
- 作者:弓雷
- ISBN:9787302340522
- 类别:IT计算机
- 页数:466页
- 定价:69
- 出版社:清华大学出版社
- 出版时间:2014年2月1日
- 开本:16开
内容简介
《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》由浅入深,全面、系统地介绍了基于ARM体系结构的嵌入式Linux系统开发所涉及的方方面面技术,并提供了大量实例供读者实战演练。另外,《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》提供了9小时多媒体教学视频及书中涉及的实例源程式,便于读者高效、直观地学习。
编辑推荐
嵌入式Linux开发精品图书全面升级,ChinaUnix社区鼎力推荐 由浅入深,全面解析基于ARM体系结构的嵌入式Linux系统开发 结合多个实例和5个典型案例,深入剖析嵌入式开发的原理及过程
赠送40段共9小时语音教学视频,赠送教学PPT
版本新颖:书中涉及的软体及开发环境都是当前最为流行的版本
由浅入深:从嵌入式系统的软硬体开始讲解,逐步深入到实际开发
内容全面:涵盖嵌入式Linux系统开发的大部分知识点和典型套用
注重原理:对每个知识点从概念和基本原理进行了详细而透彻的分析
重点突出:对Bootloader和Linux核心的功能和移植进行了详细介绍
实践性强:结合多个典型实例和5个套用案例,提高读者的开发水平
推荐阅读(请点丛书连结查看)
“Linux典藏大系”(丛书畅销10万册,全面、详细、深入、实用,Linux爱好者必读经典)
入门很简单丛书(精品畅销丛书,有口皆碑,新手必读)
零点起飞学编程(新手学编程好帮手,编程其实并不难)
Web开发典藏大系 (涵盖众多Web开发的前言技术,由一线Web开发人员打造)
《程式设计师的数学思维修炼(趣味解读)》(专门为程式设计师而写的数学书,生动有趣,程式设计师必读!)
赠送40段共9小时语音教学视频,赠送教学PPT
版本新颖:书中涉及的软体及开发环境都是当前最为流行的版本
由浅入深:从嵌入式系统的软硬体开始讲解,逐步深入到实际开发
内容全面:涵盖嵌入式Linux系统开发的大部分知识点和典型套用
注重原理:对每个知识点从概念和基本原理进行了详细而透彻的分析
重点突出:对Bootloader和Linux核心的功能和移植进行了详细介绍
实践性强:结合多个典型实例和5个套用案例,提高读者的开发水平
推荐阅读(请点丛书连结查看)
“Linux典藏大系”(丛书畅销10万册,全面、详细、深入、实用,Linux爱好者必读经典)
入门很简单丛书(精品畅销丛书,有口皆碑,新手必读)
零点起飞学编程(新手学编程好帮手,编程其实并不难)
Web开发典藏大系 (涵盖众多Web开发的前言技术,由一线Web开发人员打造)
《程式设计师的数学思维修炼(趣味解读)》(专门为程式设计师而写的数学书,生动有趣,程式设计师必读!)

内容推荐
“Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,长期位居同类图书销售排行榜的前列,累计销量近10万册。丛书中部分图书荣获51CTO读书频道“最受读者喜爱的原创IT技术图书奖”,还有多种图书的中文繁体字着作权输出到了中国台湾地区出版发行。丛书中的多个品种被国内几十所培训机构和大中专院校选为教材。丛书的出版还得到了国内Linux领域最知名的技术社区ChinaUnix的大力支持。读者在ChinaUnix社区的论坛上与社区中的Linux爱好者进行了广泛的交流,取得了良好的学习效果。2014年2月“Linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合了Linux技术的最新发展,全部採用当前最流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。
《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》由浅入深,全面、系统地介绍了基于ARM体系结构的嵌入式Linux系统开发所涉及的方方面面技术,并提供了大量实例供读者实战演练。另外,《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》提供了9小时多媒体教学视频及书中涉及的实例源程式,便于读者高效、直观地学习。
《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》共分4篇。第1篇介绍了嵌入式系统入门、嵌入式软硬体系统、ARM处理器、嵌入式Linux、软体开发环境建立和第一个Linux应用程式;第2篇介绍了Linux应用程式编程基础、开发多进程/执行绪程式、网路通信套用、串列口通信编程、嵌入式GUI程式开发和软体项目管理;第3篇介绍ARM体系结构及开发实例、深入Bootloader、解析Linux核心、嵌入式Linux启动流程、Linux档案系统、建立交叉编译工具链、命令系统BusyBox、Linux核心移植,以及核心和应用程式调试技术;第4篇结合5个案例介绍了Linux设备驱动、网路设备驱动、Flash设备驱动和USB驱动的开发过程,以此提高读者的实战水平。
《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》适合广大从事嵌入式Linux系统开发的人员、对嵌入式Linux系统开发有兴趣的爱好者及大中专院校相关专业的学生阅读。
作者简介
弓雷,从事嵌入式系统软体开发9年。擅长计算机通信技术,对作业系统核心及底层技术有深入研究。技术涉猎广泛,熟悉Intel IXA架构网路处理器、ARM体系结构、MIPS体系结构和TCP/IP网路协定栈等。曾经移植过Linux 2.6核心到嵌入式设备,参与研发了某部队火控武器通信系统、无人驾驶汽车项目通信系统及10GE/POS骨干网流量管理系统等。目前担任嵌入式软体研发工程师和微码软体研发工程师,从事某公司骨干网P2P流量管理设备的研发。
目录
第1篇Linux嵌入式开发基础篇
第1章嵌入式系统入门
1.1什幺是嵌入式系统
1.2嵌入式系统套用领域
1.2.1家用电器和电子类产品
1.2.2交通工具
1.2.3公共电子设施
1.3嵌入式系统发展
1.3.1嵌入式微控制器
1.3.2嵌入式微处理器
1.3.3未来嵌入式系统发展的方向
1.4典型的嵌入式系统组成
1.5小结
第2章嵌入式软硬体系统
2.1电路基本知识
第1章嵌入式系统入门
1.1什幺是嵌入式系统
1.2嵌入式系统套用领域
1.2.1家用电器和电子类产品
1.2.2交通工具
1.2.3公共电子设施
1.3嵌入式系统发展
1.3.1嵌入式微控制器
1.3.2嵌入式微处理器
1.3.3未来嵌入式系统发展的方向
1.4典型的嵌入式系统组成
1.5小结
第2章嵌入式软硬体系统
2.1电路基本知识
第1篇Linux嵌入式开发基础篇
第1章嵌入式系统入门
1.1什幺是嵌入式系统
1.2嵌入式系统套用领域
1.2.1家用电器和电子类产品
1.2.2交通工具
1.2.3公共电子设施
1.3嵌入式系统发展
1.3.1嵌入式微控制器
1.3.2嵌入式微处理器
1.3.3未来嵌入式系统发展的方向
1.4典型的嵌入式系统组成
1.5小结
第2章嵌入式软硬体系统
2.1电路基本知识
2.1.1什幺是模拟电路
2.1.2什幺是数字电路
2.1.3数制转换
2.2计算机组成原理
2.2.1计算机体系的发展
2.2.2中央处理器
2.2.3存储系统
2.2.4汇流排系统
2.2.5输入输出系统
2.3软体基础知识
2.3.1什幺是软体
2.3.2软体开发流程
2.3.3常见的软体开发模型
2.3.4计算机程式语言
2.3.5数据结构
2.4作业系统知识
2.4.1什幺是作业系统
2.4.2作业系统的发展历史
2.4.3作业系统由什幺组成
2.4.4几种作业系统的设计思路
2.4.5作业系统分类
2.5小结
第3章ARM处理器
3.1微处理器和微控制器
3.2ARM处理器介绍
3.2.1ARM微处理器的套用领域
3.2.2ARM的功能特点
3.3ARM指令集
3.3.1算术运算指令
3.3.2逻辑运算指令
3.3.3分支指令
3.3.4数据传送指令
3.4ARM的结构
3.4.1ARM体系结构的命名方法
3.4.2处理器系列划分
3.4.3处理器工作模式
3.4.4存储系统
3.4.5定址方式
3.5ARM的功能选型
3.5.1ARM的选型原则
3.5.2几种常见的ARM核处理器选型参考
3.6小结
第4章嵌入式Linux
4.1常见的嵌入式作业系统
4.1.1VxWorks
4.1.2WindowsCE
4.1.3PalmOS
4.1.4Symbian
4.2嵌入式Linux作业系统
4.2.1什幺是Linux
4.2.2Linux与UNIX的不同——GPL着作权协定介绍
4.2.3Linux发行版
4.2.4常见的嵌入式Linux系统
4.3小结
第5章建立软体开发环境
5.1独立的Linux系统
5.1.1安装UbuntuLinux
5.1.2怎样安装、卸载软体
5.1.3怎样配置系统服务
5.1.4安装主要的开发工具
5.1.5安装其他的开发工具和文档
5.2运行在Windows上的Linux系统
5.2.1什幺是Cygwin
5.2.2如何安装Cygwin
5.2.3安装开发环境
5.3Linux常用工具
5.3.1Linuxshell和常用命令
5.3.2文本编辑工具vi
5.3.3搜寻工具find和grep
5.3.4FTP工具
5.3.5串口工具minicom
5.4Windows常用工具
5.4.1代码编辑管理工具SourceInsight
5.4.2串口工具XShell
5.5ARM集成开发环境ADS
5.5.1ADS集成开发环境介绍
5.5.2配置ADS调试环境
5.5.3建立自己的工程
5.6小结
第6章第一个Linux应用程式
6.1向世界问好——Hello,World!
6.1.1用vi编辑原始码档案
6.1.2用gcc编译程式
6.1.3执行程式
6.2程式背后做了什幺
6.2.1程式执行的过程
6.2.2窥视程式执行中的秘密
6.2.3动态库的作用
6.3程式如何来的——编译的全部过程
6.3.1编译原始码
6.3.2连线目标档案到指定的库
6.4更简单的办法——用Makefile管理工程
6.4.1什幺是Makefile
6.4.2它是如何工作的
6.4.3如何使用Makefile
6.4.4好的原始码管理习惯
6.5小结
第2篇Linux嵌入式开发套用篇
第7章Linux应用程式编程基础
7.1记忆体管理和使用
7.1.1堆和栈的区别
7.1.2记忆体管理函式malloc()和free()
7.1.3实用的记忆体分配函式calloc()和realloc()
7.1.4记忆体管理编程实例
7.2ANSIC档案管理
7.2.1档案指针和流
7.2.2存储方式
7.2.3标準输入、标準输出和标準错误
7.2.4缓冲
7.2.5打开、关闭档案
7.2.6读写档案
7.2.7档案流定位
7.2.8ANSIC档案编程实例
7.3POSIX档案I/O编程
7.3.1底层的档案I/O操作
7.3.2档案描述符
7.3.3创建/打开/关闭档案
7.3.4读写档案内容
7.3.5档案内容定位
7.3.6修改已打开档案的属性
7.3.7POSIX档案编程实例
7.4小结
第8章开发多进程/执行绪程式
8.1多进程开发
8.1.1什幺是进程
8.1.2进程环境和属性
8.1.3创建进程
8.1.4等待进程结束
8.1.5退出进程
8.1.6常用进程间通信的方法
8.1.7进程编程实例
8.2多执行绪开发
8.2.1执行绪的概念
8.2.2进程和执行绪对比
8.2.3创建执行绪
8.2.4取消执行绪
8.2.5等待执行绪
8.2.6使用pthread库执行绪操作实例
8.3小结
第9章网路通信套用
9.1网路通信基础
9.1.1TCP/IP协定族
9.1.2IP协定
9.1.3TCP协定
9.1.4UDP协定
9.1.5学习分析协定的方法
9.2Socket通信基本概念
9.2.1创建socket对象
9.2.2面向连线的Socket通信实现
9.2.3面向连线的echo服务编程实例
9.2.4无连线的Socket通信实现
9.2.5无连线的时间服务编程实例
9.3Socket高级套用
9.3.1Socket逾时处理
9.3.2使用Select机制处理多连线
9.3.3使用poll机制处理多连线
9.3.4多执行绪环境Socket编程
9.4小结
第10章串口通信编程
10.1串口介绍
10.1.1什幺是串口
10.1.2串口工作原理
10.1.3串口流量控制
10.2开发串口应用程式
10.2.1操作串口需要用到的头档案
10.2.2串口操作方法
10.2.3串口属性设定
10.2.4与Windows串口终端通信
10.3串口套用实例——手机简讯传送
10.3.1PC与手机连线传送简讯的物理结构
10.3.2AT指令介绍
10.3.3GSMAT指令集
10.3.4PDU编码方式
10.3.5建立与手机的连线
10.3.6使用AT指令传送简讯
10.4小结
第11章嵌入式GUI程式开发
11.1LinuxGUI介绍
11.1.1LinuxGUI的发展
11.1.2常见的嵌入式GUI
11.2开发图形界面程式
11.2.1安装Qt开发环境
11.2.2建立简单的Qt程式
11.2.3Qt库编程结构
11.3深入Qt编程
11.3.1使用Widget
11.3.2对话框程式设计
11.3.3信号与槽系统
11.4移植Qtopia到ARM开发板
11.4.1需要的资源
11.4.2準备工作
11.4.3编译主机Qt工具
11.4.4交叉编译qtopia
11.5小结
第12章软体项目管理
12.1原始码管理
12.1.1什幺是软体的版本
12.1.2版本控制的概念
12.2版本控制系统Subversion
12.2.1在Linux系统下使用Subversion服务端
12.2.2在Windows系统下使用TortoiseSVN客户端
12.3开发文档管理——常见的开发文档
12.3.1可行性研究报告
12.3.2项目开发计画
12.3.3软体需求说明书
12.3.4概要设计
12.3.5详细设计
12.3.6用户手册
12.3.7其他文档
12.4使用trac管理软体开发文档
12.4.1安装trac
12.4.2配置trac基本设定
12.4.3配置trac全局脚本
12.4.4设定trac的Web界面
12.5Bug跟蹤系统
12.5.1Bug管理的概念和作用
12.5.2使用Bugzilla跟蹤Bug
12.6小结
第3篇Linux系统篇
第13章ARM体系结构及开发实例
13.1ARM体系结构介绍
13.1.1ARM体系结构
13.1.2ARM指令集介绍
13.2编程模型
13.2.1数据类型
13.2.2处理器模式
13.2.3暂存器
13.2.4通用暂存器
13.2.5程式状态暂存器
13.2.6异常处理
13.2.7记忆体和记忆体I/O映射
13.3记忆体管理单元
13.3.1记忆体管理介绍
13.3.2记忆体访问顺序
13.3.3地址翻译过程
13.3.4访问许可权
13.4常见接口和控制器
13.4.1GPIO接口
13.4.2中断控制器
13.4.3RTC控制器
13.4.4看门狗定时器
13.4.5试验:使用GPIO点亮LED
13.5小结
第14章深入Bootloader
14.1初识Bootloader
14.1.1PC(个人电脑)上的Bootloader
14.1.2什幺是嵌入式系统的Bootloader
14.1.3嵌入式系统常见的Bootloader
14.2U-Boot分析
14.2.1获取U-Boot
14.2.2U-Boot工程结构分析
14.2.3U-Boot总体工作流程
14.3U-Boot启动流程分析
14.3.1_start标号
14.3.2reset标号
14.3.3cpu_init_crit标号
14.3.4lowlevel_init标号
14.3.5relocate标号
14.3.6start_armboot()函式
14.3.7main_loop()函式
14.4移植U-Boot到开发板
14.4.1U-Boot移植的一般步骤
14.4.2移植U-Boot到目标开发板
14.4.3移植U-Boot的常见问题
14.5小结
第15章解析Linux核心
15.1基本知识
15.1.1什幺是Linux核心
15.1.2Linux核心版本
15.1.3如何获取Linux核心代码
15.1.4编译核心
15.2Linux核心的子系统
15.2.1系统调用接口
15.2.2进程管理子系统
15.2.3记忆体管理子系统
15.2.4虚拟档案系统
15.2.5网路堆叠
15.2.6设备驱动
15.2.7依赖体系结构的代码
15.3Linux核心代码的工程结构
15.3.1原始码目录布局
15.3.2几个重要的Linux核心档案
15.4核心编译系统
15.4.1核心编译系统基本架构
15.4.2核心顶层Makefile分析
15.4.3核心编译档案分析
15.4.4目标档案清除机制
15.4.5编译辅助程式
15.4.6KBuild变数
15.5小结
第16章嵌入式Linux启动流程
16.1Linux核心初始化流程
16.2PC的初始化流程
16.2.1PCBIOS功能和作用
16.2.2硬碟的数据结构
16.2.3完整的初始化流程
16.3嵌入式系统的初始化
16.4Linux核心初始化
16.4.1解压缩核心映像
16.4.2进入核心代码
16.5启动init核心进程
16.6根档案系统初始化
16.6.1根档案系统介绍
16.6.2挂载虚拟档案系统
16.7核心交出许可权
16.8init进程
16.9初始化RAMDisk
16.9.1RAMDisk介绍
16.9.2如何使用RAMDisk
16.9.3实例:使用RAMDisk作为根档案系统
16.10小结
第17章Linux档案系统
17.1Linux档案管理
17.1.1档案和目录的概念
17.1.2档案的结构
17.1.3档案的类型
17.1.4档案系统的目录结构
17.1.5档案和目录的存取许可权
17.1.6档案系统管理
17.2Linux档案系统原理
17.2.1非日誌档案系统
17.2.2日誌档案系统
17.3常见的Linux档案系统
17.3.1ext2档案系统
17.3.2ext3档案系统
17.3.3ReiserFS档案系统
17.3.4JFFS档案系统
17.3.5cramfs档案系统
17.4其他档案系统
17.4.1网路档案系统
17.4.2/proc影子档案系统
17.5小结
第18章建立交叉编译工具链
18.1什幺是交叉编译
18.2需要哪些东西
18.3手工创建工具链
18.3.1準备工作——获取原始码
18.3.2开始了——建立工作环境
18.3.3建立Linux核心头档案
18.3.4编译安装binutils
18.3.5编译安装gcc的C编译器
18.3.6编译安装glibc库
18.3.7编译安装gcc的C、C++编译器
18.3.8最后的工作
18.4使用脚本创建工具链
18.5更简便的方法——获取已编译好的交叉编译环境
18.6小结
第19章强大的命令系统BusyBox
19.1BusyBox简介
19.1.1简单易懂的BusyBox
19.1.2BusyBox工作原理
19.1.3安装BusyBox
19.2交叉编译BusyBox
19.3使用BusyBox
19.3.1BusyBox初始化
19.3.2目标板BusyBox安装
19.4小结
第20章Linux核心移植
20.1Linux核心移植要点
20.2平台相关代码结构
20.3建立目标平台工程框架
20.3.1加入编译选单项
第1章嵌入式系统入门
1.1什幺是嵌入式系统
1.2嵌入式系统套用领域
1.2.1家用电器和电子类产品
1.2.2交通工具
1.2.3公共电子设施
1.3嵌入式系统发展
1.3.1嵌入式微控制器
1.3.2嵌入式微处理器
1.3.3未来嵌入式系统发展的方向
1.4典型的嵌入式系统组成
1.5小结
第2章嵌入式软硬体系统
2.1电路基本知识
2.1.1什幺是模拟电路
2.1.2什幺是数字电路
2.1.3数制转换
2.2计算机组成原理
2.2.1计算机体系的发展
2.2.2中央处理器
2.2.3存储系统
2.2.4汇流排系统
2.2.5输入输出系统
2.3软体基础知识
2.3.1什幺是软体
2.3.2软体开发流程
2.3.3常见的软体开发模型
2.3.4计算机程式语言
2.3.5数据结构
2.4作业系统知识
2.4.1什幺是作业系统
2.4.2作业系统的发展历史
2.4.3作业系统由什幺组成
2.4.4几种作业系统的设计思路
2.4.5作业系统分类
2.5小结
第3章ARM处理器
3.1微处理器和微控制器
3.2ARM处理器介绍
3.2.1ARM微处理器的套用领域
3.2.2ARM的功能特点
3.3ARM指令集
3.3.1算术运算指令
3.3.2逻辑运算指令
3.3.3分支指令
3.3.4数据传送指令
3.4ARM的结构
3.4.1ARM体系结构的命名方法
3.4.2处理器系列划分
3.4.3处理器工作模式
3.4.4存储系统
3.4.5定址方式
3.5ARM的功能选型
3.5.1ARM的选型原则
3.5.2几种常见的ARM核处理器选型参考
3.6小结
第4章嵌入式Linux
4.1常见的嵌入式作业系统
4.1.1VxWorks
4.1.2WindowsCE
4.1.3PalmOS
4.1.4Symbian
4.2嵌入式Linux作业系统
4.2.1什幺是Linux
4.2.2Linux与UNIX的不同——GPL着作权协定介绍
4.2.3Linux发行版
4.2.4常见的嵌入式Linux系统
4.3小结
第5章建立软体开发环境
5.1独立的Linux系统
5.1.1安装UbuntuLinux
5.1.2怎样安装、卸载软体
5.1.3怎样配置系统服务
5.1.4安装主要的开发工具
5.1.5安装其他的开发工具和文档
5.2运行在Windows上的Linux系统
5.2.1什幺是Cygwin
5.2.2如何安装Cygwin
5.2.3安装开发环境
5.3Linux常用工具
5.3.1Linuxshell和常用命令
5.3.2文本编辑工具vi
5.3.3搜寻工具find和grep
5.3.4FTP工具
5.3.5串口工具minicom
5.4Windows常用工具
5.4.1代码编辑管理工具SourceInsight
5.4.2串口工具XShell
5.5ARM集成开发环境ADS
5.5.1ADS集成开发环境介绍
5.5.2配置ADS调试环境
5.5.3建立自己的工程
5.6小结
第6章第一个Linux应用程式
6.1向世界问好——Hello,World!
6.1.1用vi编辑原始码档案
6.1.2用gcc编译程式
6.1.3执行程式
6.2程式背后做了什幺
6.2.1程式执行的过程
6.2.2窥视程式执行中的秘密
6.2.3动态库的作用
6.3程式如何来的——编译的全部过程
6.3.1编译原始码
6.3.2连线目标档案到指定的库
6.4更简单的办法——用Makefile管理工程
6.4.1什幺是Makefile
6.4.2它是如何工作的
6.4.3如何使用Makefile
6.4.4好的原始码管理习惯
6.5小结
第2篇Linux嵌入式开发套用篇
第7章Linux应用程式编程基础
7.1记忆体管理和使用
7.1.1堆和栈的区别
7.1.2记忆体管理函式malloc()和free()
7.1.3实用的记忆体分配函式calloc()和realloc()
7.1.4记忆体管理编程实例
7.2ANSIC档案管理
7.2.1档案指针和流
7.2.2存储方式
7.2.3标準输入、标準输出和标準错误
7.2.4缓冲
7.2.5打开、关闭档案
7.2.6读写档案
7.2.7档案流定位
7.2.8ANSIC档案编程实例
7.3POSIX档案I/O编程
7.3.1底层的档案I/O操作
7.3.2档案描述符
7.3.3创建/打开/关闭档案
7.3.4读写档案内容
7.3.5档案内容定位
7.3.6修改已打开档案的属性
7.3.7POSIX档案编程实例
7.4小结
第8章开发多进程/执行绪程式
8.1多进程开发
8.1.1什幺是进程
8.1.2进程环境和属性
8.1.3创建进程
8.1.4等待进程结束
8.1.5退出进程
8.1.6常用进程间通信的方法
8.1.7进程编程实例
8.2多执行绪开发
8.2.1执行绪的概念
8.2.2进程和执行绪对比
8.2.3创建执行绪
8.2.4取消执行绪
8.2.5等待执行绪
8.2.6使用pthread库执行绪操作实例
8.3小结
第9章网路通信套用
9.1网路通信基础
9.1.1TCP/IP协定族
9.1.2IP协定
9.1.3TCP协定
9.1.4UDP协定
9.1.5学习分析协定的方法
9.2Socket通信基本概念
9.2.1创建socket对象
9.2.2面向连线的Socket通信实现
9.2.3面向连线的echo服务编程实例
9.2.4无连线的Socket通信实现
9.2.5无连线的时间服务编程实例
9.3Socket高级套用
9.3.1Socket逾时处理
9.3.2使用Select机制处理多连线
9.3.3使用poll机制处理多连线
9.3.4多执行绪环境Socket编程
9.4小结
第10章串口通信编程
10.1串口介绍
10.1.1什幺是串口
10.1.2串口工作原理
10.1.3串口流量控制
10.2开发串口应用程式
10.2.1操作串口需要用到的头档案
10.2.2串口操作方法
10.2.3串口属性设定
10.2.4与Windows串口终端通信
10.3串口套用实例——手机简讯传送
10.3.1PC与手机连线传送简讯的物理结构
10.3.2AT指令介绍
10.3.3GSMAT指令集
10.3.4PDU编码方式
10.3.5建立与手机的连线
10.3.6使用AT指令传送简讯
10.4小结
第11章嵌入式GUI程式开发
11.1LinuxGUI介绍
11.1.1LinuxGUI的发展
11.1.2常见的嵌入式GUI
11.2开发图形界面程式
11.2.1安装Qt开发环境
11.2.2建立简单的Qt程式
11.2.3Qt库编程结构
11.3深入Qt编程
11.3.1使用Widget
11.3.2对话框程式设计
11.3.3信号与槽系统
11.4移植Qtopia到ARM开发板
11.4.1需要的资源
11.4.2準备工作
11.4.3编译主机Qt工具
11.4.4交叉编译qtopia
11.5小结
第12章软体项目管理
12.1原始码管理
12.1.1什幺是软体的版本
12.1.2版本控制的概念
12.2版本控制系统Subversion
12.2.1在Linux系统下使用Subversion服务端
12.2.2在Windows系统下使用TortoiseSVN客户端
12.3开发文档管理——常见的开发文档
12.3.1可行性研究报告
12.3.2项目开发计画
12.3.3软体需求说明书
12.3.4概要设计
12.3.5详细设计
12.3.6用户手册
12.3.7其他文档
12.4使用trac管理软体开发文档
12.4.1安装trac
12.4.2配置trac基本设定
12.4.3配置trac全局脚本
12.4.4设定trac的Web界面
12.5Bug跟蹤系统
12.5.1Bug管理的概念和作用
12.5.2使用Bugzilla跟蹤Bug
12.6小结
第3篇Linux系统篇
第13章ARM体系结构及开发实例
13.1ARM体系结构介绍
13.1.1ARM体系结构
13.1.2ARM指令集介绍
13.2编程模型
13.2.1数据类型
13.2.2处理器模式
13.2.3暂存器
13.2.4通用暂存器
13.2.5程式状态暂存器
13.2.6异常处理
13.2.7记忆体和记忆体I/O映射
13.3记忆体管理单元
13.3.1记忆体管理介绍
13.3.2记忆体访问顺序
13.3.3地址翻译过程
13.3.4访问许可权
13.4常见接口和控制器
13.4.1GPIO接口
13.4.2中断控制器
13.4.3RTC控制器
13.4.4看门狗定时器
13.4.5试验:使用GPIO点亮LED
13.5小结
第14章深入Bootloader
14.1初识Bootloader
14.1.1PC(个人电脑)上的Bootloader
14.1.2什幺是嵌入式系统的Bootloader
14.1.3嵌入式系统常见的Bootloader
14.2U-Boot分析
14.2.1获取U-Boot
14.2.2U-Boot工程结构分析
14.2.3U-Boot总体工作流程
14.3U-Boot启动流程分析
14.3.1_start标号
14.3.2reset标号
14.3.3cpu_init_crit标号
14.3.4lowlevel_init标号
14.3.5relocate标号
14.3.6start_armboot()函式
14.3.7main_loop()函式
14.4移植U-Boot到开发板
14.4.1U-Boot移植的一般步骤
14.4.2移植U-Boot到目标开发板
14.4.3移植U-Boot的常见问题
14.5小结
第15章解析Linux核心
15.1基本知识
15.1.1什幺是Linux核心
15.1.2Linux核心版本
15.1.3如何获取Linux核心代码
15.1.4编译核心
15.2Linux核心的子系统
15.2.1系统调用接口
15.2.2进程管理子系统
15.2.3记忆体管理子系统
15.2.4虚拟档案系统
15.2.5网路堆叠
15.2.6设备驱动
15.2.7依赖体系结构的代码
15.3Linux核心代码的工程结构
15.3.1原始码目录布局
15.3.2几个重要的Linux核心档案
15.4核心编译系统
15.4.1核心编译系统基本架构
15.4.2核心顶层Makefile分析
15.4.3核心编译档案分析
15.4.4目标档案清除机制
15.4.5编译辅助程式
15.4.6KBuild变数
15.5小结
第16章嵌入式Linux启动流程
16.1Linux核心初始化流程
16.2PC的初始化流程
16.2.1PCBIOS功能和作用
16.2.2硬碟的数据结构
16.2.3完整的初始化流程
16.3嵌入式系统的初始化
16.4Linux核心初始化
16.4.1解压缩核心映像
16.4.2进入核心代码
16.5启动init核心进程
16.6根档案系统初始化
16.6.1根档案系统介绍
16.6.2挂载虚拟档案系统
16.7核心交出许可权
16.8init进程
16.9初始化RAMDisk
16.9.1RAMDisk介绍
16.9.2如何使用RAMDisk
16.9.3实例:使用RAMDisk作为根档案系统
16.10小结
第17章Linux档案系统
17.1Linux档案管理
17.1.1档案和目录的概念
17.1.2档案的结构
17.1.3档案的类型
17.1.4档案系统的目录结构
17.1.5档案和目录的存取许可权
17.1.6档案系统管理
17.2Linux档案系统原理
17.2.1非日誌档案系统
17.2.2日誌档案系统
17.3常见的Linux档案系统
17.3.1ext2档案系统
17.3.2ext3档案系统
17.3.3ReiserFS档案系统
17.3.4JFFS档案系统
17.3.5cramfs档案系统
17.4其他档案系统
17.4.1网路档案系统
17.4.2/proc影子档案系统
17.5小结
第18章建立交叉编译工具链
18.1什幺是交叉编译
18.2需要哪些东西
18.3手工创建工具链
18.3.1準备工作——获取原始码
18.3.2开始了——建立工作环境
18.3.3建立Linux核心头档案
18.3.4编译安装binutils
18.3.5编译安装gcc的C编译器
18.3.6编译安装glibc库
18.3.7编译安装gcc的C、C++编译器
18.3.8最后的工作
18.4使用脚本创建工具链
18.5更简便的方法——获取已编译好的交叉编译环境
18.6小结
第19章强大的命令系统BusyBox
19.1BusyBox简介
19.1.1简单易懂的BusyBox
19.1.2BusyBox工作原理
19.1.3安装BusyBox
19.2交叉编译BusyBox
19.3使用BusyBox
19.3.1BusyBox初始化
19.3.2目标板BusyBox安装
19.4小结
第20章Linux核心移植
20.1Linux核心移植要点
20.2平台相关代码结构
20.3建立目标平台工程框架
20.3.1加入编译选单项