嵌入式系統設計與實踐檢視原始碼討論檢視歷史
《嵌入式系統設計與實踐》,副標題:基於RK3288,朱松盛,董磊,劉洋,郭文波 著,出版社: 北京航空航天大學出版社。
書籍對於人類原有很重大的意義,但,書籍不僅對那些不會讀書的人是毫無用處,就是對那些機械地讀完了書還不會從死的文字中引申活的思想[1]的人也是無用的。 —— 烏申斯基[2]
內容簡介
本書基於VMware Workstation和Ubuntu操作系統進行嵌入式系統開發,共18個實驗,其中第1個實驗用於熟悉嵌入式的開發流程,後面介紹了觸摸屏控制、音頻綜合等17個實驗。所有實驗均詳細介紹了實驗內容、實驗原理,並且都有詳細的步驟和源代碼,以確保讀者能夠順利完成。在每章的最後都安排了一個任務,作為本章實驗的延伸和拓展。
目錄
第1章 嵌入式系統開發概述1
1.1 嵌入式系統介紹 1
1.1.1 嵌入式系統的定義1
1.1.2 嵌入式系統的特點1
1.1.3 嵌入式系統的組成2
1.1.4 嵌入式系統的發展3
1.2 RK3288芯片介紹 3
1.3 嵌入式開發系統介紹 4
1.3.1 特徵參數 4
1.3.2 系統框圖 5
1.3.3 平面示意圖 5
1.3.4 電路設計 7
本章任務 20
本章習題 20
第2章 嵌入式系統開發環境構建 21
2.1 安裝VMware Workstation21
2.2 安裝 Ubuntu 25
2.3 安裝SecureCRT 30
2.3.1 安裝SecureCRT 30
2.3.2 安裝SSH 32
2.3.3 使用SecureCRT遠程登錄 35
2.4 編譯RK3288源碼包40
2.4.1 安裝編譯相關工具 40
2.4.2 編譯RK3288源碼包 41
2.5 下載RK3288固件與調試42
2.5.1 安裝adb調試工具 42
2.5.2 安裝RK3288平台驅動 45
2.5.3 使用Android Tool下載工具升級固件 45
本章任務 49
本章習題 49
第3章 Linux驅動設計軟件基礎 50
3.1 實驗例程目錄分解50
3.2 驅動文件加載、執行和監測流程 51
3.3 驅動調試常見問題及解決方案52
3.4 Linux設備驅動調試 52
3.4.1 打印監視法printk 52
3.4.2 ioctl()控制函數 53
本章任務 56
本章習題 56
第4章 Linux設備驅動實驗 57
4.1 實驗內容57
4.2 實驗原理58
4.2.1 Makefile簡介 58
4.2.2 「/」「.」和「./」63
4.2.3 Linux下的insmod、lsmod和rmmod命令 63
4.3 實驗步驟63
本章任務 70
本章習題 71
第5章 蜂鳴器控制實驗 72
5.1 實驗內容72
5.2 實驗原理72
5.2.1 蜂鳴器電路 _________v72
5.2.2 RK3288的GPIO及編號計算 73
5.2.3 GPIO的 API函數 73
5.2.4 copy_to_user()和copy_from_user()74
5.2.5 sleep() 75
5.3 實驗步驟75
本章任務 83
本章習題 83
第6章 LED控制實驗 84
6.1 實驗內容84
6.2 實驗原理84
6.2.1 LED電路 84
6.2.2 字符設備和驅動模型 84
6.2.3 register_chrdev()和unregister_chrdev() 85
6.2.4 module_init和 module_exit宏 86
6.2.5 MODULE_LICENSE("GPL")86
6.3 實驗步驟86
本章任務 96
本章習題 96
第7章 獨立按鍵中斷實驗 97
7.1 實驗內容97
7.2 實驗原理97
7.2.1 獨立按鍵電路 97
7.2.2 Linux中斷top/bottom 97
7.2.3 中斷處理程序 98
7.3 實驗步驟98
本章任務109
本章習題109
第8章 RTC應用實驗 110
8.1 實驗內容 110
8.2 實驗原理 110
8.2.1 RTC應用實驗電路 110
8.2.2 PCF8563芯片介紹110
8.2.3 Linux的RTC子系統架構 111
8.2.4 RTC應用基本數據結構 112
8.3 實驗步驟 114
本章任務118
本章習題118
第9章 多線程實驗119
9.1 實驗內容 119
9.2 實驗原理 119
9.2.1 Linux多線程簡介 119
9.2.2 線程常用 API函數 119
9.2.3 線程間通信 121
9.3 實驗步驟 124
本章任務128
本章習題128
第10章 串口通信實驗 129
10.1 實驗內容129
10.2 實驗原理129
10.2.1 RK3288核心板串口體系 129
10.2.2 Linux設備分類 130
10.2.3 Linux驅動程序的模塊化 131
10.2.4 Linux設__________備驅動程序結構 131
10.2.5 termios結構體132
10.3 實驗步驟133
本章任務139
本章習題139
第11章 STM32從機通信實驗 140
11.1 實驗內容140
11.2 實驗原理140
11.2.1 RK3288與STM32主從通信電路 140
11.2.2 PCT通信協議 141
11.2.3 PCT通信協議在STM32從機上的應用說明 145
11.2.4 PackUnpack模塊函數 147
11.2.5 serial模塊函數149
11.3 實驗步驟151
本章任務156
本章習題157
第12章 MicroSD卡讀寫實驗 158
12.1 實驗內容158
12.2 實驗原理158
12.2.1 MicroSD卡電路 158
12.2.2 Linux塊設備 158
12.2.3 MicroSD卡 160
12.2.4 文件操作161
12.2.5 文件夾操作 161
12.3 實驗步驟162
本章任務167
本章習題__________167
第13章 LCD屏顯示實驗 168
13.1 實驗內容168
13.2 實驗原理168
13.2.1 顯示屏接口電路 168
13.2.2 LVDS接口簡介 168
13.2.3 幀緩衝169
13.2.4 BMP圖像數據格式 170
13.2.5 BMP圖像顯示流程 171
13.3 實驗步驟171
本章任務181
本章習題181
第14章 觸摸屏控制實驗 182
14.1 實驗內容182
14.2 實驗原理182
14.2.1 觸摸屏電路 182
14.2.2 GT911芯片介紹 183
14.2.3 I2C協議 184
14.2.4 Input子系統 185
14.2.5 Input事件捕獲186
14.2.6 觸摸屏坐標點分布 187
14.3 實驗步驟187
本章任務191
本章習題191
第15章 音頻綜合實驗 192
15.1 實驗內容192
15.2 實驗原理192
15.2.1 音頻電路192
15.2.2 ES8323S芯片介紹 194
15.2.3 I2S簡介 195
15.2.4 WAV音頻文件架構195
15.2.5 ALSA聲卡驅動架構 196
15.2.6 tinyalsa命令 197
15.2.7 execv()函數197
15.3 實驗步驟197
本章任務203
本章習題203
第16章 以太網通信實驗 204
16.1 實驗內容204
16.2 實驗原理204
16.2.1 以太網電路 204
16.2.2 RTL8211E芯片介紹 204
16.2.3 傳輸控制協議與Socket 207
16.2.4 Linux以太網卡架構207
16.2.5 外網服務器通信流程 208
16.3 實驗步驟209
本章任務213
本章習題213
第17章 Wi Fi通信實驗 214
17.1 實驗內容214
17.2 實驗原理214
17.2.1 AP6255電路 214
17.2.2 AP6255芯片 __________214
17.2.3 Socket主從通信 216
17.2.4 局域網內Socket主從通信流程 217
17.3 實驗步驟218
本章任務226
本章習題226
第18章 藍牙通信實驗 227
18.1 實驗內容227
18.2 實驗原理227
18.2.1 AP6255電路 227
18.2.2 RFCOMM 協議 227
18.3 實驗步驟230
本章任務237
本章習題237
第19章 NL668模塊通信實驗 238
19.1 實驗內容238
19.2 實驗原理238
19.2.1 NL668電路 238
19.2.2 NL668 AT命令 238
19.3 實驗步驟243
本章任務255
本章習題255
第20章 USB應用實驗 256
20.1 實驗內容256
20.2 實驗原理256
6
嵌入式系統設計與實踐———基於RK3288
20.2.1 USB電路 256
20.2.2 USB HUB簡介 256
20.2.3 Linux的 USB驅動架構 257
20.2.4 libusb庫 259
20.2.5 鍵盤 USB數據格式 259
20.3 實驗步驟260
本章任務268
本章習題268
第21章 設備樹應用實驗 269
21.1 實驗內容269
21.2 實驗原理269
21.2.1 Linux設備樹 269
21.2.2 OF函數 270
21.3 實驗步驟270
本章任務279
本章習題279
附錄A Linux常用命令 280
附錄B vim文本編輯程序常用命令 296
附錄C RK3288核心板引腳定義 298
附錄D GPIO編號計算表 301
附錄E 人體生理參數監測系統使用說明302
參考文獻305__