基於S5PV210處理器的嵌入式開發完全攻略
所屬類別
科技 >> 電工電子 >> 電子技術
作者:歐陽駿、謝德華、張凱之 等編著
出版日期:2015年8月 書號:978-7-122-23369-1
開本:B5 710×1000 1/16 裝幀:平 版次:1版1次 頁數:268頁
本書基於S5PV210處理器的開發平台,深入淺出地介紹了嵌入式Linux裸機開發和Android應用程式開發完全攻略。本書分為上下兩篇,分別為嵌入式ARM Linux裸機開發初體驗和Android套用開發連連看,詳細介紹了ARM嵌入式開發的基礎知識以及典型的開發實例講解;並結合典型的實例和精彩的語言,一步步激發讀者的學習興趣,使讀者輕輕鬆鬆地學會在Linux環境中進行嵌入式開發和Android應用程式開發。
目錄
第一篇 嵌入式ARM Linux裸機開發初體驗
第1章 S5PV210處理器的前世今生 2
1.1 數據類型 3
1.2 處理器狀態 4
1.3 存儲器格式 4
1.4 工作模式 5
1.5 暫存器介紹 6
1.5.1 堆疊指針暫存器R13和連結暫存器R14 6
1.5.2 程式計數器R15 7
1.5.3 程式狀態暫存器 7
1.6 存儲器映射 8
1.6.1 S5PV210處理器的地址空間 9
1.6.2 S5PV210處理器的存儲器地址映射 9
1.7 天嵌TQ210開發板硬體資源概述 10
1.8 本章小結 12
第2章 搭建嵌入式交叉編譯環境 13
2.1 交叉編譯簡介 14
2.2 在主機上構建嵌入式Linux開發環境 15
2.2.1 VMware Workstation的安裝 15
2.2.2 Ubuntu12.04的安裝 18
2.3 主機與虛擬機之間檔案傳輸方法的介紹 25
2.4 交叉編譯器的安裝 30
2.5 Windows環境下遠程登錄工具 SecureCRT 的安裝 31
2.6 S5PV210程式燒寫方法概述 33
2.6.1 使用SD卡方式燒寫及SD啟動卡的製作方法 33
2.6.2 使用U-Boot方式燒寫程式 36
2.7 本章小結 36
第3章 ARM指令集及彙編語言編程介紹 37
3.1 ARM指令集介紹 37
3.1.1 ARM指令集 38
3.1.2 ARM定址方式 44
3.1.3 GNU ARM偽操作和偽指令介紹 47
3.2 GNU ARM彙編程式編程規範 50
3.2.1 GNU ARM彙編程式基本結構 50
3.2.2 GNU ARM彙編程式中的標號 50
3.2.3 GNU ARM彙編程式中的段 51
3.2.4 GNU ARM彙編程式中的入口點 52
3.2.5 GNU ARM彙編程式中的宏定義 52
3.3 常用彙編語言程式子模組實例分析 52
3.3.1 特殊功能暫存器的訪問 52
3.3.2 記憶體數據搬移 53
3.3.3 批量載入與存儲 54
3.3.4 堆疊操作 55
3.3.5 實現查表功能 57
3.4 GNU交叉編譯工具鏈簡介 57
3.4.1 arm-linux-gcc編譯器 58
3.4.2 arm-linux-ld連結器 60
3.4.3 arm-linux-objcopy格式轉換工具 64
3.4.4 arm-linux-objdump工具 64
3.5 Makefile簡介 65
3.5.1 Makefile規則和命令 66
3.5.2 Makefile變數 68
3.5.3 Makefile內嵌函式 69
3.6 本章小結 72
第4章 傳遞C語言的正能量 73
4.1 數據類型基礎 73
4.1.1 用typedef和#define定義類型 74
4.1.2 用signed和unsigned修飾數據類型 74
4.1.3 volatile和強制類型轉換 75
4.2 深入理解位運算符和位運算 76
4.2.1 按位與運算符(&) 76
4.2.2 按位或運算符(|) 76
4.2.3 按位取反運算符(~) 77
4.2.4 左移和右移運算符(<<)、(>>) 77
4.2.5 位運算套用實例分析 77
4.3 防止檔案重複包含技巧 78
4.4 本章小結 79
第5章 ARM彙編與C語言混合編程的那些事兒 80
5.1 一個混合編程實例的實現 80
5.2 APCS規則概述 82
5.2.1 暫存器的使用 82
5.2.2 參數傳遞 82
5.2.3 函式的返回值 83
5.3 本章小結 83
第6章 點亮神奇的流水燈 84
6.1 S5PV210處理器GPIO接口概述 84
6.1.1 GPIO的結構簡介 85
6.1.2 GPIO的操作方法 86
6.1.3 GPIO套用實例 89
6.2 點亮LED流水燈 91
6.2.1 LED硬體電路分析 91
6.2.2 新建一個LED流水燈工程 91
6.2.3 代碼編寫與詳解 93
6.2.4 編寫Makefile檔案 96
6.2.5 編譯連結LED流水燈程式 98
6.2.6 下載可執行程式到開發板運行 101
6.3 讓TQ210開發板發出聲音 105
6.3.1 蜂鳴器硬體電路分析 106
6.3.2 代碼編寫與詳解 107
6.3.3 蜂鳴器的Makefile檔案 112
6.3.4 編譯、連結蜂鳴器源程式 113
6.3.5 下載、測試蜂鳴器實驗可執行程式 114
6.4 本章小結 118
第7章 探究時鐘滴答的奧秘 119
7.1 S5PV210處理器時鐘體系結構概述 119
7.1.1 S5PV210處理器的頂層時鐘 120
7.1.2 各類時鐘頻率之間的關係 122
7.2 PLL的配置及時鐘初始化 124
7.2.1 APLL和MPLL的相關暫存器 125
7.2.2 與時鐘相關的其他暫存器及初始化流程 130
7.2.3 時鐘初始化套用實例 133
7.3 PWM定時器的原理及套用 135
7.3.1 PWM定時器概述 136
7.3.2 PWM定時器相關暫存器 138
7.3.3 PWM定時器的操作方法 143
7.3.4 PWM定時器套用實例 144
7.4 PWM定時器拓展實驗—蜂鳴器實驗 153
7.5 本章小結 157
第8章 玩轉UART 158
8.1 UART概述 158
8.2 UART的操作 160
8.3 UART的工作模式 163
8.4 UART的相關暫存器 166
8.5 UART接口套用實例 178
8.5.1 UART接口硬體電路分析 178
8.5.2 UART的操作方法與步驟 179
8.5.3 UART程式設計與代碼詳解 180
8.5.4 UART實例測試 184
8.6 本章小結 189
第9章 挑戰啟動流程 191
9.1 S5PV210處理器啟動流程概述 191
9.1.1 啟動流程的3部曲 193
9.1.2 安全啟動(Secure Booting) 196
9.2 深入理解S5PV210處理器的啟動流程 197
9.2.1 啟動設備的選擇 197
9.2.2 S5PV210處理器的啟動流程圖 200
9.2.3 BL1階段代碼的結構 202
9.2.4 BL1頭部信息的製作工具 204
9.2.5 啟動過程中的記憶體映射 207
9.3 本章小結 209
第二篇 Android套用開發連連看
第10章 傳說中的Android 212
10.1 什麼是Android 212
10.2 Android歷史 216
10.3 Android開發介紹 217
10.4 Android初體驗 218
10.5 本章小結 218
第11章 Android開發平台搭建 219
11.1 作業系統平台 219
11.2 軟體安裝 220
11.2.1 JDK安裝 220
11.2.2 Eclipse、Android SDK安裝 223
11.2.3 開發平台測試 225
11.3 本章小結 226
第12章 第一個Android應用程式 227
12.1 Hello World項目分析 227
12.1.1 新建工程 228
12.1.2 編譯運行 231
12.1.3 導入工程 233
12.1.4 程式實現 235
12.2 程式調試技巧 235
12.2.1 設定斷點 236
12.2.2 單步執行 237
12.2.3 查看變數 238
12.2.4 下載到TQ210開發板 239
12.3 本章小結 241
第13章 Android基本組件大串燒 242
13.1 文本框(TextView) 243
13.1.1 實例編程實現 243
13.1.2 實例演示 247
13.2 編輯框(EditText) 250
13.2.1 實例編程實現 250
13.2.2 實例演示 252
13.3 按鈕(Button) 253
13.3.1 實例編程實現 253
13.3.2 實例演示 255
13.3.3 Button擴展實驗—訊息回響 256
13.4 進度條 257
13.4.1 實例編程實現 257
13.4.2 實例演示 261
13.5 Android進階—Intent和Activity 261
13.5.1 實例編程實現 262
13.5.2 實例演示 267
參考文獻 268