Linux嵌入式系统开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

嵌入式系统已经广泛地渗透到航空航天、汽车电子、医疗网络通信、工业控制等各个领域,正在以不同的形式悄悄地改变着人们的生产、生活方式,已经成为当今计算机领域的一个亮点。嵌入式系统和Linux的有机结合,成为后PC时代计算机最普遍的应用形式。嵌入式Linux不仅继承了Linux源代码开放、内核稳定高效、软件丰富、强大的网络支持功能、优秀的开发工具等优势,而且还具备支持广泛的处理器结构和硬件平台占有空间小、成本低等特点。

嵌入式Linux需要相应的嵌入式开发板和软件,还需要有经验的人员进行指导开发,目前国内大部分高校都很难达到这种要求,这也造成了目前国内嵌入式Linux开发人才极其缺乏的局面。

从技术角度来讲,嵌入式系统是软件和硬件的有机结合体。一名合格的嵌入式系统设计人员往往要求同时具备软件和硬件两个方面的知识。因此,这也是作者编写本书的目的所在。

本书分为12章,依次介绍了嵌入式系统基本概述、嵌入式系统开发过程、ARM体系结构、Linux基础概述、Linux进程、Linux开发环境建立、Linux操作系统移植、Bootloader的使用、构建Linux根文件系统、设备驱动程序开发、嵌入式GUI开发、综合构建工程实例等内容。

第1章 嵌入式系统概述。本章首先介绍了嵌入式系统的组成部分、处理器、常见的嵌入式操作系统和新型的嵌入式操作系统,然后介绍了嵌入式系统的应用,最后讲述了嵌入式系统的发展趋势。

第2章 嵌入式系统开发过程。本章首先讲述了嵌入式软件的开发流程和软件测试技术,重点介绍基于JTAG的ARM系统调试。通过综合实例掌握ADS集成开发环境的使用。

第3章 ARM体系结构。本章主要介绍了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章 Linux操作系统移植。本章主要介绍了Linux操作系统移植知识,重点讲述了Linux内核结构和操作系统移植,通过多个综合实例使读者掌握Linux操作系统的移植技术。

第8章 Bootloader的使用。本章首先介绍Bootloader的工作模式,讲述了Bootloader的启动方式和流程。然后详细介绍vivi代码的两个阶段,并重点介绍vivi的配置与编译、U-boot常用命令和源代码目录结构,讲述U-boot的启动模式和启动流程并重点介绍U-boot在S3C2410上的移植。最后简单介绍其他常见的Bootloader。通过多个实例的操作使读者掌握Bootloader的使用。

第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系统在嵌入式的应用,熟悉其他章节的内容在开发中的具体应用。

本书主要由朱小远(珠海市高级技工学校)、谢龙汉(华南理工大学)共同完成。参加本书编写的还有:林伟、魏艳光、林木议、王悦阳、林伟洁、林树财、郑晓、吴苗、李翔、莫衍、唐培培、耿煜、尚涛、邓奕、张桂东、鲁力、刘文超、刘新东等。感谢珠海市高级技工学校为作者提供编书的实训场地和资源的利用。由于时间仓促,书中难免有疏漏之处,请读者谅解。读者可通过电子邮件xielonghan@yahoo.com.cn与我们交流。

编著者