嵌入式系统开发实用教程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ztguang/article/details/26842389
主  编:     张同光
ISBN号:     978-7-302-32917-6   9787302329176
出版日期:   2013-09-01
出版社:     清华大学出版社

页码:430      定价:¥45元

http://www.tup.com.cn/book/Showbook.asp?CPBH=053746-01&DJ=45

配套资源下载



图书简介:
    本书介绍了嵌入式系统软件开发的相关技术,并以嵌入式软件的基本开发技术为主线,以ARM+Linux为基本架构,系统讲述了嵌入式软件开发的基本知识、基本流程和基本方法。采用理论和实例相结合的编写方法,内容实用、结构清晰、图文并茂、通俗易懂,力求使读者轻松学习嵌入式软件开发技术。本书共8章,主要内容包括: 嵌入式系统开发技术基础、嵌入式系统开发环境、嵌入式软件开发基础、引导加载程序BootLoader的移植、Linux在ARM平台的移植、根文件系统、嵌入式Linux设备驱动程序开发、嵌入式Linux的图形用户接口。
    本书的主要特点是通过模拟器(QEMU、SkyEye)学习嵌入式软件系统,并详细介绍基于SkyEye的移植三部曲(U-Boot、内核、文件系统)。
    本书适合于高等院校电子信息类专业教学使用,也可用于技能型紧缺人才的培养。本书适合刚接触嵌入式软件开发的人员,能够帮助读者快速入门。



1  嵌入式系统开发技术基础... 2

1.1  嵌入式系统概述... 2

1.1.1  嵌入式系统的定义、分类与特点... 3

1.1.2  嵌入式系统的组成... 5

1.1.3  嵌入式系统的应用领域及发展趋势... 5

1.2  嵌入式处理器... 9

1.2.1   嵌入式处理器的分类与特点... 9

1.2.2   ARM微处理器简介... 11

1.2.3  ARM微处理器基础... 12

1.2.4  ARM微处理器的指令系统... 25

1.2.5  ARM内存管理单元... 42

1.3  嵌入式操作系统... 43

1.3.1  嵌入式操作系统的种类、特点与发展... 44

1.3.2  嵌入式Linux概述... 48

1.4  嵌入式系统的结构、开发流程、开发要点... 50

1.4.1  嵌入式系统的结构... 50

1.4.2  开发模式及开发流程... 51

1.4.3  嵌入式Linux系统开发要点... 53

... 54

  1. 54



2  嵌入式系统开发环境... 2

2.1  嵌入式系统开发环境简介... 2

2.2  OK2440-II开发平台介绍... 3

2.2.1  OK2440-II开发板构成... 3

2.2.2  OK2440-II开发板硬件资源... 4

2.2.3  实例—OK2440-II开发板的基本使用... 6

2.2.4  实例—引导Windows CE. 15

2.2.5  实例—引导Linux. 17

2.3  交叉编译的基本知识... 20

2.3.1  ARM编译环境... 20

2.3.2  ARM交叉编译工具链... 21

2.3.3  嵌入式软件开发流程... 22

2.4  实例—创建交叉编译环境... 24

2.5  实例—QEMUGDB的安装及简单使用... 28

2.5.1  QEMU的安装... 28

2.5.2  GDB的安装... 28

2.5.3  运行ARM汇编程序... 29

2.5.4  调试ARM汇编程序... 30

2.6  SkyEye的安装及简单使用... 32

2.6.1  SkyEye简介... 32

2.6.2  实例—安装SkyEye-1.2.6. 34

2.6.2  实例—使用SkyEye-1.2.6. 38

2.7  实例—TFTP服务器的搭建... 41

2.8  实例—NFS务器的搭建... 42

... 45

    2. 45



3  嵌入式软件开发基础... 2

3.1  Linux C语言程序设计基础知识... 2

3.1.1  程序安装目录、头文件、库文件... 2

3.1.2  gcc编译器... 4

3.1.3  实例—使用gcc编译器... 8

3.1.4  GNU make工具Makefile文件... 12

3.1.5  实例—使用makeMakefile文件... 15

3.1.6  glibc. 29

3.1.7  gdb. 30

3.1.8  实例—使用gdb调试器... 31

3.1.9  Binutils工具包... 36

3.2  汇编分类... 39

3.2.1  AT&TIntel汇编语言的比较... 40

3.2.2  ARM ASMGNUARM ASM.. 43

3.3  GNU ARM汇编语... 43

3.3.1  简单的GNU ARM汇编源程序举例... 44

