本书以Linux嵌入式系统的基本开发技术为主线,以基于ARM架构的嵌入式处理器为嵌入式硬件平台,全面介绍嵌入式系统开发过程、ARM体系结构、Linux基础、Linux进程、Linux开发环境的建立、Linux操作系统移植、Bootloader的使用、Linux根文件系统的构建、设备驱动程序的开发、嵌入式GUI开发等嵌入式知识,*后介绍近年来较为热门的GPS导航系统的设计。 本书在*版的基础上进行改版,结合众多读者的返馈意见,优化了内容结构和程序代码,实例操作配有视频讲解。
前 言
嵌入式系统已经广泛地渗透到航空航天、汽车电子、医疗网络通信、工业控制等各个领域,正在以不同的形式悄悄地改变着人们的生产、生活方式,已经成为当今计算机领域的一个亮点。嵌入式系统和Linux的有机结合,成为后PC时代计算机最普遍的应用形式。嵌入式Linux不仅继承了Linux源代码开放、内核稳定高效、软件丰富、强大的网络支持功能、优秀的开发工具等优势,还具备支持广泛的处理器结构和硬件平台占有空间小、成本低等特点。
嵌入式Linux需要相应的嵌入式开发板和软件,还需要有经验的人员进行指导开发,目前国内大部分高校都很难达到这种要求,这也造成了目前国内嵌入式Linux开发人才极其缺乏的局面。
从技术角度来讲,嵌入式系统是软件和硬件的有机结合体。一名合格的嵌入式系统设计人员往往要求同时具备软件和硬件两方面的知识。因此,这也是编写本书的目的所在。
本书分为4篇12章,涉及嵌入式系统开发基础、嵌入式Linux开发入门、嵌入式系统移植与构建、嵌入式系统开发四大部分内容,依次介绍嵌入式系统基本概念、嵌入式系统开发过程与工具、嵌入式处理器体系结构、Linux基础概述、Linux内核、Linux开发环境建立、Linux操作系统移植、Bootloader的使用、Linux根文件系统的构建、设备驱动程序开发、嵌入式GUI开发、综合工程实例等内容。
第1章 嵌入式系统介绍。本章首先介绍嵌入式系统的组成部分、处理器、常见的嵌入式操作系统和新型的嵌入式操作系统,然后介绍嵌入式系统的应用,最后讲述嵌入式系统的发展趋势。
第2章 嵌入式系统开发过程与工具。本章首先讲述嵌入式软件的开发流程和软件测试技术,重点介绍基于JTAG的ARM系统调试。通过综合实例掌握ADS集成开发环境的使用。
第3章 嵌入式处理器体系结构。本章主要介绍ARM体系结构的组成部分、技术特征、ARM微处理器的分类和应用选型。接着,重点以S3C2410处理器为例进行讲述,并详细介绍ARM编程模型、ARM指令的寻址方式和ARM指令集的使用。最后,描述了ARM微处理器的异常情况。
第4章 Linux开发常用操作。本章首先讲述Linux的概况,然后分别介绍Linux命令和vi编辑器的使用。接着,讲述Shell程序设计语言的使用。最后,通过讲述编写清除/var/log下的log文件和编写寻找死链接文件两个综合实例的操作,掌握Shell编程的具体使用。
第5章 Linux内核介绍。本章首先讲述进程结构的控制操作和属性,然后分别介绍管道、信号、信号量、共享内存和消息队列的使用,最后通过多个实例的操作,使读者掌握进程的具体使用。
第6章 Linux开发环境的构建。本章首先讲述Cygwin和VMware Workstation两种开发环境的建立,介绍建立交叉编译环境的主要过程。然后分别介绍gcc编辑器和gdb调试器的使用方法。最后详细讲解Makefile变量的使用以及隐含规则的应用。通过多个实例的操作,使读者掌握Linux开发环境的建立。
第7章 Bootloader的移植。本章首先介绍Bootloader的工作模式,讲述Bootloader的启动方式和流程。然后详细介绍vivi代码的两个阶段,并重点介绍vivi的配置与编译、U-boot常用命令和源代码目录结构,讲述U-boot的启动模式和启动流程,并重点介绍U-boot在S3C2410上的移植。最后简单介绍其他常见的Bootloader,通过多个实例的操作,使读者掌握Bootloader的使用。
第8章 Linux内核裁剪和移植。本章主要介绍Linux操作系统移植知识,重点讲述Linux内核结构和操作系统移植,通过多个综合实例的操作,使读者掌握Linux操作系统的移植技术。
第9章Linux根文件系统的构建。本章首先讲述文件系统,然后利用BusyBox构建根文件系统,使读者对根文件系统有全面的了解。
第10章 设备驱动程序开发。本章首先讲述Linux设备驱动程序的分类,包括字符设备、块设备、网络设备;驱动程序在Linux中的层次结构和其特点。然后对设备驱动程序与文件系统的关系、Linux设备驱动程序的接口、Linux驱动程序的加载方法及其步骤进行分析。接着,讲述设备驱动程序的使用、网络设备的基础知识和网络设备驱动程序的体系结构、模块分析、实现模式。最后,通过多个实例的操作,使读者掌握设备驱动程序的具体使用。
第11章 嵌入式常用GUI开发。本章主要介绍各种嵌入式GUI的相关知识,包括MiniGUI的实现、Qt/E的界面编程和Qtopia移植等。大部分知识点后面都有相关的实例,介绍其内容的具体应用。通过本章的学习,应该掌握如何建立Qt/Embedded的开发环境及编写Qt/Embedded或Qtopia程序的开发流程。
第12章 嵌入式系统综合工程实例。本章主要介绍文件系统的构建和烧写、数码相框、基于Linux的Mplayer解码播放器和基于Linux的GPS导航系统的开发实例。在开发这些工程实例的过程中,熟悉Linux系统在嵌入式方面的应用,熟悉其他章节的知识在开发中的具体应用。
本书主要由戴璐平、何渊仁、吴志男完成编写,本书是在第1版的基础上,结合众多读者的返馈意见进行改版,对图书内容和实例程序代码等进行了优化,对书中实例全部配有视频讲解,使读者能够轻松掌握书中知识,并尽快应用于实际工作中,本书实例代码和视频等素材,请读者到华信教育资源网下载(
www.hxedu.com.cn)。但由于作者教学任务重、时间紧,书中仍会有不妥之处,请读者批评指正,读者可通过电子邮件
xucq@phei.com.cn与我们交流。
江西师范大学毕业后,一直在宜春学院任教,从讲师到教授,到系副主任,坚持在教学一线,教学经验丰富。主持或作为骨干成员参加多项*和省部级课题,省文化科技创新工程项目1项,省部级中青年骨干教师。