ARM嵌入式Linux系统设计与开发

出版时间:2010-5  出版社:机械工业  作者:俞辉//李永//刘凯//王晓虹  页数:270  
Tag标签:无  

前言

嵌入式Linux由于具有开源、网络功能强大、内核稳定高效等特性,在产品开发周期、产品的功能可扩充性、开发时的人力投入等方面都具有显著的优势,因此广泛应用于中低端智能电子设备中。而它与ARM的结合,更是一种主流的解决方案,嵌入式Linux+ARM已经广泛应用于机顶盒、掌上电脑、消费电子、MPC、网络设备、工业控制等领域,并且具有良好的市场前景。 本书全面介绍以ARM-Linux为操作系统的嵌入式系统设计与开发技术,秉承理论与实践相结合的指导思路,帮助读者快速跨入嵌入式系统开发的门槛。本书内容丰富、概念清楚、层次分明、通俗易懂,可以作为各类高等院校计算机、电子、通信、软件工程等专业高年级学生嵌入式Linux程序设计或嵌入式系统程序设计等课程的教材,也可作为相关工程技术人员和计算机爱好者学习嵌入式程序设计的参考书。 本书的编写目的与特色 本书在总结作者多年的教学经验的同时,为嵌入式Linux系统等相关课程提供配套的教材,通过实例,使读者能够较容易地掌握相关的嵌入式Linux程序设计方面的基本概念和技能;通过综合实例的学习和模拟,达到训练实际开发能力的目的。 “实践”和“创新”是嵌入式系统课程的两个主要特点。实践是整个嵌入式系统课程体系中重要的环节,而创新的思想贯穿整个嵌入式教学的始终,最后要通过案例的实现来对所学的嵌入式知识进行检验。 本书的主要内容与结构安排 本书共11章,分为三篇。第一篇(第1~3章)为“ARM嵌入式Linux系统的基础与平台构建”,主要介绍嵌入式硬件平台和软件系统的基础知识,以期帮助读者达到构建嵌入式系统开发平台的目的。 第二篇(第4~7章)为“ARM嵌入式Linux系统的驱动开发与软件应用”,主要介绍基于ARM-Linux系统的驱动开发、软件移植、图形用户接口以及通信应用等内容。这些内容构成了嵌入式软件系统相关实验的基础,涵盖了嵌入式Linux系统的几乎所有要点。在完成该篇内容的学习之后,即可进入ARM-Linux的实际应用部分。 第三篇(第8~11章)为“ARM嵌入式Linux系统的解决方案与应用场合”,主要介绍一些基于ARM-Linux的实际应用方案和案例。本篇包含OMAP5910的相关应用、实时Mobile Linux系统、嵌入式Linux系统的设计与优化以及一个嵌入式Linux综合实例——数字油田生产监控系统。学生在了解该篇内容后,会对嵌入式系统目前的应用场合和解决方案有较深入的了解。 阅读本书时的注意事项 理论与实践相结合是本书的一大特色。若读者有相应的实验开发环境,建议动手验证书中安排的每一个环节,会取得良好的效果。具体实验可以参考《嵌入式Linux程序设计案例与实验教程》1 该书已由机械工业出版社出版,书号为:978-7-111-26327-2——编辑注。读者需要特别注意:1)某些代码需考虑平台的差异性,部分硬件相关代码需要修改;2)相关软件的版本与依赖关系,同一软件(包括交叉编译器)的不同版本在编译环境、使用方式、编程要求上存在一些差异,具体要求与区别均需参考相关文档。

内容概要

  《ARM嵌入式Linux系统设计与开发》全面介绍以ARM-Linux为操作系统的嵌入式系统设计与开发技术,秉承理论与实践相结合的指导思路,帮助读者快速跨入嵌入式系统开发的门槛。《ARM嵌入式Linux系统设计与开发》共11章,分三篇,其中,第一篇(第1~3章)主要介绍嵌入式硬件平台和软件系统的基础知识,第二篇(第4~7章)主要介绍基于ARM-Linux系统的驱动开发、软件移植、图形用户接口以及通信应用等内容,第三篇(第8~11章)主要介绍一些基于ARM-Linux的实际应用方案和案例。  《ARM嵌入式Linux系统设计与开发》内容丰富、概念清楚,适合作为高等院校计算机、电子、通信、软件工程等专业嵌入式课程的教材,也可供广大工程技术人员参考。

