出版时间:2010-3 出版社:电子工业出版社 作者:何永琪 编 页数:744
Tag标签:无
前言
嵌入式软件开发是嵌入式产品开发的关键技术之一,特别是基于 Linux 操作系统的嵌入式软件开发,已经成为嵌入式开发的主要领域,它不但涉及 Linux 操作系统内核的移植、剪裁和优化,还包含大量外设接口、总线等的驱动程序开发、移植和优化,以及大量的面向具体应用需求和产品要求的图形化应用软件开发。本书是一本面向产品开发基本职业技能的嵌入式 Linux 软件开发入门书籍,适合于下列读者群:嵌入式行业新入职的软硬件开发人员。原来从事单片机系统开发,有意转向 SoC(片上系统)开发的技术人员。高等院校和各类职业教育院校信息技术相关专业高年级学生和研究生一年级学生。嵌入式技术爱好者。本书也可为嵌入式行业在职技术人员、高等院校和各类职业教育院校信息技术相关专业教师及实验辅导人员提供一定的技术参考。本书结构本书的结构安排反映了作者多年从事嵌入式软件开发的丰富经验和对嵌入式产品开发基本职业技能要求的深入理解,也参考了本书评审专家和友好读者的意见,同时考虑到了大多数读者的现实技术基础;当然,许多网络书店上大量读者对已出版的相关书籍所做的书评也给了作者非常有益的启示。本书整体结构实际上遵循了嵌入式产品软件开发的基本工作流程,从 Linux 操作系统下的基本编程和面向软件开发的 ARM 体系硬件平台关键特性及其编程应用,到 Linux 操作系统的内核编程及系统调用、内核移植与剪裁、驱动程序开发和移植,直至 Linux 环境下的图形化应用软件开发,涵盖了嵌入式产品软件开发工作的各种主要技术,并且最后通过一个实际项目开发综合再现了全书的核心内容。总体内容本书分为 6 个部分。第 1 部分 嵌入式开发基础第 1 章从产品、服务和应用的角度,概括地介绍嵌入式技术的主要市场应用、嵌入式产品开发中涉及到的关键技术,让读者基本了解掌握嵌入式软件开发技术后能够从事哪些产品的开发、能够在哪些行业寻找适合的工作岗位。第 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 系统内核的配置方法,进行简单的内核移植,以及按应用要求构造根文件系统。第 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://www.cjhytec.com,提供例程源码的下载。本书作者本书由何永琪教授主编,杨红涛负责编写第4章到第12章、第17章、第18章、第21章和第22章,焦悦光负责编写第2章、第3章、第13章到第16章、第19章和第20章,戴无惧负责编写前言和第1章并起草全书大纲;邓莹莹为第19章和第20章提供部分章节初稿,袁裕芳、张欣然和朱子豪为第20章、第21章和第22章提供部分章节初稿,周聪、林胜朋和王松为第6章和第22章提供部分章节初稿,吴龙和李英良为第11章、第15章和第16章提供部分章节初稿,魏大庆和江中舟负责全书图例绘制。焦悦光最后统稿全书。
内容概要
本书从实用的角度出发,以 S3C2410A 芯片及 HY2410A 开发板为主,介绍了嵌入式 ARM 平台上 Linux 系统开发所需的各种技术,包括 ARM 处理器架构与汇编语言、嵌入式 Linux 开发环境的建立、C 及 C++ 语言要点、bootloader 和 Linux 内核的移植、Linux 系统应用编程、Linux 内核驱动编程和 Qt 图形界面应用的开发等,涵盖了嵌入式产品软件开发工作所需的各种主要技术。 本书是一本面向产品开发基本职业技能的嵌入式Linux软件开发入门书籍,适合于刚进入嵌入式行业的开发人员及技术爱好者阅读,也可供高等院校和各类职业教育院校信息技术相关专业人员作为参考资料。
作者简介
何永琪:1962年8月出生,1996年获得丹麦技术大学(Technical University Of Denmark)博士学位,现任北京大学电子学系教授、博士生导师。长期从事光纤通信、无线通信和宽带接入领域的研究,已完成国家973计划、国家863计划、国家自然科学基金等项目十余项,发表学术论文二十余篇。
书籍目录
第1部分 嵌入式开发基础 第1章 引言 1.1 嵌入式产业概况 1.2 Linux操作系统 1.3 ARM体系概况 1.3.1 ARM7 1.3.2 ARM9 1.3.3 ARM9E 1.3.4 ARME 1.3.5 ARM 1.3.6 Cortex 1.4 常见嵌入式产品及其基本平台简介 1.4.1 学习开发板 1.4.2 行业终端 1.4.3 工业控制 1.4.4 手持娱乐 1.4.5 医疗仪器 1.4.6 汽车电子 1.4.7 智能本 1.5 嵌入式产品开发基本流程 第2章 C语言编程要点 2.1 数据类型 2.2 常数 2.3 变量 2.3.1 变量的定义与初始化 2.3.2 变量的访问 2.3.3 左值与右值 2.3.4 只读变量 2.4 操作符 2.4.1 只读操作符 2.4.2 读写操作符 2.4.3 类型转换操作符 2.4.4 sizeof操作符 2.5 表达式和语句 2.5.1 表达式 2.5.2 语句 2.6 复合类型 2.6.1 数组 2.6.2 结构体 2.6.3 位域 2.6.4 数据的对齐 2.6.5 联合体 2.6.6 类型嵌套 2.6.7 类型别名 2.6.8 枚举类型 2.7 流程控制 2.7.1 顺序结构 2.7.2 分支结构 2.7.3 隐含的分支结构 2.7.4 循环结构 2.7.5 goto 2.8 函数 2.8.1 声明与定义 2.8.2 函数的调用与传值方式 2.8.3 函数与复合类型 2.8.4 内联函数 2.8.5 变量的作用范围与生存期 2.9 指针 2.9.1 指针与变量 2.9.2 指针与操作符 2.9.3 指针与数组 2.9.4 字符串 2.9.5 指针与结构体 2.9.6 指针与函数 2.9.7 回调函数 2.9.8 函数指针类型转换 2.10 预处理语句 2.10.1 文件包含 2.10.2 宏定义 2.10.3 宏与函数 2.10.4 代码分支 第3章 开发环境 3.1 Linux使用基础 3.1.1 命令参数与选项 3.1.2 文件、目录和路径 3.1.3 用户与权限 3.1.4 硬链接与符号链接 3.1.5 命令使用技巧 3.2 Linux常用命令 ……第2部分 ARM架构与编程第3部分 Linux系统编程第4部分 内核与驱动编程第5部分 嵌入式Linux系统构建第6部分 应用编程附录A 缩略语
媒体关注与评论
本书在嵌入式系统技术知识与实际产品开发技能之间的“鸿沟”上构建了很好的桥梁,相信嵌入式系统技术初学者和大、专院校电子信息类学生以及嵌入式系统产品开发人员,将能够通过本书更加容易、透彻地了解和理解嵌入式系统基本技术,并借以提高实际产品开发技能,快速有效地走进嵌入式系统产品开发领域。 ——大唐电信科技产业集团总工程师 陈山枝 本书弥补了学院式教学的缺陷,可使读者顺利实现从掌握知识到掌握开发技能的转变,深刻理解嵌入式产品开发的真谛。 ——北京大学教授、博士生导师 何永琪 这是一本不可多得的嵌入式系统开发人员必备参考书。全书强调实用性,而不是知识的完备性,可使读者快速掌握实际开发工作中需要的技术,并引导读者养成良好的开发习惯,使其最初就踏上一条通往成功的正确之路。 ——北京诚捷鸿远通信技术有限公司副总经理 江中舟
图书封面
图书标签Tags
无
评论、评分、阅读与下载