內容簡介
本書附帶1張光碟,內容為本書重點內容的教學視頻和本書涉及的原始碼。另外,還贈送了大量的linux學習視頻和其他學習資料。
本書分為4篇。第1篇簡單介紹了linux核心和嵌入式linux系統開發環境搭建;第2篇介紹了一個最基本的嵌入式系統的組成部分、bootloader移植、核心移植和檔案系統移植;第3篇介紹了lcd、觸控螢幕、usb、網卡、音頻、sd卡、nandflash等流行的設備驅動移植過程;第4篇從嵌入式產品角度出發,介紹了gui、qtopia、嵌入式資料庫berkeley db和sqlite、嵌入式web伺服器boa和thttpd、jvm虛擬機的移植及目前流行的voip技術和相關協定。
本書適合嵌入式linux系統入門人員、linux系統開發和移植、系統分析師等相關人員閱讀,也適合作為大、中專院校相關專業的實驗教材使用。
目錄
第1篇 系統移植基礎篇
第1章 linux核心介紹 2
1.1 系統調用接口 2
1.1.1 linux系統調用 2
1.1.2 用戶編程接口 2
1.1.3 系統調用與服務例程的對應關係 3
1.1.4 系統調用過程 3
1.1.5 系統調用傳遞的參數 4
1.2 進程管理 4
1.2.1 進程 4
1.2.2 進程描述符 5
1.2.3 進程狀態 6
1.2.4 進程調度 6
1.2.5 進程地址空間 8
1.3 記憶體管理 10
1.3.1 記憶體管理技術 10
1.3.2 記憶體區管理 12
1.3.3 核心中獲取記憶體的幾種方式 13
1.4 虛擬檔案系統 14
1.4.1 虛擬檔案系統作用 14
.1.4.2 檔案系統的註冊 15
1.4.3 檔案系統的安裝和卸載 15
1.5 設備驅動程式 17
1.5.1 字元設備驅動程式 17
1.5.2 塊設備驅動程式 18
1.5.3 網路設備驅動程式 21
1.5.4 記憶體與i/o操作 22
1.6 小結 23
第2章 嵌入式linux開發環境搭建 24
2.1 虛擬機及linux安裝 24
2.1.1 虛擬機的安裝 24
2.1.2 單獨分區安裝系統 30
2.1.3 虛擬機和主機通信設定 31
2.1.4 vmware tools工具安裝 33
2.1.5 虛擬機與主機已分享檔案 35
2.1.6 虛擬機與主機檔案傳輸 36
2.2 交叉編譯工具 38
2.2.1 交叉編譯工具安裝 38
2.2.2 交叉編譯器測試 43
2.3 超級終端和minicom 44
2.3.1 超級終端軟體的安裝 44
2.3.2 minicom使用 45
2.3.3 securecrt使用 48
2.4 核心、檔案系統載入工具 48
2.4.1 燒寫bootloader 48
2.4.2 核心和檔案系統下載 52
2.4.3 應用程式和檔案傳輸 54
2.5 在開發中使用網路檔案系統(nfs) 56
2.5.1 虛擬機設定 56
2.5.2 虛擬機的ip地址設定 56
2.5.3 驗證網路連線 59
2.5.4 設定已分享資料夾 59
2.5.5 啟動nfs服務 60
2.5.6 修改共享配置後 61
2.5.7 掛載nfs 61
2.5.8 雙網卡掛載nfs 61
2.6 小結 62
第2篇 系統移植技術篇
第3章 bootloader移植 64
3.1 bootloader介紹 64
3.1.1 bootloader與嵌入式linux系統的關係 64
3.1.2 bootloader基本概念 64
3.1.3 bootloader啟動過程 66
3.2 bootloader之u-boot 67
3.2.1 u-boot優點 67
3.2.2 u-boot的主要功能 68
3.2.3 u-boot目錄結構 68
3.3 u-boot移植過程 69
3.3.1 環境配置 69
3.3.2 修改cpu/arm920t/start.s 70
3.3.4 具體平台相關修改 79
3.3.5 其他部分修改 81
3.3.6 u-boot的編譯 84
3.4 bootloader之vivi 85
3.4.1 vivi簡介 85
3.4.2 vivi配置與編譯 85
3.4.3 代碼分析 88
3.5 vivi的運行 88
3.5.1 bootloader啟動的階段一 89
3.5.2 bootloader啟動的階段二 95
3.6 小結 95
第4章 linux核心裁剪與移植 96
4.1 linux核心結構 96
4.1.1 核心的主要組成部分 96
4.1.2 核心源碼目錄介紹 97
4.2 核心配置選項 99
4.2.1 一般選項 99
4.2.2 核心模組載入方式支持選項 100
4.2.3 系統調用、類型、特性、啟動相關選項 101
4.2.4 網路協定支持相關選項 102
4.2.5 設備驅動支持相關選項 102
4.2.6 檔案系統類型支持相關選項 103
4.2.7 安全相關選項 104
4.2.8 其他選項 104
4.3 核心裁剪及編譯 105
4.3.1 安裝核心原始碼 105
4.3.2 檢查編譯環境設定 105
4.3.3 配置核心 106
4.3.4 編譯核心 115
4.4 核心映像檔案移植到arm板 116
4.4.1 移植準備 116
4.4.2 燒寫系統 118
4.5 核心升級 121
4.5.1 準備升級核心檔案 121
4.5.2 移植過程 122
4.6 小結 125
第5章 嵌入式檔案系統製作 126
5.1 檔案系統選擇 126
5.1.1 flash硬體方案比較 126
5.1.2 嵌入式檔案系統的分層結構 127
5.2 基於flash的檔案系統 127
5.2.1 jffs檔案系統(journalling flash filesystem) 128
5.2.2 yaffs檔案系統(yet another flash file system) 130
5.2.3 cramfs檔案系統(compressed rom file system) 133
5.2.4 romfs檔案系統(rom file system) 134
5.3 基於ram的檔案系統 135
5.4 檔案系統的製作 135
5.4.1 製作ramdisk檔案系統 136
5.4.2 製作yaffs2檔案系統 144
5.4.3 製作jffs2檔案系統 150
5.4.4 其他檔案系統製作 152
5.5 小結 153
第3篇 系統移植與驅動篇
第6章 lcd驅動移植 156
6.1 認識lcd相關硬體原理 156
6.1.1 lcd概述 156
6.1.2 lcd控制器 157
6.1.3 lcd控制器方塊圖 157
6.1.4 lcd控制器操作 158
6.1.5 lcd控制暫存器 163
6.2 lcd參數設定 166
6.3 核心lcd驅動機制 167
6.3.1 framebuffer概述 167
6.3.2 framebuffer 設備驅動的結構 167
6.4 linux 2.6.25的lcd驅動源碼分析 171
6.4.1 lcd驅動開發的主要工作 171
6.4.2 s3c2410fb_init()函式分析 172
6.4.3 s3c2410fb_probe()函式分析 173
6.4.4 s3c2410fb_remove()函式分析 178
6.5 移植核心中的lcd驅動 179
6.5.1 lcd硬體電路圖 179
6.5.2 修改lcd源碼 179
6.5.3 配置核心 184
6.6 小結 187
第7章 觸控螢幕驅動移植 188
7.1 觸控螢幕概述 188
7.1.1 觸控螢幕工作原理 188
7.1.2 觸控螢幕的主要類型 188
7.2 s3c2440 adc接口使用 191
7.2.1 s3c2440觸控螢幕接口概述 191
7.2.2 s3c2440觸控螢幕接口操作 192
7.3 2.6核心觸控螢幕驅動源碼分析(s3c2410_ts.c源碼分析) 196
7.4 linux核心輸入子系統介紹 201
7.4.1 input子系統概述 202
7.4.2 輸入設備結構體 202
7.4.3 輸入鏈路的創建過程 205
7.4.4 使用input子系統 206
7.4.5 編寫輸入設備驅動需要完成的工作 208
7.5 觸控螢幕驅動移植和核心編譯 209
7.5.1 修改初始化源碼 209
7.5.2 修改硬體驅動源碼s3c2440_ts.c 211
7.5.3 修改kconfig和makefile 213
7.5.4 配置編譯核心 214
7.5.5 觸控螢幕測試程式設計 215
7.6 小結 216
第8章 usb設備驅動移植 217
8.1 usb協定 217
8.1.1 usb協定的系統主要組成部分 217
8.1.2 匯流排物理拓撲結構 219
8.1.3 usb設備、配置、接口、端點 219
8.1.4 usb設備狀態 222
8.1.5 usb枚舉過程 223
8.1.6 usb請求塊(urb) 226
8.2 usb主機驅動 230
8.2.1 usb主機驅動結構和功能 230
8.2.2 主機控制器驅動(usb_hcd) 231
8.2.3 ohci主機控制器驅動 233
8.2.4 s3c24xx ohci主機控制器驅動實例 234
8.3 usb設備驅動 237
8.3.1 usb骨架程式分析 237
8.3.2 usb驅動移植的時鐘設定 241
8.4 usb滑鼠鍵盤驅動 242
8.4.1 usb滑鼠驅動代碼分析 242
8.4.2 usb鍵盤驅動代碼分析 245
8.4.3 核心中添加usb滑鼠鍵盤驅動 248
8.5 u盤驅動 249
8.5.1 核心配置 249
8.5.2 移植和測試 250
8.6 小結 252
第9章 網卡驅動程式移植 253
9.1 乙太網概述 253
9.1.1 乙太網連線 253
9.1.2 乙太網技術概述 254
9.1.3 乙太網的幀結構 256
9.2 網路設備驅動程式體系結構 258
9.2.1 嵌入式linux網路驅動程式介紹 258
9.2.2 linux網路設備驅動的體系結構 259
9.2.3 網路設備驅動程式編寫方法 259
9.2.4 網路設備驅動程式套用實例 261
9.3 net_device 數據結構 262
9.3.1 全局信息 262
9.3.2 硬體信息 263
9.3.3 接口信息 263
9.3.4 設備方法 266
9.3.5 公用成員 268
9.4 dm9000網卡概述 268
9.4.1 dm9000網卡總體介紹 269
9.4.2 dm9000網卡的特點 269
9.4.3 內部暫存器 270
9.4.4 功能描述 274
9.5 dm9000網卡驅動程式移植 275
9.5.1 dm9000網卡連線 275
9.5.2 驅動分析——硬體的數據結構 276
9.5.3 驅動分析——數據讀寫函式 277
9.5.4 驅動分析——重置網卡 277
9.5.5 驅動分析——初始化網卡 277
9.5.6 驅動分析——打開和關閉網卡 282
9.5.7 驅動分析——數據包的傳送與接收 283
9.5.8 dm9000網卡驅動程式移植 285
9.6 小結 288
第10章 音頻設備驅動程式移植 289
10.1 音頻設備接口 289
10.1.1 pcm(脈衝編碼調製)接口 289
10.1.2 iis(inter-ic sound)接口 289
10.1.3 ac97(audio codec 1997)接口 289
10.1.4 linux音頻設備驅動框架 290
10.2 linux音頻設備驅動——oss驅動框架 291
10.2.1 oss驅動架構硬體 291
10.2.2 oss驅動架構代碼 291
10.2.3 oss初始化函式oss_init() 293
10.2.4 oss釋放函式oss_cleanup() 294
10.2.5 打開設備檔案函式sound_open() 295
10.2.6 錄音函式sound_read() 296
10.2.7 播放函式sound_write() 297
10.2.8 控制函式sound_ioctl() 297
10.3 linux音頻設備驅動——alsa驅動框架 298
10.3.1 card和組件 299
10.3.2 pcm設備 303
10.3.3 控制接口 306
10.3.4 ac97 api音頻接口 308
10.4 音頻設備應用程式編寫 312
10.4.1 dsp接口編程 312
10.4.2 mixer接口編程 315
10.4.3 alsa應用程式編程 316
10.5 音頻設備驅動移植 318
10.5.1 添加uda1341結構體 318
10.5.2 修改錄音通道 319
10.5.3 核心中添加uda1341驅動支持 320
10.5.4 移植新核心並進行測試 321
10.6 音頻播放程式madplay的移植 322
10.6.1 準備移植需要的源檔案 322
10.6.2 交叉編譯 322
10.6.3 移植和測試 323
10.6.4 編譯中可能遇到的問題 324
10.7 小結 324
第11章 sd卡驅動移植 325
11.1 sd卡簡介 325
11.1.1 sd卡系統概念 325
11.1.2 sd卡暫存器 325
11.1.3 sd功能描述 326
11.2 sd卡驅動程式分析 329
11.2.1 host驅動部分 330
11.2.2 core驅動部分 333
11.2.3 card驅動部分 337
11.3 sd卡移植步驟 339
11.3.1 添加延時和中斷 339
11.3.2 配置核心 340
11.3.3 燒寫新核心 341
11.4 小結 342
第12章 nandflash驅動移植 343
12.1 nandflash介紹 343
12.1.1 nandflash命令介紹 343
12.1.2 nandflash控制器 344
12.2 nandflash驅動介紹 345
12.2.1 nand晶片結構 345
12.2.2 nandflash驅動分析 346
12.3 nandflash驅動移植 351
12.3.1 核心的修改 351
12.3.2 核心的配置和編譯 353
12.4 小結 353
第4篇 系統移植高級篇
第13章 minigui與移植 356
13.1 minigui在上位機中的安裝 356
13.1.1 安裝需要的安裝檔案 356
13.1.2 minigui的運行模式 357
13.1.3 編譯並安裝minigui 357
13.1.4 編譯安裝minigui需要的圖片支持庫 360
13.1.5 編譯minigui應用程式例子 360
13.2 eclipse開發minigui程式 361
13.2.1 linux下安裝eclipse介紹 361
13.2.2 使用eclipse編譯minigui程式 363
13.2.3 設定外部工具 367
13.2.4 運行程式 368
13.3 vc++6.0開發minigui程式 368
13.3.1 安裝windows開發庫 368
13.3.2 建立新工程 369
13.3.3 添加檔案和設定工程 370
13.3.4 編譯和運行程式 371
13.3.5 minigui程式編程風格舉例 372
13.4 minigui的交叉編譯和移植 374
13.4.1 交叉編譯minigui 375
13.4.2 移植minigui程式 376
13.5 小結 378
第14章 qt開發與qtopia移植 379
14.1 qt安裝與編程 379
14.1.1 下載安裝qt 379
14.1.2 qt編程 380
14.1.3 使用qmake生成makefile 382
14.2 qtopia core在x86平台上的安裝和套用 383
14.2.1 qtopia core安裝準備 383
14.2.2 編譯qtopia core 384
14.2.3 qtopia在x86平台上的套用開發 385
14.3 qtopia core在嵌入式linux上的移植 388
14.3.1 qtopia core移植準備 389
14.3.2 交叉編譯qtopia core 389
14.3.3 編譯核心 392
14.3.4 應用程式開發 392
14.3.5 應用程式移植 395
14.4 小結 395
第15章 嵌入式資料庫berkeley db移植 396
15.1 資料庫的基本概念 396
15.1.1 利用文檔和原始碼 396
15.1.2 創建環境句柄 396
15.1.3 創建資料庫句柄 397
15.1.4 打開資料庫 398
15.1.5 dbt結構 398
15.1.6 存取數據 399
15.1.7 關閉資料庫 400
15.2 berkeley db資料庫安裝 400
15.2.1 安裝成c庫 400
15.2.2 安裝成c++庫 401
15.2.3 交叉編譯安裝berkeley db 401
15.3 使用berkeley db資料庫 403
15.3.1 代碼分析 403
15.3.2 編譯運行程式 406
15.4 移植berkeley db資料庫 407
15.4.1 資料庫設計 407
15.4.2 編寫應用程式 407
15.4.3 調試和交叉編譯應用程式 409
15.4.4 資料庫的移植和測試 410
15.5 小結 410
第16章 嵌入式資料庫sqlite移植 411
16.1 sqlite支持的sql語句 411
16.1.1 數據定義語句 411
16.1.2 數據操作語句 412
16.2 sqlite資料庫編譯、安裝和使用 412
16.2.1 安裝sqlite 413
16.2.2 利用sql語句操作sqlite資料庫 413
16.2.3 利用c接口訪問sqlite資料庫 414
16.3 移植sqlite 417
16.3.1 交叉編譯sqlite 417
16.3.2 交叉編譯應用程式 418
16.4 移植sqlite資料庫 418
16.4.1 檔案移植 419
16.4.2 運行應用程式 419
16.4.3 測試sqlite3 419
16.5 小結 421
第17章 嵌入式web伺服器boa移植 422
17.1 boa介紹 422
17.1.1 boa的功能 422
17.1.2 boa流程分析 423
17.1.3 boa配置信息 426
17.2 boa編譯和html頁面測試 428
17.2.1 編譯boa原始碼 428
17.2.2 設定boa配置信息 429
17.2.3 測試boa 429
17.3 cgi腳本測試 431
17.3.1 編寫測試代碼 431
17.3.2 編譯測試程式 431
17.3.3 測試cgi腳本 431
17.4 boa交叉編譯與移植 431
17.4.1 交叉編譯boa 432
17.4.2 準備測試程式 432
17.4.3 配置boa 432
17.4.4 測試 433
17.5 boa與sqlite結合 433
17.5.1 通過cgi程式訪問sqlite 434
17.5.2 編譯和測試 436
17.6 小結 437
第18章 嵌入式web伺服器thttpd移植 438
18.1 thttpd介紹 438
18.1.1 web伺服器比較 438
18.1.2 thttpd的特點 438
18.1.3 thttpd核心代碼分析 439
18.2 thttpd編譯和html頁面測試 442
18.2.1 配置檔案介紹 442
18.2.2 thttpd編譯 443
18.2.3 運行和測試thttpd 443
18.3 cgi腳本測試 446
18.3.1 編寫測試代碼 446
18.3.2 編譯測試程式 447
18.3.3 測試cgi腳本 447
18.4 thttpd交叉編譯與移植 447
18.4.1 交叉編譯thttpd 447
18.4.2 交叉編譯cgi程式 448
18.4.3 移植thttpd 448
18.4.4 測試 449
18.5 thttpd與嵌入式資料庫結合 450
18.5.1 通過cgi程式訪問sqlite 450
18.5.2 編譯和測試 452
18.6 小結 453
第19章 jvm及其移植 454
19.1 jvm介紹 454
19.1.1 jvm原理 454
19.1.2 jvm支持的數據類型 455
19.1.3 jvm指令系統 456
19.1.4 jvm暫存器 456
19.1.5 jvm棧結構 456
19.1.6 jvm碎片回收堆 459
19.1.7 jvm異常拋出和異常捕獲 459
19.2 類裝載 460
19.2.1 裝載類的結構體 460
19.2.2 裝載類的操作 461
19.3 垃圾回收 463
19.3.1 mark-and-sweep回收算法 464
19.3.2 分代回收算法 465
19.3.3 增量收集 466
19.4 解析器 466
19.4.1 函式interpret() 466
19.4.2 函式fastinterpret() 467
19.4.3 函式slowinterpret () 469
19.5 java編程淺析 470
19.5.1 java程式命令 470
19.5.2 java構造函式 470
19.5.3 java主函式 470
19.5.4 java程式編譯與運行 471
19.6 kvm執行過程 471
19.6.1 kvm啟動過程 471
19.6.2 kvm用到的計數器清零 474
19.6.3 kvm初始化記憶體管理 475
19.6.4 kvm中的哈希表初始化 476
19.6.5 kvm中的事件初始化 477
19.6.6 kvm中的資源釋放 477
19.7 pc機安裝jvm 477
19.7.1 jvm在windows上的安裝 478
19.7.2 jvm在linux上的安裝 479
19.8 kvm移植和測試 480
19.8.1 sdk安裝和環境變數設定 480
19.8.2 修改makefile和代碼 480
19.8.3 kvm編譯 481
19.8.4 測試 481
19.8.5 移植 483
19.9 小結 485
第20章 voip技術與linphone編譯 486
20.1 voip介紹 486
20.1.1 voip基本原理 486
20.1.2 voip的基本傳輸過程 487
20.1.3 voip的優勢 487
20.1.4 voip的實現方式 487
20.1.5 voip的關鍵技術 488
20.2 osip協定概述 488
20.3 osip狀態機 489
20.3.1 ict(invite client (outgoing) transaction)狀態機 489
20.3.2 nict(non-invite client (outgoing) transaction)狀態機 498
20.3.3 ist(invite server (incoming) transaction)狀態機 499
20.3.4 nist(non-invite server (incoming) transaction)狀態機 500
20.4 osip解析器 500
20.4.1 初始化解析類型函式osip_body_init() 500
20.4.2 釋放函式osip_body_free() 501
20.4.3 字元串到body類型轉換函式osip_body_parse() 501
20.4.4 body類型到字元串類型轉換函式osip_body_to_str() 502
20.4.5 克隆函式osip_body_clone() 504
20.4.6 osip解析器分類 505
20.5 osip事務層 506
20.6 sip建立會話的過程 508
20.7 rtp協定 510
20.7.1 rtp基本概念 510
20.7.2 傳送rtp 511
20.7.3 接收rtp 513
20.8 linphone編譯與測試 515
20.8.1 編譯linphone需要的軟體包 516
20.8.2 x86平台上編譯和安裝 516
20.8.3 linphone測試 519
20.8.4 進一步的測試和開發 523
20.9 linphone交叉編譯 523
20.9.1 linphone的交叉編譯 523
20.9.2 linphone的測試 526
20.10 小結 527
前言
隨著各種晶片技術的發展,各種嵌入式產品也如雨後春筍一般地出現了。目前,嵌入式產品套用領域涉及移動通信、汽車、醫療、家電等很多領域。而且,如今的嵌入式硬體的速度和容量越來越接近於PC,因此在這些嵌入式產品上運行作業系統就成為了可能。一直以來,很多企業花費了巨大成本研發了大量運行在PC上的軟體產品。如果將這些優秀的軟體套用在嵌入式系統中,將會成為快速開發嵌入式系統,降低嵌入式產品開發成本,提高軟體穩定性和安全性的重要途徑。
目前,國內圖書市場上還鮮見專門介紹Linux系統移植的圖書。為了給廣大Linux開發人員和愛好者學習Linux系統移植提供一些有價值的參考資料,筆者花費一年多的時間編寫了本書。
本書注重實踐,包含了豐富的移植實例,這些實例各具特點,從基礎的系統組成到設備驅動,再到高級套用,適合各個層面的讀者學習和研究。本書中的實例是筆者根據實際項目中嵌入式產品的功能需求,專門選擇的具有代表性的開源軟體進行移植,包含了常見的嵌入式產品的最小系統組成部分移植,同時選擇了套用比較多的資料庫、Web伺服器、GUI等進行移植。筆者通過親自體會每次編譯和移植過程,詳細說明移植的細節,對移植過程中遇到的問題也給出了解決方法。本書最後還介紹了VoIP技術,並結合源碼分析了VoIP的實現,同時還介紹了VoIP的詳細編譯過程。本書是筆者從事嵌入式開發的經驗總結,希望能給目前從事嵌入式研發和學習的讀者提供最有效的幫助,能使讀者的嵌入式系統最快地運行起來,使讀者在最短的時間內成功移植開源軟體。
本書使用的原始碼均為開原始碼,讀者可以從對應的官方網站獲得。本書對於源碼的重要部分進行了詳細的分析,建議讀者在閱讀時對應源碼進行閱讀效果會更好。
本書特色
1.多媒體語音視頻講解,高效、直觀
筆者對本書重點內容專門錄製了多媒體教學視頻,這將會大大提高讀者的學習效率。
2.編譯過程詳細
本書的編譯過程都附有詳細的編譯命令,對於複雜的命令均給出了說明,方便讀者實際操作。讀者可以邊閱讀本書,邊動手進行實驗。
3.內容全面、選材具有特點
本書介紹了最小系統的引導程式移植、核心移植、檔案系統移植、各種驅動移植等內容。另外,本書還專門介紹了嵌入式資料庫、嵌入式GUI、嵌入式Web伺服器、嵌入式JVM、VoIP技術等內容。對於資料庫、GUI、Web伺服器分別選擇了兩種進行介紹,讀者可以從性能上進行對比,然後套用在自己的項目中。
4.內容由淺入深、循序漸進,可操作性強
本書按照由淺入深、循序漸進的梯度安排內容,適合各個層次的讀者閱讀。書中每章內容都遵循原理分析-代碼分析-編譯-測試-移植的學習順序,具有較強的可操作性。
5.貫穿了大量的編譯技巧,可迅速提升移植水平
本書在講解編譯過程時貫穿了大量的編譯技巧,並針對移植過程中的編譯錯誤介紹了如何發現錯誤的源頭,同時給出了解決方法。這則有利於讀者解決類似的編譯問題,提升系統移植的水平。
6.詳細介紹了流行工具的使用
本書介紹了在開發中使用Eclipse和VC++ 6.0,這兩種工具分別為Java程式設計師和C++程式設計師最熟悉的工具。書中介紹了在Linux下安裝Eclipse、使用Eclipse開發C++項目及使用VC++ 6.0開發的基本方法等。
本書內容及知識體系
第1篇 系統移植基礎篇(第1、2章)
本篇介紹了系統移植的基礎。首先對Linux核心進行了簡單介紹,然後介紹了系統移植環境的搭建。通過對本篇內容的學習,讀者可以對Linux系統有初步認識,能掌握嵌入式Linux開發工具的使用,能正確搭建開發平台,能夠製作編譯好的嵌入式系統。
.第2篇 系統移植技術篇(第3~5章)
本篇介紹了一個最基本的嵌入式系統的組成部分、Bootloader、核心和檔案系統的移植。學習完本篇內容後,讀者能夠動手獨立編譯和移植一個基本的嵌入式系統。
第3篇 系統移植驅動篇(第6~12章)
本篇介紹了各種驅動的移植,包括LCD、觸控螢幕、USB、網卡、音頻、SD卡、NandFlash等流行的設備驅動的移植過程。通過對本篇內容的學習,讀者對嵌入式Linux驅動移植將會有一定的認識,可以基本掌握驅動的移植步驟,能完成簡單的驅動移植。
第4篇 系統移植高級篇(第13~20章)
本篇從嵌入式產品的角度出發,介紹了系統移植中各種類型的高層軟體移植,包括GUI、資料庫、Web伺服器、虛擬機的移植,最後還介紹了目前流行的VoIP技術,並結合源碼介紹了VoIP相關協定和編譯方法。通過學習本篇內容,讀者可以掌握很多移植技巧,能夠將這些實例套用到自己的項目中。
本書讀者對象
嵌入式移植人員;
嵌入式專業的學生;
嵌入式實驗指導老師;
嵌入式培訓學員和老師;
系統分析師;
項目研發人員。
本書作者及編委會成員
本書由劉剛和趙劍川主筆編寫,其他參與編寫的人員有畢夢飛、蔡成立、陳濤、陳曉莉、陳燕、崔棟棟、馮國良、高岱明、黃成、黃會、紀奎秀、江瑩、靳華、李凌、李勝君、李雅娟、劉大林、劉惠萍、劉水珍、馬月桂、閔智和、秦蘭、汪文君、文龍。在此一併表示感謝。
本書編委會成員有歐振旭、陳杰、陳冠軍、頊宇峰、張帆、陳剛、程彩紅、毛紅娟、聶慶亮、王志娟、武文娟、顏盟盟、姚志娟、尹繼平、張昆、張薛。
本書技術支持
您在閱讀本書的過程中若碰到什麼問題,請通過以下方式聯繫我們,我們會及時地答覆您。