本書基于Cortex-A8的應用處理器“S5PV210”為核心,首先詳細講述了嵌入式Linux系統應用的基礎,然后通過具體完整的實訓項目對嵌入式Linux系統應用所需的基本技能進行覆蓋。全書主要介紹的內容有嵌入式系統入門、嵌入式Linux開發壞境構建、Linux基礎、裸機開發、嵌入式Linux的系統制作、字符型設備驅動程序設計、嵌入式數據庫SQLite移植、嵌入式Web服務器BOA移植、基于Qt的嵌入式GUI程序設計。 本書的編寫特色在于用具體完整的任務帶動和引導讀者完成整個嵌入式Linux相關應用領域的學習,并且每個任務都有非常詳細的講解,此外還提供了源代碼。
基礎知識篇第1章 嵌入式系統入門11.1 嵌入式系統的概念11.2 嵌入式系統的應用領域21.3 嵌入式系統的發展31.3.1 嵌入式系統硬件平臺的發展41.3.2 嵌入式系統軟件平臺的發展61.4 典型的嵌入式系統組成61.5 ARM處理器71.5.1 ARM處理器介紹71.5.2 ARM處理器的應用領域81.5.3 ARM處理器的特點81.5.4 ARM的功能選型81.6 嵌入式Linux111.6.1 常見的嵌入式操作系統111.6.2 嵌入式Linux操作系統13本章總結15第2章 嵌入式Linux開發環境構建162.1 虛擬機及Linux安裝162.1.1 虛擬機VMware Workstation軟件介紹162.1.2 安裝Linux操作系統Ubuntu12.04162.1.3 設置Ubuntu的root賬號242.1.4 修改Ubuntu的默認圖形界面252.1.5 修改Linux系統中的計算機名稱262.2 安裝VMware Tools262.3 虛擬機與主機共享文件282.4 安裝配置minicom292.5 配置超級終端322.6 NFS掛載342.7 交叉編譯器的安裝352.7.1 交叉編譯器的定義352.7.2 交叉編譯環境搭建35本章總結36第3章 Linux基礎373.1 Linux基礎知識373.1.1 Linux文件373.1.2 Linux文件系統383.1.3 Linux目錄393.2 Linux常用命令403.2.1 文件相關命令403.2.2 系統相關命令453.2.3 網絡相關命令473.2.4 壓縮打包相關命令483.2.5 其他命令493.3 vi編輯器的使用503.3.1 vi編輯器的模式503.3.2 vi編輯器使用的基本流程513.3.3 vi各模式的功能鍵523.4 gcc編譯器的使用533.4.1 gcc編譯流程533.4.2 gcc編譯選項543.5 gdb調試器的使用563.5.1 gdb使用流程563.5.2 gdb基本命令593.6 arm-linux-gcc交叉編譯器的使用633.7 make工程管理器與makefile文件633.7.1 了解makefile文檔643.7.2 編寫makefile643.7.3 makefile的五部分683.7.4 make管理器的使用71本章總結72項目操作篇第4章 裸機開發734.1 概述734.2 建立Linux開發環境734.3 S5PV210介紹754.3.1 S5PV210簡介754.3.2 S5PV210內存空間764.3.3 S5PV210特殊功能寄存器774.4 ARM常用指令集794.4.1 ARM尋址方式794.4.2 ARM指令集804.5 裸機程序編程步驟884.6 編程實現點亮LED894.7 調用C函數934.8 編程實現按鍵查詢點亮LED954.9 串口通信99本章總結107第5章 嵌入式Linux的系統制作1085.1 編譯Bootloader1085.1.1 U-Boot簡介1095.1.2 編譯U-Boot1105.2 編譯Linux內核1105.2.1 Linux內核簡介1105.2.2 內核編譯1105.3 制作嵌入式Linux根文件系統1125.3.1 根文件系統類型1125.3.2 制作簡單yaffs根文件系統1135.4 使用Fastboot燒寫Linux系統鏡像118本章總結121第6章 字符型設備驅動程序設計1226.1 設備驅動介紹1226.2 Linux內核模塊1236.2.1 內核模塊的特點1236.2.2 模塊與內核的接口函數1236.2.3 操作模塊相關的命令1236.3 Linux設備驅動1246.4 硬件接口、驅動程序、設備文件、應用程序的關系1256.5 簡單的字符設備驅動開發1266.6 驅動程序中編寫ioctl函數供應用程序調用1296.7 驅動程序與應用程序之間的數據交換1346.8 GPIO接口控制LED燈1386.9 GPIO接口控制按鍵143本章總結151第7章 嵌入式數據庫SQLite移植1527.1 SQLite支持的SQL語言1527.1.1 數據定義語句1527.1.2 數據操作語句1537.2 SQLite數據庫編譯、安裝和使用1537.2.1 安裝SQLite1547.2.2 利用SQL語句操作SQLite數據庫1547.2.3 利用C接口訪問SQLite數據庫1557.3 移植SQLite1577.3.1 交叉編譯SQLite1587.3.2 測試已移植的SQLite31587.3.3 交叉編譯應用程序160本章總結160第8章 嵌入式Web服務器BOA移植1618.1 BOA概述1618.1.1 BOA的功能1618.1.2 BOA的流程分析1628.1.3 BOA的配置信息1678.2 BOA的編譯和移植1688.2.1 交叉編譯BOA1688.2.2 設置BOA配置信息1708.2.3 BOA移植1718.3 HTML頁面測試1718.4 CGI腳本測試1728.5 HTML和CGI傳參測試1738.6 網頁控制LED1788.7 BOA與SQLite結合1818.7.1 通過CGI程序訪問SQLite1818.7.2 編譯和測試183本章總結184第9章 基于Qt的嵌入式GUI程序設計1859.1 嵌入式GUI簡介1859.1.1 嵌入式GUI的特點1859.1.2 常用的嵌入式GUI圖形系統1859.1.3 Qt/E概述1879.2 Qt/E開發環境的搭建1879.2.1 移植JPEG 庫1879.2.2 移植tslib1889.2.3 交叉編譯qt-embedded庫1899.2.4 修改profile文件添加環境變量1909.3 創建簡單的Qt工程HelloWorld1909.3.1 使用QtCreator創建HelloWorld程序1909.3.2 編譯HelloWorld工程1949.4 用純源碼編寫Qt工程2029.4.1 C++基礎2029.4.2 變量、數據類型2039.4.3 C++的類、繼承、構造函數、析構函數2069.4.4 用純源碼編寫Qt工程2119.5 登錄界面程序設計2159.5.1 信號與槽概述2159.5.2 建立信號與槽的關聯2189.5.3 登錄界面程序設計2199.6 LED圖形界面控制程序設計224本章總結231參考文獻232