书籍目录

第一篇 ARM嵌入式Linux系统的基础与平台构建第1章 嵌入式系统基础11.1 嵌入式系统的概念与特点11.1.1 嵌入式系统的概念11.1.2 嵌入式系统的特点11.1.3 嵌入式系统的软硬件可裁剪21.1.4 嵌入式系统与单片机、传统PC的区别21.2 嵌入式系统开发基础31.2.1 嵌入式系统的硬件基础31.2.2 嵌入式系统的软件基础101.3 嵌入式系统开发流程与方法141.3.1 嵌入式系统的抽象体系结构141.3.2 实时软件分析设计方法DARTS151.3.3 嵌入式系统的开发流程161.3.4 嵌入式Linux系统的程序部署17习题18第2章 ARM与Linux基础192.1 ARM概述192.1.1 ARM体系结构192.1.2 XScale体系结构242.2 Linux系统的使用272.2.1 Linux的使用基础272.2.2 Linux内核与结构372.2.3 嵌入式Linux的启动过程412.3 LinuxC程序设计422.3.1 LinuxC程序设计基础432.3.2 调试工具452.3.3 Linux多线程库编程52习题56第3章 嵌入式Linux内核、文件系统与存储573.1 嵌入式引导系统技术573.1.1 概述573.1.2 u-boot目录结构583.1.3 u-boot启动流程及相关代码分析593.1.4 u-boot的常用命令673.2 Linux内核定制、裁剪和添加683.2.1 概述683.2.2 配置文件和配置工具693.2.3 内核的编译命令713.2.4 内核的烧写过程713.3 文件系统的构建733.3.1 概述733.3.2 BusyBox的移植743.4 关于2.6 版本内核的几点改进78习题79第二篇 ARM嵌入式Linux系统的驱动开发与软件应用第4章 嵌入式Linux接口设计与驱动程序814.1 驱动程序设计基础814.1.1 Linux驱动程序简介814.1.2 开发驱动程序的方法814.1.3 设备驱动程序的分类824.1.4 主设备号和次设备号824.1.5 udev介绍834.2 虚拟驱动模块实验904.2.1 内核的配置904.2.2 编写驱动程序944.2.3 测试程序和Makefile964.2.4 测试程序的执行过程964.3 AD接口驱动程序974.3.1 AD转换器974.3.2 AD转换有关参数994.3.3 ARM自带的AD转换装置994.3.4 程序说明1004.4 触摸屏接口设计与驱动1044.4.1 触摸屏的工作原理1044.4.2 S3C2410芯片的触摸屏相关配置寄存器1054.4.3 程序说明1094.5 帧缓冲与LCD驱动移植1104.5.1 帧缓冲机制介绍1104.5.2 LCD简介1114.5.3 LCD控制器初始化时所需的数据结构1114.5.4 移植LCD驱动程序1154.6 V4L程序设计1194.6.1 V4L概述1194.6.2 视频驱动实验121习题128第5章 嵌入式Linux开源软件移植与应用1295.1 开源软件移植的一般过程1295.1.1 软件移植的概念1295.1.2 软件移植过程1295.2 嵌入式WebServerGoAhead的移植与应用1305.2.1 嵌入式Web服务器1305.2.2 GoAhead介绍1315.2.3 GoAhead在ARM平台上的移植1315.2.4 页面操作1335.3 嵌入式WebServicegSOAP的移植与应用1345.3.1 gSOAP介绍1345.3.2 gSOAP裁剪1375.3.3 gSOAP应用1405.3.4 gSOAP移植1455.4 嵌入式数据库SQLite的移植与应用1475.4.1 SQLite介绍1475.4.2 SQLite在ARM平台上的移植1485.4.3 SQLite的使用1515.5 播放器Mplayer的移植1545.5.1 Mplayer介绍1545.5.2 Mplayer在ARM平台上的移植1545.6 J2ME灢phoneME的移植1575.6.1 phoneME介绍1575.6.2 软件移植过程1575.7 嵌入式浏览器Konqueror的移植1585.7.1 Konqueror介绍1585.7.2 软件移植过程159习题161第6章 嵌入式Linux图形用户接口1626.1 嵌入式GUI简介1626.1.1 嵌入式GUI的特点1626.1.2 嵌入式GUI的种类1626.2 嵌入式GUI——Qt1636.2.1 Qt与Qt/Embedded简介1636.2.2 Qt的特点1636.2.3 Qt的执行过程1646.2.4 Qt的插槽机制1666.2.5 一个完整的Qt程序1666.2.6 QtDesigner介绍1666.3 Qt/E4与键盘鼠标接口的映射1676.3.1 Qt/E4的移植过程1676.3.2 Qt/E4键盘鼠标接口的工作原理1706.3.3 Qt/E4与LinuxPS/2键盘鼠标驱动的衔接1726.3.4 Qt/E4键盘驱动映射的实现172习题174第7章 嵌入式Linux下的通信应用1757.1 嵌入式Linux下的串口通信1757.1.1 串口简介1757.1.2 串口编程1757.1.3 串口编程应用实例1777.2 嵌入式Linux网络编程1797.2.1 网络通信1797.2.2 Socket简介1797.2.3 网络编程1807.2.4 网络编程应用实例1827.3 嵌入式蓝牙技术1857.3.1 蓝牙技术1857.3.2 蓝牙体系结构1857.3.3 蓝牙通信网络1867.3.4 LinuxBluetooth软件层1867.3.5 USB适配器1867.3.6 蓝牙应用实例1877.4 CAN总线1917.4.1 CAN总线简介1917.4.2 CAN总线硬件特征1917.4.3 CAN控制器驱动1947.4.4 CAN总线编程实例1967.5 GPS和GPRS的应用1997.5.1 GPS原理与应用1997.5.2 GPS编程实例2007.5.3 GPRS原理与应用2037.5.4 GPRS编程实例204习题205第三篇 ARM嵌入式Linux系统的解决方案与应用场合第8章 OMAP5910与LinuxGateway2078.1 OMAP5910体系结构2078.1.1 MPU子系统2078.1.2 DSP子系统2088.2 LinuxDSPGateway2108.2.1 DSPGateway的由来2108.2.2 DSPGateway的Mailbox机制2108.2.3 通信缓冲2108.2.4 Mailbox命令协议2138.2.5 DSPGateway的设备接口2148.3 OMAP5910图像处理2158.3.1 图片格式2158.3.2 数字图像算法2168.4 基于OMAP的加密终端的实现(软件部分)2188.4.1 加密算法简介2188.4.2 加密终端的具体实现220习题221第9章 实时MobileLinux系统2229.1 LiMo基金会2229.1.1 LiMo基金会介绍2229.1.2 LiMo手机解决方案的软件体系结构2229.2 开放手机联盟2249.2.1 开放手机联盟与Android2249.2.2 Android应用程序结构分析2279.2.3 Android开发环境搭建2299.2.4 Android应用程序开发——-HelloWorld2349.3 MobileLinux系统的构建实例2369.3.1 MarvellPXA310简介2369.3.2 基于PXA310的MobileLinux系统构建过程237习题240第10章 嵌入式Linux系统的设计桖与优化24110.1 嵌入式产品的生产链与关键因素24110.2 嵌入式系统开发方法24110.2.1 软硬件“分离暠设计方法24110.2.2 非形式化建模方法与形式化建模方法24210.2.3 结构化设计范式与面向对象设计范式24310.3 硬件选型对性能的影响24310.3.1 硬件平台的分类24410.3.2 嵌入式处理器的选择24410.3.3 外围设备的选择24410.3.4 硬件成本24510.4 软件设计对性能的影响24510.4.1 嵌入式软件开发的特点24510.4.2 嵌入式软件开发中存在的问题24510.4.3 常用嵌入式软件设计方法24610.5 软硬件协同设计方法24710.5.1 传统设计方法的局限性24710.5.2 嵌入式软硬件协同设计方法247习题249第11章 嵌入式Linux综合实例——数字油田生产监控系统的设计与实现25011.1 系统概述25011.1.1 系统结构和功能简介25011.1.2 软硬件环境25211.2 系统设计25211.2.1 系统总体方案设计25211.2.2 无线传感器节点设计25311.2.3 远程测控终端RTU设计25411.3 软件设计25911.3.1 远程测控终端RTU软件设计25911.3.2 监控中心软件设计266参考文献271

