第1章绪论 1.1嵌入式系统的概念1 1.2嵌入式系统的分类2 1.3嵌入式系统的组成2 1.4嵌入式系统设计流程4 1.5嵌入式技术的发展趋势5 习题与思考题8 第2章嵌入式处理器与ARM体系结构 2.1嵌入式处理器及其体系结构9 2.1.1冯·诺依曼和哈佛体系结构9 2.1.2CISC与RISC体系结构10 2.2PowerPC处理器11 2.2.1PowerPC体系结构11 2.2.2摩托罗拉/飞思卡尔公司的PowerQUICC处理器12 2.2.3IBM的PowerPC4xx12 2.2MIPS处理器13 2.4ARM处理器介绍14 2.4.1ARM系列14 2.5ARM体系结构一些重要概念16 2.5.1处理器工作状态16 2.5.2处理器模式17 2.5.3ARM寄存器17 2.5.4异常20 2.6XScale体系结构22 2.6.1XScale超级流水线23 2.6.2协处理器24 2.6.3无线MMX指令单元24 2.6.4内存管理25 2.6.5指令高速缓存25 2.6.6数据高速缓存26 2.6.7转移目标缓冲器BTB26 2.6.8写缓冲器27 2.6.9性能监视27 2.6.10电源管理27 2.6.11调试27 2.7PXA系列处理器28 2.7.1PXA255处理器28 2.7.2PXA27x处理器30 本章小结32 习题与思考题32 第3章嵌入式系统软件基础 3.1嵌入式程序中常见的C语言现象33 3.1.1宏定义33 3.1.2volatile关键字35 3.1.3static关键字37 3.2链表及其在Linux中的实现38 3.2.1链表简介38 3.2.2Linux链表的定义39 3.2.3链表操作接口40 3.3什么是操作系统43 3.4操作系统发展过程43 3.5嵌入式操作系统46 3.5.1嵌入式操作系统的演化及其发展趋势46 3.5.2常见的嵌入式操作系统47 3.5.3嵌入式操作系统的选择50 3.6操作系统的功能 52 3.6.1进程管理52 3.6.2存储器管理55 3.6.3设备管理59 3.6.4文件管理60 本章小结60 习题与思考题61 第4章Linux概述 4.1Linux的历史62 4.2Linux常见发行版简介63 4.3Linux操作系统构成64 4.3.1总体结构64 4.3.2Linux内核64 4.3.3根文件系统目录树结构65 4.3.4Shell简介67 4.3.5Linux的文件67 4.4Linux基本操作68 4.4.1Linux命令的使用68 4.4.2vi编辑器的使用86 4.4.3Linux的配置与管理相关命令87 4.5嵌入式Linux简介88 4.5.1自制嵌入式Linux89 4.5.2商业版嵌入式Linux89 4.5.3NMT RTLinux简介90 4.5.4RTAI简介90 4.5.5μClinux简介91 本章小结92 习题与思考题93 第5章Linux程序开发简介 5.1GNU Compiler Collection简介94 5.1.1用GCC编译简单程序95 5.1.2GCC使用简介95 5.2GNU make与Makefile编写98 5.2.1Makefile的编写99 5.2.2Makefile的处理过程100 5.2.3Makefile的变量100 5.2.4Phony目标102 5.2.5利用隐含规则简化Makefile103 5.2.6make的命令行参数104 5.2.7Makefile示例104 5.3Autoconf和Automake简介105 5.3.1使用前的准备106 5.3.2自动生成Makefile的方法107 5.3.3Makefile.am的编写109 5.3.4自动处理复杂软件包110 5.4GDB/Insight调试器的使用112 5.4.1GDB调试工具简介112 5.4.2GDB图形前端Insight简介123 5.5Linux下集成开发工具的使用130 5.5.1Eclipse130 5.5.3KDevelop134 本章小结138 习题与思考题139 第6章嵌入式Linux开发入门 6.1嵌入式系统的开发模式140 6.2嵌入式Linux系统的开发流程141 6.3嵌入式Linux的构造 142 6.3.1开发环境的安装142 6.3.2内核裁剪与编译143 6.3.3Busybox与根文件系统的构造149 6.4在开发板上运行嵌入式Linux 156 6.4.1Linux下的串口终端仿真程序minicom简介156 6.4.2Bootloader简介159 6.4.3Uboot烧写与使用160 6.4.4用Uboot启动嵌入式Linux 164 6.5嵌入式硬件仿真环境SkyEye172 6.5.1SkyEye编译安装172 6.5.2在SkyEye中运行嵌入式Linux174 6.5.3利用SkyEye调试Linux内核178 本章小结182 习题与思考题182 第7章嵌入式Linux接口与应用开发 7.1嵌入式应用程序开发调试183 7.1.1将应用程序加入嵌入式Linux系统183 7.1.2应用程序的移植184 7.1.3通过NFS调试嵌入式应用186 7.1.4通过CrossGDB调试程序189 7.2嵌入式Web控制接口与应用192 7.2.1嵌入式Web服务器的移植193 7.2.2嵌入式系统Web控制接口的设计194 7.3串口编程与GSM短信收发196 7.3.1RS232C串行接口标准196 7.3.2RS232串行接口通信连接方式198 7.3.3RS232串行接口编程198 7.3.4SMS短信与AT命令202 7.3.5SMS短信与PDU203 7.3.6GSM短信收发实例208 7.4USB接口与应用212 7.4.1机械和电气标准213 7.4.2USB总线拓朴结构214 7.4.3USB存储设备在嵌入式系统中的应用215 7.4.4USB摄像头的使用与编程218 7.5I2C总线接口与应用223 7.5.1I2C总线原理与基本操作223 7.5.2Linux下I2C总线的操作225 7.5.3利用Linux的I2C字符设备文件接口读写X1227时钟芯片228 7.6音频接口编程230 7.6.1ALSA简介230 7.6.2ALSA内核配置与软件安装231 7.6.3ALSA API接口简介232 7.6.4ALSA录音回放232 本章小结236 习题与思考题236 第8章嵌入式图形用户界面 8.1常见的嵌入式图形用户界面237 8.2帧缓冲图形设备驱动接口238 8.2.1帧缓冲238 8.3.3帧缓冲编程原理240 8.2.3利用帧缓冲显示图像242 8.3Qt/E和Qtopia移植245 8.3.1Qt/Embedded与Qtopia简介245 8.3.2Qtopia移植246 8.4OPIE移植255 8.4.1准备工作256 8.4.2OPIE的移植257 8.4.3OPIE的交叉编译与运行259 8.5Qtopia与OPIE应用程序设计261 8.5.1基于Qt/Embedded的应用程序设计261 8.5.2在Qtopia与OPIE桌面添加应用程序265 8.6QT/Embedded应用软件的国际化和中文化266 8.6.1QT/Embedded应用程序的I18N支持与中文化266 8.6.2Qtopia和OPIE的中文化268 本章小结269 习题与思考题269 第9章嵌入式Linux网络应用开发 9.1TCP/IP和Linux网络简介270 9.2Linux套接字编程接口介绍272 9.3基于IPv4协议Socket编程274 9.3.1基于TCP的Socket编程274 9.3.2基于TCP Socket的应用实例——猜数字游戏277 9.3.2基于UDP的Socket编程 280 9.3.4基于UDP Socket的应用实例——服务查询282 9.4IPv6网络应用程序开发285 9.4.1IPv6简介285 9.4.2IPv4程序移植到IPv6的方法287 9.5IPv4到IPv6程序移植实例292 9.5.1基于TCP Socket的猜数字游戏程序移植292 9.5.2基于UDP Socket的服务查询程序移植295 本章小结301 习题与思考题301 附录A基于uClinux的嵌入式开发 参考文献
|