新書推薦:
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
67.9
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
457.7
《
股市趋势技术分析(原书第11版)
》
售價:HK$
227.7
《
汉匈战争全史
》
售價:HK$
102.4
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
101.2
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
158.7
《
双城史
》
售價:HK$
110.9
|
編輯推薦: |
本书是在第1版的基础上,结合众多读者的反馈意见进行改版,对图书内容和实例程序代码等进行了优化,对书中实例全部配有视频讲解,使读者能够轻松掌握书中知识,并尽快应用于实际工作中。本书实例代码和视频等素材,请读者到华信教育资源网的本书页面下载(www.hxedu.com.cn)。
|
內容簡介: |
本书以Linux嵌入式系统的基本开发技术为主线,以基于ARM架构的嵌入式处理器为嵌入式硬件平台,全面介绍嵌入式系统开发过程、ARM体系结构、Linux基础、Linux进程、Linux开发环境的建立、Linux操作系统移植、Bootloader的使用、Linux根文件系统的构建、设备驱动程序的开发、嵌入式GUI开发等嵌入式知识,*后介绍近年来较为热门的GPS导航系统的设计。本书在*版的基础上进行改版,结合众多读者的返馈意见,优化了内容结构和程序代码,实例操作配有视频讲解。
|
關於作者: |
江西师范大学毕业后,一直在宜春学院任教,从讲师到教授,到系副主任,坚持在教学一线,教学经验丰富。主持或作为骨干成员参加多项*和省部级课题,省文化科技创新工程项目1项,省部级中青年骨干教师。
|
目錄:
|
目录
第一篇嵌入式系统开发基础
第1章嵌入式系统介绍(1)
1.1嵌入式系统的概念(1)
1.1.1嵌入式系统的定义(1)
1.1.2嵌入式系统的特点(2)
1.2嵌入式系统的组成(2)
1.2.1嵌入式处理器(3)
1.2.2外围设备(3)
1.2.3嵌入式操作系统(3)
1.2.4应用软件(3)
1.3嵌入式处理器(4)
1.3.1嵌入式处理器的分类(4)
1.3.2嵌入式微处理器(5)
1.3.3嵌入式微控制器(5)
1.3.4嵌入式DSP处理器(6)
1.3.5嵌入式片上系统(6)
1.3.6选择嵌入式处理器(7)
1.4嵌入式操作系统(7)
1.4.1操作系统的概念和分类(8)
1.4.2实时操作系统(8)
1.4.3常用的嵌入式操作系统(10)
1.5新型的嵌入式操作系统(13)
1.5.1Android(13)
1.5.2MontaVista(15)
1.6嵌入式系统的应用(15)
1.7嵌入式系统的发展趋势(18)
1.7.1嵌入式系统面临的挑战(18)
1.7.2嵌入式系统的发展前景(19)
1.8本章小结(20)
第2章嵌入式软件开发过程与工具(21)
2.1嵌入式软件开发介绍(21)
2.1.1嵌入式软件开发的特殊性(21)
2.1.2嵌入式软件的分类(22)
2.1.3嵌入式软件的开发流程(22)
2.1.4嵌入式软件开发工具的发展趋势(24)
2.2嵌入式软件的调试技术(25)
2.2.1调试技术介绍(25)
2.2.2基于JTAG的ARM系统调试(26)
2.3嵌入式软件测试技术(27)
2.3.1宿主机目标机开发模式(27)
2.3.2目标监控器(28)
2.4嵌入式系统集成开发环境(30)
2.4.1ADS的介绍(30)
2.4.2ADS建立工程的使用介绍(32)
2.4.3AXD调试器的使用介绍(37)
实例2-1ARM开发环境ADS的使用实例(39)
2.5本章小结(43)
第3章嵌入式处理器体系结构(44)
3.1ARM体系结构概述(44)
3.1.1ARM体系结构简介(45)
3.1.2ARM体系结构的技术特征(47)
3.1.3CISC的体系结构(48)
3.1.4RISC的体系结构(48)
3.1.5RISC系统和CISC系统的比较(50)
3.2ARM微处理器的分类(51)
3.2.1ARM7微处理器(51)
3.2.2ARM9微处理器(52)
3.2.3ARM9E微处理器(52)
3.2.4ARM10E微处理器(53)
3.2.5ARM11微处理器(54)
3.2.6SecurCore微处理器(54)
3.2.7StrongARM微处理器(54)
3.2.8XScale微处理器(55)
3.3ARM微处理器的应用(55)
3.3.1ARM微处理器的应用选型(55)
3.3.2S3C2410处理器(56)
3.4存储器(57)
3.4.1存储器简介(57)
3.4.2SDRAM操作(59)
3.4.3Flash(60)
3.5ARM编程模型(61)
3.5.1数据类型(61)
3.5.2存储器格式(62)
3.5.3处理器工作状态(62)
3.5.4处理器运行模式(63)
3.5.5寄存器组织(63)
3.5.6内部寄存器(66)
3.6ARM指令的寻址方式(67)
3.6.1立即寻址(67)
3.6.2寄存器寻址(68)
3.6.3寄存器间接寻址(68)
3.6.4相对寻址(69)
3.6.5堆栈寻址(69)
3.6.6块复制寻址(70)
3.6.7变址寻址(70)
3.6.8多寄存器寻址(71)
3.7ARM指令集(71)
3.7.1ARM指令的格式(71)
3.7.2ARM指令分类(72)
3.7.3Thumb指令介绍(78)
3.7.4Thumb指令分类(79)
3.7.5ARM指令集和Thumb指令集的区别(82)
3.8ARM微处理器的异常(83)
3.8.1ARM体系结构所支持的异常类型(84)
3.8.2异常矢量表(85)
3.8.3异常优先级(85)
3.8.4应用程序中的异常处理(86)
3.8.5各类异常的具体描述(87)
3.9本章小结(91)
第二篇Linux开发入门
第4章Linux开发常用操作(92)
4.1Linux系统介绍(92)
4.1.1Linux的概况(93)
4.1.2Linux操作系统的构成(94)
4.1.3Linux常见的发行版本(95)
4.1.4Linux内核的特点(97)
4.2Linux命令的使用(98)
4.3vi编辑器的使用(108)
4.3.1vi编辑器的进入(108)
4.3.2命令模式的命令(109)
4.3.3末行模式的命令(110)
实例4-1vi编辑器使用实例(110)
4.4Shell编程(112)
4.4.1Shell基础介绍(112)
4.4.2Shell程序的变量和参数(114)
4.4.3运行Shell程序(116)
4.4.4Shell程序设计的流程控制(117)
4.4.5Shell输入与输出(121)
4.4.6bash介绍(123)
4.5综合实例(124)
实例4-2编写清除varlog下的log文件综合实例(124)
实例4-3编写寻找死链接文件综合实例(127)
4.6本章小结(131)
第5章Linux内核介绍(132)
5.1进程概述(132)
5.1.1进程结构(133)
5.1.2进程的控制操作(134)
5.1.3进程的属性(136)
5.1.4进程的创建和调度(137)
5.1.5Linux进程命令(139)
5.2系统调用(143)
5.2.1系统调用概述(143)
5.2.2系统调用的进入(144)
5.2.3与进程管理相关的系统调用(145)
5.3管道(145)
5.3.1管道系统调用(145)
5.3.2管道的分类(147)
实例5-1管道通信实例(148)
5.4信号(150)
5.4.1常见的信号种类(150)
5.4.2系统调用函数(151)
5.4.3信号的处理(152)
5.4.4信号与系统调用的关系(152)
实例5-2信号实例(153)
5.5信号量(154)
5.5.1信号量概述(154)
5.5.2相关的数据结构(155)
5.5.3相关的函数(157)
实例5-3信号量实例(158)
5.6共享内存(163)
5.6.1共享内存原理(163)
5.6.2共享内存对象的结构(164)
5.6.3相关的函数(165)
实例5-4共享内存实例(166)
5.7消息队列(171)
5.7.1有关的数据结构(171)
5.7.2相关的函数(174)
实例5-5消息队列实例(176)
5.8综合实例(179)
实例5-6多线程编程实例(179)
5.9本章小结(180)
第6章Linux开发环境的构建(181)
6.1建立Linux开发环境概述(181)
6.1.1Cygwin开发环境(181)
6.1.2VMware Workstation开发环境(183)
6.2交叉编译的使用(185)
6.2.1GNU交叉工具链的设置(185)
6.2.2ARM GNU常用汇编语言(188)
6.2.3GNU交叉工具链的常用工具(190)
6.2.4交叉编译环境(193)
6.3Linux下的C编程(196)
6.3.1Linux程序设计特点(196)
6.3.2Linux下C语言编码的风格(197)
6.3.3Linux程序基础(197)
6.3.4Linux下C编程的库依赖(199)
6.4gcc的使用与开发(199)
6.4.1gcc简介和使用(199)
6.4.2gcc选项(200)
6.4.3gcc的错误类型(203)
实例6-1gcc编译器环境的应用实例(204)
6.5gdb调试器的介绍和使用(205)
6.5.1gdb调试器的使用(205)
6.5.2在gdb中运行程序(206)
6.5.3暂停和恢复程序运行(208)
6.5.4远程调试(211)
实例6-2gdb调试器环境的应用实例(211)
6.6GNU make和Makefile的使用(213)
6.6.1Makefile的基本结构(214)
6.6.2Makefile的变量(215)
6.6.3Makefile的隐含规则(217)
6.6.4Makefile的命令使用(220)
6.6.5Makefile的函数使用(221)
6.6.6Makefile文件的运行(223)
6.6.7Makefile规则书写命令(225)
实例6-3Makefile的命令使用实例(231)
6.7autoconf和automake的使用(233)
6.7.1autoconf的使用(233)
6.7.2Makefile.am的编写(236)
6.7.3automake的使用(236)
6.7.4使用automake和autoconf产生Makefile(237)
6.7.5自动生成Makefile的方法(237)
6.8综合实例(238)
实例6-4gcc编译器的综合实例(238)
实例6-5gdb调试器的综合实例(241)
实例6-6Makefile的综合实例(244)
6.9本章小结(246)
第三篇嵌入式系统移植与构建
第7章Bootloader的使用(247)
7.1Bootloader 概述(248)
7.1.1Bootloader的作用(248)
7.1.2Bootloader的功能(249)
7.1.3Bootloader的种类(250)
7.1.4Bootloader的工作模式(251)
7.1.5Bootloader的启动方式(251)
7.1.6Bootloader的启动流程(253)
7.1.7Bootloader与主机的通信(253)
7.2vivi的移植(253)
7.2.1vivi的常用命令和文件结构(254)
7.2.2vivi第一阶段的分析(255)
7.2.3vivi第二阶段的分析(261)
7.2.4vivi的配置与编译(263)
7.3U-boot的移植(264)
7.3.1U-boot常用命令和源代码目录结构(264)
7.3.2U-boot支持的主要功能(268)
7.3.3U-boot的编译和添加命令(268)
7.3.4U-boot的启动介绍(272)
7.3.5U-boot的移植和使用(273)
7.3.6U-boot的启动过程(275)
7.3.7U-boot的调试(276)
7.4其他常见的Bootloader(278)
7.5综合实例(280)
实例7-1vivi编译实例(280)
实例7-2U-boot在S3C2410上的移植实例(281)
实例7-3Bootloader设计实例(283)
7.6本章小结(285)
第8章Linux内核裁剪与移植(286)
8.1Linux移植简介(286)
8.1.1Linux可移植性发展(287)
8.1.2Linux的移植性(287)
8.2Linu
|
內容試閱:
|
前 言
嵌入式系统已经广泛地渗透到航空航天、汽车电子、医疗网络通信、工业控制等各个领域,正在以不同的形式悄悄地改变着人们的生产、生活方式,已经成为当今计算机领域的一个亮点。嵌入式系统和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程序设计语言的使用。最后,通过讲述编写清除varlog下的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的实现、QtE的界面编程和Qtopia移植等。大部分知识点后面都有相关的实例,介绍其内容的具体应用。通过本章的学习,应该掌握如何建立QtEmbedded的开发环境及编写QtEmbedded或Qtopia程序的开发流程。
第12章 嵌入式系统综合工程实例。本章主要介绍文件系统的构建和烧写、数码相框、基于Linux的Mplayer解码播放器和基于Linux的GPS导航系统的开发实例。在开发这些工程实例的过程中,熟悉Linux系统在嵌入式方面的应用,熟悉其他章节的知识在开发中的具体应用。
本书主要由戴璐平、何渊仁、吴志男完成编写,本书是在第1版的基础上,结合众多读者的返馈意见进行改版,对图书内容和实例程序代码等进行了优化,对书中实例全部配有视频讲解,使读者能够轻松掌握书中知识,并尽快应用于实际工作中,本书实例代码和视频等素材,请读者到华信教育资源网下载(www.hxedu.com.cn)。但由于作者教学任务重、时间紧,书中仍会有不妥之处,请读者批评指正,读者可通过电子邮件xucq@phei.com.cn与我们交流。
|
|