嵌入式系統開發實用教程

主  編:     張同光
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章