相關主題
商品描述
本書以智能家居系統的實現為主線,介紹了基於ARM處理器和Linux操作系統的嵌入式系統開發技術。本書的主要內容包括嵌入式系統概述及智能家居系統設計項目分析,建立開發環境,Linux系統程序設計基礎,Qt應用程序開發,基於嵌入式Linux系統的驅動程序設計,嵌入式數據庫,嵌入式系統的移植等。本書案例豐富,敘述清晰,深入淺出,章節內容安排符合學生的認知規律,與實踐應用結合緊密,同時配有知識點視頻,掃描書中二維碼即可觀看,教案、程序源代碼等資料可登錄華信教育資源網免費下載。本書可作為高等院校電子、通信和電腦等專業嵌入式系統課程的教材,也可作為嵌入式開發愛好者的學習參考書。
目錄大綱
目錄
第1章 嵌入式系統概述及智能家居系統設計項目分析 1
1.1 本章目標 1
1.2 嵌入式系統概述 1
1.2.1 嵌入式系統的定義和特點 1
1.2.2 嵌入式系統的結構 3
1.2.3 嵌入式處理器 5
1.2.4 嵌入式操作系統 7
1.3 智能家居系統設計項目分析 9
1.3.1 智能家居系統的硬件設計 10
1.3.2 智能家居系統的軟件設計 13
1.4 習題 14
第2章 建立開發環境 15
2.1 本章目標 15
2.2 安裝虛擬機VMware Workstation 16
2.2.1 安裝虛擬機的步驟 16
2.2.2 解決使用虛擬機的常見問題 19
2.3 虛擬機加載Ubuntu鏡像文件 20
2.4 實現主機與虛擬機之間的文件傳輸 22
2.4.1 利用共享目錄傳輸文件 22
2.4.2 利用第三方工具傳輸文件 24
2.5 USB轉串口驅動的安裝 28
2.6 ADB驅動安裝 29
第3章 Linux系統程序設計基礎 30
3.1 本章目標 30
3.2 Linux系統常用操作命令 30
3.2.1 文件目錄相關命令 31
3.2.2 系統操作命令 35
3.2.3 文件打包壓縮相關命令 36
3.2.4 網絡相關命令 38
3.2.5 獲取聯機幫助命令 38
3.3 Vim文本編輯器 39
3.3.1 Vim編輯器的操作模式 39
3.3.2 Vim編輯器各操作模式的功能鍵 40
3.4 GCC編譯工具 41
3.4.1 GCC識別的文件類型 41
3.4.2 GCC語法格式 41
3.4.3 GCC編譯過程 42
3.4.4 GCC編譯控制選項 42
3.5 GDB調試工具 43
3.5.1 GDB介紹 43
3.5.2 GDB基本命令 44
3.5.3 GDB調試範例 44
3.6 makefile工程管理 46
3.6.1 認識makefile 46
3.6.2 簡單計算器程序的makefile文件編寫 47
3.6.3 makefile變量 51
3.7 文件操作 53
3.7.1 文件打開和關閉 53
3.7.2 文件讀寫 55
3.7.3 文件定位 57
3.7.4 設備控制接口 58
3.8 多線程編程 59
3.9 習題 62
第4章 Qt應用程序開發 65
4.1 本章目標 65
4.2 嵌入式GUI概述 65
4.2.1 X窗口系統 66
4.2.2 MicroWindows 67
4.2.3 MiniGUI 67
4.2.4 Qt/Embedded 67
4.3 Qt程序開發基礎 68
4.3.1 Qt中的主要類 68
4.3.2 信號和槽機制 69
4.3.3 元對象系統 71
4.3.4 構建Qt開發環境 71
4.4 Qt程序開發實例 75
4.4.1 最簡單的Qt程序 75
4.4.2 編寫並運行Qt測試程序 78
4.5 智能家居控制系統終端GUI設計 82
4.6 習題 84
第5章 基於嵌入式Linux系統的驅動程序設計 85
5.1 本章目標 85
5.2 Linux系統內核模塊 86
5.2.1 Linux系統的模塊機制 86
5.2.2 內核模塊的程序結構 86
5.2.3 內核模塊的編譯 87
5.2.4 模塊相關操作命令 88
5.2.5 內核調試技術 89
5.2.6 帶參數的內核模塊 90
5.2.7 內核符號的導出 92
5.3 設備驅動 93
5.3.1 設備驅動程序的概念和設備的分類 93
5.3.2 設備文件和設備號 94
5.4 字符設備驅動 97
5.4.1 申請和釋放設備號 97
5.4.2 設備的註冊與註銷 98
5.4.3 自動生成設備文件 99
5.4.4 驅動程序接口函數的實現 101
5.4.5 驅動程序框架及其測試程序 105
5.5 虛擬字符設備驅動及其測試 110
5.5.1 驅動程序 110
5.5.2 簡單測試程序 112
5.5.3 基於Qt的虛擬字符設備驅動測試程序 113
5.6 項目實例1——LED驅動 116
5.6.1 LED硬件接口 116
5.6.2 內存映射及讀寫操作 118
5.6.3 BSP提供的接口函數 119
5.6.4 LED驅動程序 120
5.6.5 測試程序 123
5.7 項目實例2——PWM蜂鳴器驅動程序 124
5.7.1 PWM硬件電路 124
5.7.2 PWM定時器的使用原理 125
5.7.3 PWM定時器的寄存器 125
5.7.4 定時器的PWM輸出工作流程 127
5.7.5 驅動程序 128
5.7.6 簡單測試程序 132
5.7.7 PWM音樂播放器設計 133
5.8 項目實例3——按鍵驅動 135
5.8.1 中斷相關函數 136
5.8.2 獨立按鍵驅動 137
5.9 項目實例4——溫度傳感器驅動 140
5.10 項目實例5——步進電機驅動 145
5.11 習題 151
第6章 嵌入式數據庫 153
6.1 本章目標 153
6.2 嵌入式數據庫概述 153
6.2.1 嵌入式數據庫的分類 155
6.2.2 常用的嵌入式數據庫 157
6.3 SQLite數據庫 159
6.3.1 SQLite數據庫簡介 159
6.3.2 SQLite數據庫的使用 160
6.3.3 SQLite數據庫的移植 170
6.4 教學管理系統實例 173
6.5 習題 179
第7章 嵌入式系統的移植 180
7.1 本章目標 180
7.2 嵌入式交叉編譯環境的構建 181
7.2.1 宿主機和目標機的連接方式 181
7.2.2 串口傳輸 182
7.2.3 交叉編譯環境的構建 184
7.2.4 Flash燒寫步驟 185
7.3 BootLoader程序 189
7.3.1 BootLoader的工作模式 189
7.3.2 BootLoader的工作流程 190
7.3.3 常用的BootLoader 191
7.3.4 U-Boot引導程序 192
7.4 Linux操作系統的剪裁和編譯 195
7.4.1 內核源代碼結構 195
7.4.2 內核的剪裁與編譯 196
7.4.3 在內核中增加驅動模塊 198
7.5 文件系統的移植 199
7.5.1 文件系統介紹 200
7.5.2 BusyBox 202
7.5.3 嵌入式文件系統的移植 202
7.6 習題 208
參考文獻 210