3.3.2  GNU ARM汇编程序中的语句格式... 47

3.3.3  GNU ARM汇编源程序中的标号... 47

3.3.4  GNU ARM汇编程序中的分段... 48

3.3.5  GNU ARM汇编程序中定义入口点... 49

3.3.6  GNU ARM汇编程序中的宏定义... 49

3.3.7  GNU ARM汇编程序中的常数... 49

3.3.8  GNU ARM汇编程序中的常用伪操作... 50

3.3.9  GNU ARM汇编程序中的特殊字符和语法... 51

3.3.10  ATPCS. 51

3.4  ARM汇编&C语言混合编程... 53

3.4.1  C内联ARM汇编... 54

3.4.2  模块化程序设计... 59

3.4.3  ARM汇编&C语言混合编程... 61

3.5  x86汇编&C语言混合编程... 64

3.6  ELF文件的格式... 66

3.6.1  目标文件的格式... 67

3.6.2  可执行文件的格式... 72

3.7  GNU-ld链接脚本... 76

... 79

    3. 79



4  引导加载程序BootLoader的移植... 2

4.1  BootLoader 2

4.1.1  BootLoader概述... 3

4.1.2  BootLoader的工作流程... 4

4.2  常见BootLoader介绍... 8

4.3  U-Boot-1.1.4源代码分析... 10

4.3.1  U-Boot的代码结构... 11

4.3.2  U-Boot的启动流程... 11

4.3.3  cpu/arm920t/start.S. 11

4.3.4  lowlevel_init.S. 18

4.3.5  lib_arm/board.c. 19

4.3.6  init_sequence[] 23

4.3.7  common/main.c. 29

4.4  移植U-Boot-1.1.4S3C2440A平台... 32

4.4.1  U-Boot的配置与编译... 32

4.4.2  实例—移植U-BootS3C2440A平台... 41

4.4.3  实例—烧写U-BootFlash. 42

4.5  实例—使用U-Boot 43

4.5.1  U-Boot的常用命令... 44

4.5.2  U-Boot的环境变量... 49

4.5.3  U-Boot与内核的关系... 49

4.5.4  添加U-Boot命令... 54

4.6  实例—基于skyeye的移植三部曲之一:Bootloader 56

... 68

  4. 68



5  LinuxARM平台的移植... 2

5.1  Linux内核... 2

5.1.1  Linux内核简介... 2

5.1.2  Linux内核源代码结构... 4

5.1.3  Linux内核源代码的配置... 5

5.1.4  MakefileKconfig.config的关... 6

5.2  Linux内核的移植... 7

5.3  zImage内核的生成过程... 11

5.4  实例—基于skyeye的移植三部曲之二:Kernel 13

5.5  Linux内核启动流程分析... 24

... 25

    5. 25

 


6  根文件系统... 2

6.1  嵌入式Linux的文件系统... 2

6.1.1  基于FLASH的文件系统... 3

6.1.2  基于RAM的文件系统... 7

6.1.3  网络文件系统NFS. 8

6.1.4  Linux根文件系统... 10

6.1.5  Linux根文件系统的目录结构... 11

6.2  Linux系统的引导过程... 11

6.3  建立根文件系统... 18

6.3.1  实例—用BusyBox建立文件系统... 18

6.3.2  实例—建立JFFS2根文件系统... 24

6.3.3  实例—建立Ramdisk文件系统... 27

6.3.4  实例—建立Cramfs文件系统... 32

6.3.5  实例—建立romfs文件系统... 32

6.3.6  实例—建立YAFFS2根文件系统... 34

6.4  实例—基于skyeye的移植三部曲之三:RootFS. 37

... 41

    6. 41



7  嵌入式Linux设备驱动程序开发... 2

7.1  Linux设备驱动程序的相关知识... 2

7.1.1  设备驱动程序的概念... 3

7.1.2   设备类型... 3

7.1.3  Linux设备驱动程序概述... 4

7.1.4 设备驱动程序中关键的数据结构... 5

7.2  Linux设备驱动程序设计... 7

7.2.1 实例—动态加载模块... 7

7.2.2 实例—简单字符驱动程序... 11

... 15

    7. 15



8  嵌入式Linux的图形用户接口... 2

8.1   嵌入式Linux中的GUI简介... 2

8.2   Qt/Embedded. 2

8.3   Microwindows 4

8.4   MiniGUI 5

8.5  OpenGUI 8

... 8

    8. 9

猜你喜欢

转载自blog.csdn.net/ztguang/article/details/26842389