內容簡介
本書以Cortex-A15處理器為載體,是面向嵌入式終端軟體開發和學習的教程。內容涵蓋Linux作業系統介紹、安裝和基本使用、嵌入式終端開發平台、ARM裸機編程、驅動開發,以及
嵌入式Linux的套用編程、嵌入式Android套用編程。本書由淺入深、結構合理、圖文並茂,可操作性強,讀者可跟著一步步進行操作和學習,非常適合嵌入式Linux開發初級工程師及準備往嵌入式Linux方向發展的電子工程師和單片機工才協祖程師使用,也可作為高校非計算機專業高年級學生學習嵌入式Linux的參考教材。
圖書目錄
目 錄
第己檔擔1章白漿踏殃 嵌入式系統基礎 1
1.1 嵌入式系統概述 1
1.1.1 什麼是嵌入式系統 1
1.1.2 嵌入式系統的組成 1
1.1.3 嵌入式系統與PC系統拘拜的區別 3
1.1.4 嵌入式系統的特點 3
1.1.5 嵌入式系統的發展趨勢 4
1.1.6 嵌入式系統的套用領域 5
1.2 嵌入式處理器 8
1.3.1 何謂嵌入式作業系統 10
1.3.2 嵌入式作業系統的特點 10
1.3.3 嵌入式作業系統的種類 11
1.4 嵌入式系統員贈遙開發過程 13
第2章 嵌入式ARM處理器 15
2.1 ARM公司簡介 15
2.2 ARM體系結構發展 15
2.3 ARM Cortex系列微處理器 16
2.3.1 Cortex-A8系列處理器 17
2.3.2 Cortex-A9系列處理器 18
2.3.3 Cortex-A15系列處理器 19
2.3.4 Cortex-A53系列處理器 21
2.4 主流Cortex-A系列處理器對比 23
第3章 嵌入式開發婚疊影平台 24
3.1 嵌入式軟體開發平台 24
3.1.1 安裝VMware Workstation軟體 24
3.1.2 配置虛擬主機硬體 26
3.1.3 安裝Ubuntu 33
3.1.4 安裝簽戶拒少VMware Tools 37
3.1.5 安裝文本編輯器Vim 38
3.1.6 安裝g++ 39
3.1.7 安裝Android開發工具及依賴庫 39
3.1.8 安裝TFTP服務 41
3.1.9 安裝NFS服務 41
3.2 基於Exynos5260嵌入式硬體平台 42
3.2.1 Exynos5260嵌入式硬體平台簡介 42
3.2.2 Exynos5260嵌入式硬體平台資源配置 43
3.2.3 實驗開發平台調試 45
3.2.4 Exynos5260開發平台設定 45
3.2.5 系統鏡像燒寫 48
第4章 Linux套用開發基礎 51
4.1 Linux基礎命令 51
4.2 Linux下C語言編程環境 60
4.2.1 Linux下C語言編程環境概述 60
4.2.2 Vi編輯器 61
4.2.3 GNU GCC的使用 62
4.2.4 GDB調試器的使用 65
4.3 GNU Make命令和Makefile檔案 68
4.4 Linux 的Shell編程 72
4.4.1 Shell簡介 72
4.4.2 Shell變數與環境變數 72
4.4.3 Shell常用命令 78
第5章 嵌入式Linux套用編程 86
5.1 第一個Linux應用程式輸出“hello world!” 86
5.2 檔案I/O操作 87
5.2.2 系統調用與庫函式 88
5.2.3 檔案I/O基本操作 89
5.3 進程 95
5.3.1 Linux進程概述 95
5.3.2 Linux進程控制 98
5.4 多執行緒通信 118
5.4.1 執行緒簡介 118
5.4.2 Linux執行緒控制 119
5.5 Linux網路編程 131
5.5.1 TCP/IP簡介 131
5.5.2 socket通信基本概念 132
5.5.3 網路編程相關函式說明 133
5.5.4 網路編程程式設計 136
6.1 交叉編譯簡介 147
6.3 交叉編譯器的安裝 148
6.4 U-Boot編譯 150
6.5 U-Boot移植 150
6.6 編譯核心 155
6.7 核心移植 156
6.8 Android 4.4.2移植 159
7.1 Linux驅動程式的基本知識 162
7.2 Linux device driver的概念 163
7.4 驅動程式中編寫ioctl函式供應用程式調用 164
7.6 嵌入式Linux下的按鍵中斷實驗 174
7.7 嵌入式Linux的A/D轉換實驗 184
第8章 Qt編程基礎 190
8.1 Qt概述 190
8.1.1 GUI的作用 190
8.1.2 Qt的主要特點 191
8.2 Qt的安裝 191
8.3 使用Designer創建“helloworld”Qt視窗 194
8.4 交叉編譯Qt Embedded庫 197
8.4.1 配置編譯選項 197
8.4.2 編譯和安裝 198
8.4.3 Qt Embedded應用程式編譯 198
8.5 開發平台設定Qt Embedded環境 199
第9章 Android套用開發 201
9.1 開發準備 201
9.1.1 下載JDK 201
9.1.2 下載Eclipse 201
9.1.3 下載ADT 202
9.1.4 下載Android SDK 202
9.1.5 下載Android NDK 202
9.2 安裝程式 202
9.2.1 安裝JDK 202
9.2.2 安裝Eclipse 205
9.2.3 安裝Android SDK 205
9.2.4 解壓Android NDK與配置環境變數 211
9.2.5 配置ADT 215
9.2.6 配置SDK 217
9.2.7 配置NDK 218
9.3 測試模擬器 218
9.4 Android套用開發準備 221
9.5 Android套用開發 223
9.5.1 實驗1:LED燈控制程式設計 223
9.5.2 實驗2:ADC模組實驗 230
9.5.3 實驗3:LCD實驗 236
第10章 Android多媒體視頻播放器 241
10.1 相關知識 241
10.2 開發過程 242
第11章 Android遠程控制(智慧型家居項目) 247
11.1 智慧型家居概念 247
11.2 背景 247
11.3 發展趨勢 247
11.4 智慧型家居項目 248
11.5 智慧型家居項目服務端代碼編寫 250
11.6 智慧型家居項目客戶端代碼編寫 257
參考文獻 263
3.1.9 安裝NFS服務 41
3.2 基於Exynos5260嵌入式硬體平台 42
3.2.1 Exynos5260嵌入式硬體平台簡介 42
3.2.2 Exynos5260嵌入式硬體平台資源配置 43
3.2.3 實驗開發平台調試 45
3.2.4 Exynos5260開發平台設定 45
3.2.5 系統鏡像燒寫 48
第4章 Linux套用開發基礎 51
4.1 Linux基礎命令 51
4.2 Linux下C語言編程環境 60
4.2.1 Linux下C語言編程環境概述 60
4.2.2 Vi編輯器 61
4.2.3 GNU GCC的使用 62
4.2.4 GDB調試器的使用 65
4.3 GNU Make命令和Makefile檔案 68
4.4 Linux 的Shell編程 72
4.4.1 Shell簡介 72
4.4.2 Shell變數與環境變數 72
4.4.3 Shell常用命令 78
第5章 嵌入式Linux套用編程 86
5.1 第一個Linux應用程式輸出“hello world!” 86
5.2 檔案I/O操作 87
5.2.2 系統調用與庫函式 88
5.2.3 檔案I/O基本操作 89
5.3 進程 95
5.3.1 Linux進程概述 95
5.3.2 Linux進程控制 98
5.4 多執行緒通信 118
5.4.1 執行緒簡介 118
5.4.2 Linux執行緒控制 119
5.5 Linux網路編程 131
5.5.1 TCP/IP簡介 131
5.5.2 socket通信基本概念 132
5.5.3 網路編程相關函式說明 133
5.5.4 網路編程程式設計 136
6.1 交叉編譯簡介 147
6.3 交叉編譯器的安裝 148
6.4 U-Boot編譯 150
6.5 U-Boot移植 150
6.6 編譯核心 155
6.7 核心移植 156
6.8 Android 4.4.2移植 159
7.1 Linux驅動程式的基本知識 162
7.2 Linux device driver的概念 163
7.4 驅動程式中編寫ioctl函式供應用程式調用 164
7.6 嵌入式Linux下的按鍵中斷實驗 174
7.7 嵌入式Linux的A/D轉換實驗 184
第8章 Qt編程基礎 190
8.1 Qt概述 190
8.1.1 GUI的作用 190
8.1.2 Qt的主要特點 191
8.2 Qt的安裝 191
8.3 使用Designer創建“helloworld”Qt視窗 194
8.4 交叉編譯Qt Embedded庫 197
8.4.1 配置編譯選項 197
8.4.2 編譯和安裝 198
8.4.3 Qt Embedded應用程式編譯 198
8.5 開發平台設定Qt Embedded環境 199
第9章 Android套用開發 201
9.1 開發準備 201
9.1.1 下載JDK 201
9.1.2 下載Eclipse 201
9.1.3 下載ADT 202
9.1.4 下載Android SDK 202
9.1.5 下載Android NDK 202
9.2 安裝程式 202
9.2.1 安裝JDK 202
9.2.2 安裝Eclipse 205
9.2.3 安裝Android SDK 205
9.2.4 解壓Android NDK與配置環境變數 211
9.2.5 配置ADT 215
9.2.6 配置SDK 217
9.2.7 配置NDK 218
9.3 測試模擬器 218
9.4 Android套用開發準備 221
9.5 Android套用開發 223
9.5.1 實驗1:LED燈控制程式設計 223
9.5.2 實驗2:ADC模組實驗 230
9.5.3 實驗3:LCD實驗 236
第10章 Android多媒體視頻播放器 241
10.1 相關知識 241
10.2 開發過程 242
第11章 Android遠程控制(智慧型家居項目) 247
11.1 智慧型家居概念 247
11.2 背景 247
11.3 發展趨勢 247