章节摘录

插图:2.硬件设计开发步骤与注意点(1)开发步骤  硬件设计的开发步骤包括需求分析、系统的软硬件设计以及最后的相关测试和部署工作,具体如下:1)需求分析:首先分析系统工作原理,然后选择合适的参考硬件平台和软件系统。·了解系统工作原理:分析系统的运作流程和功能模块,了解系统需要使用哪些组件,并完成哪些职能。·选择参考硬件平台:选择合适的硬件平台,考虑大小、价格、功耗等各种因素,系统的大部分模块在硬件平台上可以直接测试。根据项目的需求,也可以对硬件配置以及软件支持的程度进行适当的调整。综合上述考虑因素,本书以基于ARM系列处理器的开发板作为相应的平台。·选择操作系统和软件:嵌入式操作系统种类繁多且各有特点,其中最为主流的是Win-dows CE和Linux操作系统。Linux具有自己的优势,不仅操作系统和应用软件都开源,而且可以裁剪。2)系统设计:对于嵌入式系统设计来说,需要进行硬件设计和软件开发两个方面的工作。硬件设计即对应于开发产品的相应功能,决定选择哪些硬件模块,裁剪哪些硬件模块。然后,需要对开发板提供的各种应用接口进行二次开发,完成嵌入式系统设计的基板。而软件开发是一个反复修改和编译的过程,其软件移植包括Linux系统的三个组成部分:引导系统的移植、内核移植以及应用程序的移植。其中引导系统和内核移植将在第3章详细描述,而应用程序的功能一般包含图形用户接口和系统数据功能的实现,这部分将在第4章至第7章进行详细的描述。3)系统集成与部署:硬件设计和软件开发都完成之后,就可以对样机进行测试了。测试可以先使用NFS方式,即所有的程序都在宿主机上,并且远程连接开发平台,使得这些程序能够在开发平台上实现。NFS方式之后即可以部署到开发平台上测试。反复执行测试过程,直到测试阶段完成。系统集成与部署流程如图1-1所示。当系统测试完成之后,产品就可以正常工作了。但是考虑到产品成本控制、升级和维护,真正产品化还需要大量的工作。(2)硬件设计中应注意的一些问题1)IC元件的选择:在选择IC元件的时候,要注意对于无铅及有铅元件的选择。全球都已经开始提倡电子产品的无铅化,而我国也正处于有铅工艺向无铅工艺转换的过渡时期。因此,大部分元器件厂商提供的元器件也就有无铅与有铅两种规格,有的厂商甚至已经停止有铅元件的生产。所以当一个产品设计完成后,设计人员需要确认选择的元器件是采用无铅工艺还是有铅工艺。如果在整个电路板上同时使用有铅元件与无铅元件,则不仅会给SMT生产工艺带来一定的困难,还可能带来整板一致性的缺陷。无铅元件的回流焊峰值温度在255℃左右,而有铅元件的回流焊峰值温度最高不超过235℃,而且两种工艺的温区数量也可能不同。

编辑推荐

《ARM嵌入式Linux系统设计与开发》基于作者多年对课程教学的思考和实践编写而成,充分体现了理论与实践相结合的特色。采取理论与实践相结合的指导思路,介绍以ARM-Linux为操作系统的嵌入式系统设计与开发技术。内容丰富,涵盖进行嵌入式Linux系统开发所需掌握的相关知识。嵌入式Linux具有开源、网络功能强大、内核稳定高效等特性,广泛应用于中低端智能电子设备中。而它与ARM的结合,更是一种主流的解决方案,嵌入式Linux+ARM已经广泛应用于机顶盒、掌上电脑、消费电子、MPC、网络设备、工业控制等领域。

图书封面

图书标签Tags

评论、评分、阅读与下载


    ARM嵌入式Linux系统设计与开发 PDF格式下载


用户评论 (总计2条)

 
 

  •   内容很有深度 很详细~
  •   呵呵呵呵呵呵呵呵!呵呵呵呵!
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7