目錄
第1章嵌入式繫統概述\t(1)
1.1嵌入式繫統的定義、特點與組成\t(1)
1.1.1嵌入式繫統的定義\t(1)
1.1.2嵌入式繫統的特點\t(1)
1.1.3嵌入式繫統的組成\t(2)
1.2嵌入式操作繫統\t(3)
1.3Linux操作繫統\t(3)
1.3.1Linux簡介\t(3)
1.3.2Linux的發行版本\t(4)
1.4嵌入式技術的應用\t(4)
1.5開發實踐:認知嵌入式繫統\t(5)
1.5.1嵌入式繫統硬件認知\t(5)
1.5.2嵌入式繫統運行測試\t(8)
1.6小結\t(9)
1.7思考與拓展\t(9)
第2章嵌入式Linux開發環境\t(11)
2.1Linux的安裝與基本命令\t(11)
2.1.1Linux的安裝與配置\t(11)
2.1.2Linux的軟件包管理機制\t(15)
2.1.3Linux的Shell與基本命令\t(17)
2.1.4Linux的編輯器\t(20)
2.1.5Shell腳本\t(22)
2.1.6開發實踐:Linux的安裝與vim編輯器的使用\t(28)
2.1.7小結\t(30)
2.1.8思考與拓展\t(30)
2.2常用的嵌入式開發工具\t(30)
2.2.1嵌入式Linux的開發模式\t(30)
2.2.2遠程控制工具\t(31)
2.2.3串口通信工具\t(32)
2.2.4文件傳輸工具\t(33)
2.2.5源代碼管理工具\t(34)
2.2.6開發實踐:嵌入式開發工具的使用\t(36)
2.2.7小結\t(38)
2.2.8思考與拓展\t(38)
2.3Linux的編譯環境\t(38)
2.3.1Linux程序的開發環境\t(38)
2.3.2Linux編譯器的安裝與使用\t(39)
2.3.3Linux的動態庫與靜態庫\t(41)
2.3.4Linux調試器的安裝與使用\t(42)
2.3.5Makefile文件的編寫\t(44)
2.3.6開發實踐:Linux的編譯環境\t(46)
2.3.7小結\t(49)
2.3.8思考與拓展\t(49)
第3章嵌入式Linux繫統的移植\t(51)
3.1BootLoader的移植與應用\t(51)
3.1.1BootLoader簡介\t(51)
3.1.2U-Boot的移植\t(53)
3.1.3U-Boot的使用\t(55)
3.1.4開發實踐:U-Boot的編譯\t(58)
3.1.5小結\t(60)
3.1.6思考與拓展\t(60)
3.2Linux的內核與配置\t(60)
3.2.1Linux的體繫結構與內核\t(60)
3.2.2Linux內核分析\t(62)
3.2.3Linux內核的配置\t(71)
3.2.4Linux內核調試技術\t(76)
3.2.5開發實踐:編譯與測試\t(78)
3.2.6小結\t(83)
3.2.7思考與拓展\t(84)
3.3Linux的文件繫統與移植\t(84)
3.3.1Linux文件繫統\t(84)
3.3.2Linux的根文件繫統\t(86)
3.3.3使用BusyBox制作根文件繫統\t(88)
3.3.4Ubuntu嵌入式繫統移植\t(89)
3.3.5開發實踐:Ubuntu根文件繫統的制作\t(92)
3.3.6小結\t(93)
3.3.7思考與拓展\t(94)
第4章Linux應用開發技術\t(95)
4.1Linux文件與多任務編程\t(95)
4.1.1Linux文件編程\t(95)
4.1.2Linux進程編程\t(105)
4.1.3進程間通信技術\t(107)
4.1.4Linux線程編程\t(120)
4.1.5開發實踐:Linux繫統應用編程\t(127)
4.1.6小結\t(134)
4.1.7思考與拓展\t(135)
4.2Linux網絡編程\t(135)
4.2.1網絡編程基礎\t(135)
4.2.2UDP網絡編程\t(139)
4.2.3TCP網絡編程\t(143)
4.2.4開發實踐:Linux網絡編程\t(149)
4.2.5小結\t(159)
4.2.6思考與拓展\t(159)
4.3Linux數據庫開發\t(159)
4.3.1嵌入式數據庫\t(159)
4.3.2SQLite3數據庫的操作\t(160)
4.3.3SQLite3數據庫的編程\t(163)
4.3.4開發實踐:Linux數據庫編程\t(168)
4.3.5小結\t(170)
4.3.6思考與拓展\t(170)
4.4嵌入式Web服務器應用\t(170)
4.4.1嵌入式Web服務器\t(170)
4.4.2Boa服務器的移植與測試\t(171)
4.4.3CGI開發技術\t(172)
4.4.4開發實踐:嵌入式Web服務器應用\t(174)
4.4.5小結\t(178)
4.4.6思考與拓展\t(178)
第5章Linux驅動程序開發技術\t(179)
5.1Linux驅動程序開發基礎\t(179)
5.1.1Linux驅動程序的概念\t(179)
5.1.2Linux驅動程序的開發\t(184)
5.1.3GPIO驅動程序的開發\t(192)
5.1.4總線設備驅動程序\t(196)
5.1.5基於設備樹的驅動程序設計\t(199)
5.1.6開發實踐:LED驅動程序的開發\t(203)
5.1.7小結\t(209)
5.1.8思考與拓展\t(209)
5.2字符設備驅動程序的開發\t(209)
5.2.1按鍵驅動程序的開發\t(209)
5.2.2ADC驅動程序的開發\t(217)
5.2.3PWM驅動程序的開發\t(220)
5.2.4開發實踐:按鍵、ADC、PWM驅動程序的開發與測試\t(225)
5.2.5小結\t(242)
5.2.6思考與拓展\t(242)
5.3總線設備驅動程序的開發\t(242)
5.3.1I2C總線概述\t(242)
5.3.2I2C總線驅動程序的開發\t(244)
5.3.3I2C總線驅動程序接口函數\t(247)
5.3.4開發實踐:I2C總線驅動程序的開發\t(250)
5.3.5小結\t(259)
5.3.6思考與拓展\t(259)
5.4塊設備驅動程序的開發\t(259)
5.4.1Linux塊設備\t(260)
5.4.2Linux塊設備驅動程序的開發\t(261)
5.4.3RamDisk塊設備驅動程序的分析\t(275)
5.4.4開發實踐:RamDisk塊設備驅動程序\t(276)
5.4.5小結\t(281)
5.4.6思考與拓展\t(281)
5.5網絡設備驅動程序的開發\t(281)
5.5.1Linux網絡設備概述\t(281)
5.5.2網絡設備驅動程序的開發\t(282)
5.5.3虛擬網絡設備驅動程序的開發\t(292)
5.5.4開發實踐:虛擬網絡設備驅動程序的開發與測試\t(292)
5.5.5小結\t(296)
5.5.6思考與拓展\t(296)
參考文獻\t(297)