温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
嵌入式
Linux
系统
实用
开发
内 容 简 介 本书从实用的角度出发,以 S3C2410A 芯片及 HY2410A 开发板为主,介绍了嵌入式 ARM 平台上 Linux 系统开发所需的各种技术,包括 ARM 处理器架构与汇编语言、嵌入式 Linux 开发环境的建立、C 及 C+语言要点、bootloader 和 Linux 内核的移植、Linux 系统应用编程、Linux 内核驱动编程和 Qt 图形界面应用的开发等,涵盖了嵌入式产品软件开发工作所需的各种主要技术。本书是一本面向产品开发基本职业技能的嵌入式 Linux 软件开发入门书籍,适合于刚进入嵌入式行业的开发人员及技术爱好者阅读,也可供高等院校和各类职业教育院校信息技术相关专业人员作为参考资料。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 嵌入式 Linux 系统实用开发何永琪主编.北京:电子工业出版社,2010.3(实用为王)ISBN 978-7-121-10039-0 .嵌.何.Linux 操作系统程序设计.TP316.89 中国版本图书馆 CIP 数据核字(2009)第 224359 号 责任编辑:董 英 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7871092 1/16 印张:46.5 字数:1339 千字 印 次:2010 年 3 月第 1 次印刷 定 价:89.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至,盗版侵权举报请发邮件到。服务热线:(010)88258888。前言IX 前 言 嵌入式软件开发是嵌入式产品开发的关键技术之一,特别是基于 Linux 操作系统的嵌入式软件开发,已经成为嵌入式开发的主要领域,它不但涉及 Linux 操作系统内核的移植、剪裁和优化,还包含大量外设接口、总线等的驱动程序开发、移植和优化,以及大量的面向具体应用需求和产品要求的图形化应用软件开发。本书是一本面向产品开发基本职业技能的嵌入式 Linux 软件开发入门书籍,适合于下列读者群:?嵌入式行业新入职的软硬件开发人员。?原来从事单片机系统开发,有意转向 SoC(片上系统)开发的技术人员。?高等院校和各类职业教育院校信息技术相关专业高年级学生和研究生一年级学生。?嵌入式技术爱好者。本书也可为嵌入式行业在职技术人员、高等院校和各类职业教育院校信息技术相关专业教师及实验辅导人员提供一定的技术参考。本书结构 本书的结构安排反映了作者多年从事嵌入式软件开发的丰富经验和对嵌入式产品开发基本职业技能要求的深入理解,也参考了本书评审专家和友好读者的意见,同时考虑到了大多数读者的现实技术基础;当然,许多网络书店上大量读者对已出版的相关书籍所做的书评也给了作者非常有益的启示。本书整体结构实际上遵循了嵌入式产品软件开发的基本工作流程,从 Linux 操作系统下的基本编程和面向软件开发的 ARM 体系硬件平台关键特性及其编程应用,到 Linux 操作系统的内核编程及系统调用、内核移植与剪裁、驱动程序开发和移植,直至 Linux 环境下的图形化应用软件开发,涵盖了嵌入式产品软件开发工作的各种主要技术,并且最后通过一个实际项目开发综合再现了全书的核心内容。总体内容 本书分为 6 个部分。第 1 部分 嵌入式开发基础 第 1 章从产品、服务和应用的角度,概括地介绍嵌入式技术的主要市场应用、嵌入式产品开 X 嵌入式Linux系统实用开发发中涉及到的关键技术,让读者基本了解掌握嵌入式软件开发技术后能够从事哪些产品的开发、能够在哪些行业寻找适合的工作岗位。第 2 章从嵌入式系统软件产品开发的角度,重点阐述 C 语言编程的核心要领,特别是在 Linux 和嵌入式 Linux 环境下 C 语言编程的关键技术。第 3 章引导读者利用开源软件,搭建嵌入式 Linux 软件开发的基本工作环境,主要是帮助读者在目前最流行的 Linux 发行版本Debian 5.0 上顺利搭建一套实用性软件开发环境。第 2 部分 ARM 架构与编程 这一部分包括第 4 章到第 7 章,主要是与硬件平台和 ARM CPU 基础指令有关的内容。第 4 章主要从软件开发编程的角度,详细介绍 ARM9 体系的核心架构、ARM 常用指令及其编程应用和 ARM 汇编语言程序开发方法。第 5 章主要是引导读者顺利完成一套嵌入式系统的固件(Firmware)开发环境的搭建和使用。第 6 章首先介绍目前市场上比较常见的三星 S3C2410A 嵌入式处理器的基本体系结构、工作原理,然后详细分析 S3C2410A 处理器主要接口和外设控制器的工作原理以及使用方式。第 7 章以目前嵌入式 Linux 系统中最常见的系统引导(bootloader)软件 U-boot 为例,帮助读者理解 bootloader 的工作机制、开发移植流程和系统应用。第 3 部分 Linux 系统编程 这一部分包括第 8 章到第 12 章,是 Linux 软件开发的基础。第 8 章是 Linux 系统编程的基础,重点讨论 Linux 系统中程序的层次结构和内存映像、Linux 库函数的错误处理以及环境变量等。第 9 章主要讨论 Linux 的文件系统及其编程应用,由于 Linux 系统中很多设备的操作是以文件系统的方式处理的,因此文件系统在 Linux 中十分重要。第 10 章详细介绍操作系统的一个核心概念进程,还涉及到进程的同步和进程间通信等基本编程应用。第 11 章讲解 socket编程这一 Linux 网络通信应用的基础。第 12 章主要讲解多线程程序的编程开发。第 4 部分 内核与驱动编程 这一部分包括第 13 章到第 16 章。第 13 章介绍实模式与保护模式、用户态与内核态等基本概念,同时还介绍了内核编程的一些特点,以一个简单的字符设备为例说明了驱动编程的一般方法。第 14 章主要讨论 Linux 编程的内核接口及其应用。第 15 章介绍 Linux 2.6 版本的设备模型和编程应用要点。第 16 章以输入设备驱动和 USB 设备驱动为例介绍 Linux 设备驱动程序开发的基本原理和方法。由于很多读者没有编程经验,或者以前主要从事应用编程,而从应用编程到内核和驱动编程无论是概念还是方法都需要一定的转变,这一部分的目的就是引导读者完成这一转变。第 5 部分 嵌入式 Linux 系统构建 这一部分内容相对简单,作者认为绝大多数读者不会从事 Linux 内核的开发,而是有目的地使用或者剪裁稳定版本的 Linux 内核,因此在第 17 章中主要介绍 Linux 内核的配置原理与方法,并举例说明其中关键操作的基本流程,在第 18 章中则主要讲解并演示 Linux 根文件系统构建和移植的方法。通过这两章,读者基本可以掌握嵌入式 Linux 系统内核的配置方法,进行简单的内核移植,以及按应用要求构造根文件系统。前言XI第 6 部分 应用编程 这一部分包括第 19 章到第 22 章,主要目的是帮助读者熟悉针对诸如智能手机、自助终端等终端设备类功能需求的应用开发。第 19 章从开发编程的角度介绍 C+特有的概念和用法,适合那些对 C 语言有一定基础的读者快速进入 C+编程领域。第 20 章以目前嵌入式行业最常见的开发环境Qt 4.5.2 的开源版本为例,介绍如何使用 Qt 平台进行嵌入式 GUI 的开发。第 21 章则简单介绍最常用的嵌入式数据库 SQLite 的应用开发方法。第 22 章通过一个实际产品开发中的典型项目案例,将本书核心内容贯穿于一体,使读者有机会全方位地了解嵌入式产品的软件开发流程和实施方法。主要特色 本书的作者长期从事嵌入式软件开发工作,本书既是他们经验和教训的汇总,也是他们对嵌入式产品软件开发的理解。书中内容取舍与结构安排均面向嵌入式软件开发的实际需要;书中的代码均经过编译和运行,进行了严格的测试,部分代码来自实际产品开发工作并且经过终端产品的长期应用考验;Linux 内核版本选择的是初稿完成时的最新内核稳定版本Linux 2.6.30;应用开发环境则选择的是最新的跨操作系统开发平台Qt Embedded 4.5.1,特别是本书支持网站上提供的 Qt Embedded 4.5.1 是本书初稿完成时全球唯一的支持简体中文处理的版本(这个版本也是本书几位作者移植成功的)。本书的支持网站是 http:/,提供例程源码的下载。本书作者 本书由何永琪教授主编,杨红涛负责编写第 4 章到第 12 章、第 17 章、第 18 章、第 21 章和第 22 章,焦悦光负责编写第 2 章、第 3 章、第 13 章到第 16 章、第 19 章和第 20 章,戴无惧负责编写前言和第 1 章并起草全书大纲。邓莹莹为第 19 章和第 20 章提供部分章节初稿,袁裕芳、张欣然和朱子豪为第 20 章、第 21 章和第 22 章提供部分章节初稿,周聪、林胜朋和王松为第 6 章和第 22 章提供部分章节初稿,吴龙和李英良为第 11 章、第 15 章和第 16 章提供部分章节初稿,魏大庆和江中舟负责全书图例绘制。焦悦光最后统稿全书。序 20 世纪 90 年代以来,计算机技术、通信技术和集成电路技术飞速发展,并且相互融合,导致了嵌入式技术及其应用的产生和迅猛发展,对全球包括我国的工业、农业、科技、军事、教育、文化等领域产生了深远的影响,也有力地促进了全球化和信息化。目前,嵌入式技术已经成为信息产业发展的核心领域之一,对国民经济、国防安全以及人们的日常生活、工作和学习等都发挥着日益重要的作用。随着改革开放步伐的加大,特别是加入了 WTO 之后,我国已成为全球电子设备和通信终端产品的主要生产制造基地之一。2008 年,全球 52%的手机、90%以上的笔记本电脑,特别是 iPhone,都是在中国大陆生产的,而多媒体播放器、数字电视机顶盒、无线终端、电子词典、银行 ATM 机、商业 POS 机、智能家电、工业控制器、传感器等嵌入式产品的主要生产制造基地也都在中国。2009 年 1 月 7 日,我国政府向三个运营商发放了 3G 牌照,由大唐电信集团代表我国提出的拥有自主知识产权的 TD-SCDMA 3G 国际标准由全球最大的移动运营商中国移动主导正式开始商用,这标志着我国进入了 3G 时代。移动互联网应用是 3G 时代的发展主流,消费电子、计算机与无线移动通信进一步融合,出现了智能手机、3G 上网本、3G 电子书等,而数码相机、数码摄像机等也将具有 3G 无线通信功能。2009 年全球移动通信用户数预计将超过 46 亿,中国及新兴国家市场仍是用户数增长的主要驱动力量。未来人与人之间的通信将逐步趋于饱和,而物与物、人与物之间的通信发展潜力将更为巨大。据预测,到 2020 年全球将有 500 亿个互联终端,而这些终端都需要嵌入式技术来实现。物联网、传感网都需要采用嵌入式技术来实现低功耗、低成本,以及恶劣环境下使用等问题。2009 年 8 月 7 日,温家宝总理在无锡考察时提出了“感知中国”,要求把传感系统和 3G 中的 TD-SCDMA 技术结合起来。随着移动通信网在我国的广泛覆盖,物联网、传感网已成为我国新兴战略产业之一,而这一切都离不开嵌入式技术,也将促进我国的信息化和工业化融合(即“两化融合”),实现经济结构调整、产业转型和升级。可见,未来嵌入式技术及其应用将十分广泛,战略意义也十分重大。因此,我国嵌入式系统技术人才的需求将越来越大。但是,与嵌入式系统产业的蒸蒸日上相比,我国嵌入式系统技术教育和人才培养相对落后,导致嵌入式系统技术人才的培养和成长不能满足嵌入式系统产业快速发展的需求,具备独立从事嵌入式系统产品开发的专业人才尤为缺乏。为了支撑嵌入式系统技术的人才培养,便于需要掌握嵌入式系统技术人员的学习,本书以传授实用性知识、培养实际开发技能为宗旨,针对嵌入式系统产品开发的基本技能要求,凝聚几位长期从事嵌入