嵌入式Linux系统开发与应用
2011-4
康维新 机械工业出版社 (2011-04出版)
康维新 编
326
嵌入式系统是现代信息网络技术及物联网发展的重要技术平台,因此成为目前国内各高校信息类专业的必修课。考虑到国内本专科院校使用ARM实验开发设备和Linux嵌入式操作系统较多,因此《嵌入式Linux系统开发与应用》主要围绕ARM硬件环境和Linux软件环境编写而成。 全书由ARM基本结构与开发环境、Linux嵌入式操作系统基础与开发技术、嵌入式Linux综合设计项目实例3部分内容构成,共7章。重点阐述了基于Linux操作系统的ARM应用系统开发基础和技术应用,包括嵌入式系统开发与设计、系统主要设备的驱动、图形界面的设计。较完整地阐述了基于Linux嵌入式系统在网络、智能家居、消费电子等领域应用的成功案例,并提供了实用程序。 《嵌入式Linux系统开发与应用》着眼于嵌入式系统开发,内容完整,案例具体、实用,可供本科生、研究生和工程技术人员的学习和参考。
前言第1章 嵌入式系统概述1.1嵌入式系统的定义1.1.1嵌入式系统的组成和特点1.1.2嵌入式系统的发展历程及趋式1.2嵌入式系统的体系结构和分类1.2.1嵌入式系统的体系结构1.2.2嵌入式系统的分类1.3嵌入式微处理器1.3.1嵌入式微处理器的分类1.3.2ARM嵌入式处理器的内核和架构1.3.3ARM微处理器结构1.3.4ARM嵌入式处理器的特点及应用领域1.3.5嵌入式处理器的选型原则1.4嵌入式操作系统1.4.1操作系统的概念和分类1.4.2嵌入式Linux操作系统1.4.3WindowsCE操作系统1.4.4μC/OS-II操作系统1.4.5Symbian操作系统1.4.6VxWorks操作系统1.5嵌入式系统的设计与开发1.5.1嵌入式系统的设计与开发流程1.5.2嵌入式系统的模拟仿真与调试本章小结习题与思考题第2章 嵌入式Linux开发基础2.1Linux的基本操作2.1.1用户系统相关命令2.1.2文件目录相关命令2.1.3压缩打包相关命令2.1.4网络相关命令2.1.5重定向与管道2.1.6Linux帮助系统2.2Linux下C语言程序设计基础2.2.1VI的使用2.2.2GCC编译器2.2.3GDB调试器的使用2.2.4GNUmake和makefile2.3LinuxShell编程2.4Linux进程控制编程2.4.1Linux进程概述2.4.2Linux进程编程2.4.3Linux进程通信2.5Linux下的多线程编程2.5.1线程概述2.5.2线程的基本操作2.5.3线程的访问控制2.5.4“生产者-消费者”实验本章小结习题与思考题第3章 开发环境的建立3.1基于ARM9的博创2410s开发实验平台3.2ARM与宿主机的通信3.2.1串口通信3.2.2以太网接口3.2.3USB接口3.2.4JTAG接口3.3交叉编译环境的建立3.3.1宿主机环境搭建3.3.2交叉编译环境的建立3.4BootLoader技术3.4.1初识BootLoader工作原理3.4.2VIVI的代码分析与移植3.4.3U-Boot的分析与移植3.5ARM-Linux内核的编译与移植3.5.1Linux内核版本与特点3.5.2Linux内核移植3.6根文件系统的建立与烧写3.6.1嵌入式Linux常用的文件系统3.6.2根文件系统的目录结构3.6.3定制系统文件3.6.4NFS文件系统的建立与使用3.6.5Samba服务的建立与使用3.6.6使用BusyBox构建根文件系统3.7建立嵌入式Linux应用程序本章小结习题与思考题第4章 嵌入式Linux网络编程4.1TCP/IP概述4.1.1OSI参考模型与TCP/IP参考模型4.1.2TCP/IP协议族4.1.3TCP和UDP4.2网络编程基础4.2.1socket概述4.2.2socket的基本函数4.3socket应用程序设计4.3.1TCP编程实例4.3.2UDP编程实现本章小结习题与思考题第5章 嵌入式设备驱动5.1Linux下设备驱动概述5.1.1设备的分类5.1.2设备文件5.1.3主设备号与次设备号5.1.4设备文件系统与系统文件系统5.2设备驱动程序的结构5.3字符设备驱动5.4LCD设备驱动5.4.1LCD工作原理5.4.2FrameBuffer机制简介5.4.3LCD驱动开发流程5.5块设备驱动5.5.1块设备驱动程序简介5.5.2块设备驱动程序工作原理5.5.3块设备驱动主要数据结构5.5.4块设备驱动编写流程5.6键盘驱动5.6.1键盘的分类5.6.2键盘工作原理5.6.3键盘驱动程序的实现5.7Linux网络驱动程序5.7.1网络设计概述5.7.2网络设备的加载方法5.7.3重要数据结构5.7.4网络设备的初始化5.7.5打开和关闭网络设备5.7.6发送过程的实现5.7.7接收过程的实现5.7.8中断控制5.7.9NE2000兼容网卡驱动程序的移植5.8触摸屏接口设计与Linux驱动编程5.8.1触摸屏接口概述5.8.2触摸屏驱动的体系接口5.8.3触摸屏的Linux驱动程序分析5.8.4触摸屏的测试与校准本章小结习题与思考题第6章 Qt图形编程6.1嵌入式GUI简介6.1.1Qt/Embedded6.1.2MiniGUI6.1.3Microwindows6.1.4OpenGUI6.1.5常见GUI的参数比较6.2Qt/Embedded开发基础6.2.1Qt/Embedded介绍6.2.2Qt/Embedded的安装与环境变量设置6.2.3Qt/Embedded信号和插槽机制6.2.4QtDesigner的使用6.2.5Qt/Embedded窗口实例6.3基于Qt技术的Qtopia6.3.1基于Qt技术的Qtopia系统平台6.3.2Qtopia介绍及其开发环境的建立6.3.3Qt/Embedded和Qtopia下应用程序的实现6.4Qt编程综合实验6.4.1基于PC的“HelloWorld”程序6.4.2发布Qt/Embedded程序到目标板本章小结习题与思考题第7章 嵌入式Linux综合设计项目实例7.1网络视频监控系统7.2车载信息娱乐系统7.2.1实例说明7.2.2设计思路分析7.2.3硬件电路设计7.2.4软件设计7.3基于嵌入式平台的电梯监控系统7.3.1系统概述7.3.2系统设计7.3.3系统实现7.4无线点菜系统7.4.1设计思路分析7.4.2系统硬件设计7.4.3系统软件设计7.4.4总结7.5基于嵌入式与WebService的智能家居系统7.5.1系统概述7.5.2系统设计7.5.3系统实现附录附录AS3C2410X引脚及信号定义附录B国外高校嵌入式系统课程的体系结构参考文献
版权页:插图:3.基于数据库的模块设计家庭各种信息的管理只涉及一些数据库的查询与更新操作,本系统将这些操作包含在Web服务器端的Web服务方法中,Web客户端通过远程调用这些Web服务方法来实现上述数据库操作,从而实现家庭信息的远程管理。本系统中的每一种家庭信息的查询和更新分别对应一个Web服务方法。每一种信息的查询都包含了若干种组合的模糊查询。在更新操作对应的Web服务方法中,有一个参数表示更新类型(即增加、删除或修改)。下面以物资信息为例进行设计说明。物资查询用一个单独的远程服务方法作为接口,客户可选择根据物资类型和物资名称的组合来进行查询,也可以根据其中一项来查询。输入查询参数后,调用Web服务接口,服务器端进行身份验证,根据查询参数的组合在数据库的物资信息表中模糊查询符合条件的信息,并以结构体数组形式返回到客户端。客户端接收操作状态信息以便知道操作是否成功,如果操作成功就将这些查询结果以列表的形式显示。物资更新用一个单独的远程服务方法作为接口,客户可选择更新模式,根据更新模式要求输入相关信息。增加信息时要输入添加项的所有字段信息并提交,删除信息时只需要输入物资名称提交即可,修改名称时输入物资名称提交,服务器端根据输入的物资名称进行模糊查询并返回所有满足的条目,客户端单条显示信息,并通过上一条和下一条方式浏览每一条信息,客户浏览过程中选择想要修改的条目,然后提交保存到服务器端数据库。客户端提交操作后,调用Web服务接口,服务器端进行身份验证,根据更新模式和相关传入信息对数据库的物资信息表进行相关更新操作,将操作是否成功的标志返回到客户端,客户端接收操作状态信息以便知道操作是否成功并进行界面提示。4.关于家庭设备操作及其通信过程设计(1)关于家庭设备操作的通信过程分析家庭设备管理和设备配置模块中的相关工作涉及ARM2410S嵌入式开发板。此时的通信过程为:Web客户端向Web服务器端发送请求,Web服务器端根据客户端的请求来控制设备或采集设备信息,即向开发板发送操作请求,再根据开发板的响应信息来对Web客户端进行响应,即Web服务器端既充当了服务器端也充当了客户端的角色。在某些操作中,为了提高操作效率,Web客户端和开发板是直接通信的,如视频数据的传输。也就是说,除了Web客户端与Web服务器端之间的通信,还存在Web服务器端与嵌入式开发板之间的通信。于是出现了Web服务器端与开发板如何通信的问题,本系统通过socket来实现此通信。由于本系统涉及多个设备,每个设备有多个操作,每个操作需要一些参数,而操作返回的信息又不同,在开发板端,这些操作都是通过一个socket来监听实现的,所以又存在如何根据socket消息识别操作信息的问题。于是,分别设计了socket请求消息格式和socket响应消息格式,通过设计好的固定格式,就可以很好地解决此问题。(2)请求消息格式当Web服务器端(socket客户端)向开发板(socket服务器端)发送设备操作请求时,开发板必须能够根据接收到的socket消息识别出服务器端所请求的是在哪个设备上的哪种操作,而且还要在socket消息中包含操作所需要的参数。所以,针对本系统所需要的设备、设备操作以及操作所需要的参数,对socket请求消息的格式定义如图7-31所示。
《嵌入式Linux系统开发与应用》是普通高等教育规划教材之一。
第一次接触嵌入式的概念,这本书中也介绍了Linux的相关内容,很喜欢,结合其他书籍阅读,会更有帮助!送货速度也超快。
很不错,是一本好教材