目录
第1章嵌入式系统基础
1.1嵌入式系统的定义
1.2嵌入式系统的发展历程
1.2.1嵌入式系统的由来
1.2.2嵌入式系统发展的四个阶段
1.2.3嵌入式系统的发展趋势
<p>目录</p> <p> </p> <p>第1章嵌入式系统基础</p> <p> </p> <p>1.1嵌入式系统的定义</p> <p> </p> <p>1.2嵌入式系统的发展历程</p> <p> </p> <p>1.2.1嵌入式系统的由来</p> <p> </p> <p>1.2.2嵌入式系统发展的四个阶段</p> <p> </p> <p>1.2.3嵌入式系统的发展趋势</p> <p> </p> <p>1.3嵌入式系统的特点</p> <p> </p> <p>1.4嵌入式系统的结构</p> <p> </p> <p>1.5嵌入式处理器</p> <p> </p> <p>1.5.1嵌入式处理器的特点</p> <p> </p> <p>1.5.2嵌入式处理器的分类</p> <p> </p> <p>1.5.3典型的嵌入式处理器</p> <p> </p> <p>1.6嵌入式操作系统</p> <p> </p> <p>1.7实例: 网络温度采集系统</p> <p> </p> <p>1.8练习题</p> <p> </p> <p>第2章基于ARM9处理器的硬件平台</p> <p> </p> <p>2.1ARM处理器简介</p> <p> </p> <p>2.1.1ARM处理器核的体系结构</p> <p> </p> <p>2.1.2ARM微处理器核</p> <p> </p> <p>2.1.3ARM编程模型</p> <p> </p> <p>2.1.4ARM指令集</p> <p> </p> <p>2.2S3C2410X控制器简介</p> <p> </p> <p>2.2.1S3C2410X内部结构</p> <p> </p> <p>2.2.2存储控制器</p> <p> </p> <p>2.2.3NAND Flash控制器</p> <p> </p> <p>2.2.4时钟和电源管理</p> <p> </p> <p>2.2.5GPIO端口</p> <p> </p> <p>2.2.6ADC和触摸屏接口</p> <p> </p> <p>2.2.7PWM定时器</p> <p> </p> <p>2.2.8通用异步收发器</p> <p> </p> <p>2.2.9中断控制器</p> <p> </p> <p>2.3S3C2410X外围硬件电路</p> <p> </p> <p>2.3.1电源电路</p> <p> </p> <p>2.3.2复位电路</p> <p> </p> <p>2.3.3NAND Flash接口电路</p> <p> </p> <p>2.3.4SDRAM接口电路</p> <p> </p> <p>2.3.5UART串口电路</p> <p> </p> <p>2.4练习题</p> <p> </p> <p>第3章Linux系统编程基础</p> <p> </p> <p>3.1GCC编译器</p> <p> </p> <p>3.1.1GCC概述</p> <p> </p> <p>3.1.2GCC编译过程</p> <p> </p> <p>3.1.3GCC选项</p> <p> </p> <p>3.2GDB调试器</p> <p> </p> <p>3.2.1GDB的基本使用方法</p> <p> </p> <p>3.2.2GDB基本命令</p> <p> </p> <p>3.2.3GDB典型实例</p> <p> </p> <p>3.3Make工具的使用</p> <p> </p> <p>3.3.1Makefile的基础知识</p> <p> </p> <p>3.3.2Makefile的应用</p> <p> </p> <p>3.3.3自动生成Makefile</p> <p> </p> <p>3.4Linux应用程序设计</p> <p> </p> <p>3.4.1文件操作编程</p> <p> </p> <p>3.4.2时间编程</p> <p> </p> <p>3.4.3多线程编程</p> <p> </p> <p>3.5练习题</p> <p> </p> <p>第4章嵌入式交叉编译环境及系统裁剪</p> <p> </p> <p>4.1嵌入式交叉编译环境构建</p> <p> </p> <p>4.1.1嵌入式常用调试方法</p> <p> </p> <p>4.1.2交叉编译环境构建</p> <p> </p> <p>4.1.3串口通信软件配置</p> <p> </p> <p>4.1.4Flash程序烧写</p> <p> </p> <p>4.2Bootloader程序</p> <p> </p> <p>4.2.1初识Bootloader程序</p> <p> </p> <p>4.2.2常用的Linux Bootloader</p> <p> </p> <p>4.2.3vivi的裁剪和编译</p> <p> </p> <p>4.3Linux操作系统的裁剪和编译</p> <p> </p> <p>4.3.1内核的裁剪和编译</p> <p> </p> <p>4.3.2根文件系统的构建</p> <p> </p> <p>4.4练习题</p> <p> </p> <p>第5章Linux驱动程序设计</p> <p> </p> <p>5.1Linux驱动程序概述</p> <p> </p> <p>5.1.1设备驱动原理</p> <p> </p> <p>5.1.2设备分类</p> <p> </p> <p>5.1.3设备文件接口</p> <p> </p> <p>5.1.4驱动程序的加载方法</p> <p> </p> <p>5.1.5设备驱动的重要数据结构</p> <p> </p> <p>5.1.6驱动程序常用函数介绍</p> <p> </p> <p>5.2虚拟字符设备Demo驱动程序设计</p> <p> </p> <p>5.2.1Demo字符设备</p> <p> </p> <p>5.2.2Demo驱动程序设计</p> <p> </p> <p>5.2.3Demo测试程序设计</p> <p> </p> <p>5.3A/D驱动程序设计</p> <p> </p> <p>5.3.1ADC工作原理</p> <p> </p> <p>5.3.2A/D驱动程序设计</p> <p> </p> <p>5.3.3温度采集应用程序设计</p> <p> </p> <p>5.4练习题</p> <p> </p> <p>第6章Qtopia Core应用程序设计</p> <p> </p> <p>6.1嵌入式GUI概述</p> <p> </p> <p>6.2Qtopia Core简介</p> <p> </p> <p>6.2.1Qt简介</p> <p> </p> <p>6.2.2Qt的体系结构</p> <p> </p> <p>6.3Qtopia Core开发环境的构建</p> <p> </p> <p>6.4Qtopia Core程序开发基础</p> <p> </p> <p>6.4.1Qt中的主要类</p> <p> </p> <p>6.4.2信号和槽</p> <p> </p> <p>6.5Qtopia Core程序的结构与实例</p> <p> </p> <p>6.6Qtopia Core交叉编译</p> <p> </p> <p>6.7练习题</p> <p> </p> <p>第7章嵌入式数据库</p> <p> </p> <p>7.1嵌入式数据库概述</p> <p> </p> <p>7.1.1为什么需要嵌入式数据库</p> <p> </p> <p>7.1.2什么是嵌入式数据库</p> <p> </p> <p>7.1.3常用的嵌入式数据库</p> <p> </p> <p>7.2SQLite数据库</p> <p> </p> <p>7.2.1SQLite安装</p> <p> </p> <p>7.2.2SQLite命令</p> <p> </p> <p>7.2.3SQLite数据类型</p> <p> </p> <p>7.2.4SQLite的API函数</p> <p> </p> <p>7.3基于Qtopia Core和SQLite的图书管理系统</p> <p> </p> <p>7.4练习题</p> <p> </p> <p>附录ALinux常用命令的使用</p> <p> </p> <p>A.1基本命令</p> <p> </p> <p>A.1.1管理文件和目录命令</p> <p> </p> <p>A.1.2进程、关机和线上查询命令</p> <p> </p> <p>A.1.3其他常用命令</p> <p> </p> <p>A.2网络命令</p> <p> </p> <p>A.3服务器配置</p> <p> </p> <p>A.3.1FTP服务器</p> <p> </p> <p>A.3.2Telnet服务器</p> <p> </p> <p>A.3.3NFS服务器</p> <p> </p> <p>附录Bvi基本操作</p> <p> </p> <p>B.1vi简介</p> <p> </p> <p>B.2vi基本操作</p> <p> </p> <p>B.3基本命令</p> <p> </p> <p>参考文献</p>显示全部信息前 言前言前言<br />近年来,随着嵌入式系统产品的迅猛发展,社会对嵌入式技术人才的需求也越来越多,学习嵌入式技术的人员数量也在迅速增加。由于嵌入式系统的多样性,增加了嵌入式系统学习和开发的难度。为了让初学者能较为全面地学习嵌入式系统的开发过程,为将来从事嵌入式领域的工作奠定基础,我们编写了本教材。全书共分7章,第1章讲述嵌入式系统基础知识、嵌入式处理器和嵌入式操作系统等,便于读者对嵌入式系统有初步认识。第2章讲述ARM系列处理器、S3C2410X控制器内部结构及外围电路等,让读者对嵌入式硬件平台有一个全面的认识。第3章讲述GCC编译工具的使用,以及Linux系统文件操作、时间获取和多线程编程等内容,为以后的嵌入式软件开发打基础。第4章讲述交叉编译环境的构建,以及Linux系统软件的裁剪和编译等。第5章讲述驱动程序基础,以及Linux系统字符设备驱动程序的设计,**讲解了A/D驱动程序设计。第6章讲述Qtopia Core嵌入式图形界面应用程序设计。第7章讲述嵌入式数据库程序设计,并通过实例讲解了数据库在图形界面中的应用。书后附有Linux常用命令和vi的使用。本书由朱华生、吕莉、熊志文和徐晨光共同编著。其中,朱华生编写了第1章,吕莉编写了第2、3、4章,熊志文编写了第6、7章,徐晨光编写了第5章、附录A和B,全书由朱华生统稿。在本书的编写过程中,得到了清华大学出版社和南昌工程学院的大力支持和帮助,在此表示衷心感谢。鉴于作者水平有限,对于教材的内容及文字的不妥之处,望读者批评指正。编者希望在汲取大家意见和建议的基础上,不断修改和完善书中的有关内容,力争下一次改版后的内容更加充实正确。任何批评和建议请发到zhuhuasheng@sohu.com,以便共同提高。<br /><br />编者2018年3月<br />显示全部信息免费在线读第3章Linux系统编程基础本章首先介绍GCC编译器的编译过程及常用选项的使用,通过实例讲述GDB调试器的使用方法,然后介绍Make工具的使用,*后介绍文件操作、时间获取和创建线程等任务的编程方法。3.1GCC编译器3.1.1GCC概述
GCC(GNU C Compiler)是GUN项目的C编译器套件,也是GNU软件家族中具有代表性的产品之一。GCC目前支持的体系结构有四十余种,如x86、ARM、PowerPC等系列处理器; 能运行在不同的操作系统上,如Linux、Solaris、Windows CE等操作系统; 可完成C、C 、Objective C等源文件向运行在特定CPU硬件上的目标代码的转换。GCC的执行效率与一般的编译器相比平均效率要高20%~30%。GCC是Linux平台下*常用的编译器之一,它也是Linux平台编译器事实上的标准。同时,在使用Linux操作系统的嵌入式开发领域,GCC也是使用*普遍的编译器之一。GCC编译器与GUN Binutils工具包是紧密集成的,如果没有Binutils工具,GCC也不能正常工作。Binutils是一系列开发工具,包括连接器、汇编器和其他用于目标文件和档案的工具。Binutils工具集里主要包含以下一系列程序: addr2line、ar、as、c 、gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、strings和strip,它包含的库文件有: libiberty.a、libbfd.a、libbfd.so、libopcodes.a和libopcodes.so。在Linux操作系统中,文件的后缀名不代表文件的类型,但为了提高工作效率,通常会给每种文件定义一个后缀名。GCC支持的文件类型比较多,具体如表3.1所示。
表3.1GCC支持的文件类型
后缀说明后缀说明
.cC源程序.ii经过预处理的C 程序.a由目标文件构成的档案文件(库文件).mObjective C源程序.C.ccC 源程序.o编译后的目标程序.h头文件.s汇编语言源程序.i经过预处理的C程序.S经过预编译的汇编程序
3.1.2GCC编译过程下面通过一个常用的例子来说明GCC的编译过程。利用文本编辑器创建hello.c文件,程序内容如下。