Linux/Android開發(fā)利器——ARM DS-5使用指南

簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關圖書
本書是一本全面介紹ARM DS-5使用方法的書籍,共24章,分為4個部分。
第一部分是DS-5的基本入門部分,主要介紹DS-5的基本功能和組件,DS-5的基本使用方法,DS-5的相關文件、文檔和安裝。第二部分詳細介紹Eclipse的各個重要組成部分,包括Eclipse軟件的各個功能的使用介紹,并重點介紹項目管理、編輯器和遠程系統(tǒng)管理的詳細使用。第三部分詳細介紹DS調(diào)試器各個重要組成部分的使用,包括從與開發(fā)板的連接到調(diào)試技術的各個方面的使用細節(jié)和步驟。第四部分詳細介紹DS-5性能分析各種技術的使用方法,內(nèi)容包括性能分析環(huán)境的構建,分析報告的創(chuàng)建,以及對數(shù)據(jù)的各種分析方法。
本書適合在Linux和 Android下進行嵌入式開發(fā)的設計者使用。
涵蓋Linux和Android兩大系統(tǒng)
詳解ARM DS-5應用方法
全面闡釋嵌入式系統(tǒng)調(diào)試與性能分析
協(xié)助ARM架構下嵌入式高端系統(tǒng)開發(fā)與優(yōu)化
前 言
DS-5(即ARM Development Studio 5)是ARM公司最新推出的嵌入式系統(tǒng)專業(yè)軟件開發(fā)解決方案,是一款基于ARM架構的 Linux和Android平臺全面的端到端軟件開發(fā)工具套件。借助該工具套件,在ARM支持的平臺上,針對Linux和Android系統(tǒng),可以輕松地進行系統(tǒng)開發(fā)和優(yōu)化,縮短開發(fā)和測試周期,有助于提高資源的使用效率。
ARM DS-5 工具集包括:
(1)靈活的DS-5 Eclipse集成開發(fā)環(huán)境(IDE):定制的Eclipse IDE,能與第三方插件兼容;具有功能強大的C/C++編輯器和項目管理器;基于ARM Linux的GNU編譯工具;且集成眾多實用工具,例如遠程系統(tǒng)瀏覽器、SSH和Telnet 終端等。
(2)DS-5 Debugger端到端調(diào)試器:能啟動加載程序、內(nèi)核和用戶空間調(diào)試;進行非侵入性指令跟蹤,包括匯總的配置文件;具有更快、更簡單的自動調(diào)試會話;設備配置數(shù)據(jù)庫的一次單擊即可完成的JTAG調(diào)試配置。
(3)Real-Time System Models實時系統(tǒng)模型:預先與ARM嵌入式Linux一起加載的Cortex-A8 系統(tǒng)模型模擬器;實現(xiàn)直接主機上的Linux應用程序調(diào)試;具有高于250MHz的典型模擬速度。
(4)ARM流水線性能分析器:無需JTAG探針的系統(tǒng)范圍的分析;進程、線程、函數(shù)和源代碼行的CPU使用情況統(tǒng)計信息;提供性能相關事件(例如高速緩存未命中次數(shù)、中斷數(shù))與軟件執(zhí)行的即時關聯(lián)和關鍵路徑標識及動態(tài)內(nèi)存使用情況分析。
(5)DS-5為基于Linux和Android的系統(tǒng)開發(fā)最優(yōu)的解決方案和便捷的調(diào)試分析環(huán)境。DS-5適合不同層次的開發(fā)者使用,包括專業(yè)的應用程序開發(fā)工程師和嵌入式軟件開發(fā)入門者,并能滿足基于Linux和Android的高端應用開發(fā)。
本書是一本全面介紹ARM DS-5使用方法的書籍,適合在Linux和Android下進行嵌入式開發(fā)的設計者。全書共24章,分為以下4個部分。
第一部分1~3章,是DS-5使用入門部分。該部分首先介紹DS-5的基本功能和組件,然后指導讀者了解DS-5的基本使用方法,最后介紹DS-5的相關文件、文檔和安裝。
第二部分4~7章,詳細介紹Eclipse的各個重要組成部分。包括Eclipse軟件各個功能的使用介紹,并重點介紹項目管理、編輯器和遠程系統(tǒng)管理的詳細用法。通過這些內(nèi)容可以讓讀者掌握Eclipse的使用,為后期的開發(fā)奠定基礎。
第三部分8~15章,詳細介紹DS調(diào)試器各個重要組成部分的使用。內(nèi)容包括從與開發(fā)板的連接到調(diào)試技術的各個方面的使用細節(jié)和步驟,通過本部分的學習,可以讓讀者掌握實際嵌入式軟件開發(fā)的一些常規(guī)調(diào)試手段。這些內(nèi)容是使用DS-5進行嵌入式高級開發(fā)必須掌握的調(diào)試技術,內(nèi)容非常豐富,因此,這部分內(nèi)容適合作為開發(fā)人員的手冊,在進行DS-5調(diào)試過程中隨時查閱。
第四部分16~24章,詳細介紹DS-5性能分析技術的使用方法。內(nèi)容包括性能分析環(huán)境的構建,分析報告的創(chuàng)建,以及對數(shù)據(jù)的各種分析方法。這部分內(nèi)容可以讓讀者了解資源的利用效率,有助于優(yōu)化系統(tǒng)設計。最后還介紹了V5.9版本的新增功能。
作者在本書寫作過程中得到了許多支持和幫助。首先感謝ARM公司和深圳米爾科技有限責任公司的支持。ARM公司在第一時間為作者提供了最新的DS-5授權的英文文檔和測試版軟件及仿真器,米爾科技有限責任公司提供了開發(fā)板,在此對ARM公司的趙慧波、毛衛(wèi)洋,米爾公司的資深工程師表示謝意。其次感謝桂林電子科技大學計算機科學與技術學院的黃廷輝老師、教學實踐部的秦興國、黃雄華老師,信息與通信學院的符強老師、機電工程學院的韋荔浦老師,以及碩士研究生周衛(wèi)、楊飛、謝國龍和賓世昌,他們完成了大量的資料收集、翻譯和整理工作,本書是他們汗水的結晶。最后感謝中國水電出版社的楊慶川老師,她在本書的排版、格式、命名及出版方面給予作者很多建議和幫助。
為了盡快將DS-5展示給嵌入式開發(fā)者,本書的寫作時間比較倉促,加之作者水平有限,書中錯誤之處敬請廣大讀者批評指正。
崔更申 秦興國
于桂林電子科技大學
2012年3月
第1章 DS-5介紹 2
1.1 關于DS-5 2
1.2 關于DS-5 Eclipse 2
1.3 關于DS-5 Debugger 3
1.4 關于Real-Time System Models 3
1.5 關于編譯工具 4
1.6 關于GNU編譯工具 4
1.7 關于ARM Streamline性能分析器 5
1.8 關于調(diào)試硬件配置工具 5
第2章 DS-5快速使用實例 6
2.1 導入示例項目到Eclipse 6
2.2 在Eclipse中編譯Gnometris項目 6
2.3 命令行下編譯Gnometris項目 7
2.4 Real-Time System Model上裝載
Gnometris程序 7
2.5 裝載Gnometris程序到ARM Linux 8
2.6 使用SSH連接設置和運行在ARM Linux
上的Gnometris 8
2.7 連接已經(jīng)在ARM Linux上運行的
Gnometris 程序 12
2.8 調(diào)試Gnometris 14
2.9 調(diào)試可裝載的內(nèi)核模塊 15
2.9.1 預備知識 15
2.9.2 步驟 15
2.10 運行在ARM Linux上的應用程序的
線程性能分析 17
2.10.1 預備知識 17
2.10.2 步驟 18
2.11 調(diào)試Android本地C/C++應用程序和庫 18
2.11.1 預備知識 19
2.11.2 步驟 19
2.12 DS-5許可管理 22
第3章 DS-5安裝并獲得許可證 24
3.1 系統(tǒng)要求 24
3.1.1 所支持的平臺 24
3.1.2 DS-5要求 24
3.2 安裝目錄 25
3.3 許可和更新 25
3.4 文檔 26
3.5 示例 26
第二部分 使用Eclipse集成開發(fā)環(huán)境
第4章 開始使用Eclipse開發(fā)環(huán)境 28
4.1 在Eclipse環(huán)境中安裝ARM插件 28
4.2 啟動Eclipse 29
4.3 使用歡迎界面 29
4.4 Eclipse工作臺窗口簡介 30
4.5 Eclipse工作臺的特點 31
4.6 工作空間 31
4.7 資源 32
4.8 關于工程集 35
4.9 創(chuàng)建工程集合 35
4.10 更改工程管理器欄目中的頂層元素 36
4.11 取消工程集合列表形式 36
4.12 視圖和欄目 37
4.12.1 視圖 37
4.12.2 欄目 37
4.12.3 修整條 39
4.12.4 快速查看條 39
4.13 菜單 39
4.14 工具欄 40
4.15 編輯源代碼 40
4.15.1 導航 40
4.15.2 搜索 41
4.15.3 內(nèi)容助手 41
4.15.4 書簽 41
4.16 配置Eclipse 41
4.17 參數(shù)(Preferences)對話框 41
4.18 屬性(Properties)對話框 42
4.19 導入和導出選項 43
4.20 使用導入向?qū)?44
4.21 使用導出向?qū)?44
4.22 訪問動態(tài)幫助 45
4.23 使用ARM-specific速查表 45
4.24 安裝新特性 46
4.25 使用限制 47
第5章 使用Eclipse項目 48
5.1 項目類型 48
5.2 創(chuàng)建一個新的C/C++項目 49
5.3 為ARM Linux創(chuàng)建一個新的Makefile
項目 50
5.4 導入一個存在的Eclipse項目 50
5.5 為特定的編譯配置設置編譯工具 51
5.6 配置C/C++的編譯行為 52
5.7 更新項目的工具鏈 53
5.8 在項目中增加一個新的文件 54
第6章 使用Eclipse編輯器 55
6.1 C/C++編輯器概述 55
6.2 ARM匯編編輯器概述 55
6.3 ELF內(nèi)容編輯器概述 56
6.4 ELF內(nèi)容編輯器——頭文件標簽 56
6.5 ELF內(nèi)容編輯器——概述標簽 57
6.6 ELF內(nèi)容編輯器——符號表標簽 57
6.7 ELF內(nèi)容編輯器——反匯編標簽 58
6.8 分散文件編輯器概述 58
6.9 創(chuàng)建分散(scatter)文件 59
6.10 從BCD文件導入內(nèi)存映射 60
第7章 使用遠程系統(tǒng)管理 62
7.1 遠程系統(tǒng)關系概述 62
7.2 遠程系統(tǒng)視圖 63
7.3 遠程系統(tǒng)細節(jié)視圖 63
7.4 遠程暫存視圖 64
7.5 終端視圖 64
第三部分 使用DS-5調(diào)試器
第8章 開始使用DS-5調(diào)試器 67
8.1 調(diào)試器的概念 67
8.2 從Eclipse中啟動調(diào)試器 68
8.3 從命令控制臺啟動調(diào)試器 68
8.4 DS-5調(diào)試視圖快捷方式 70
8.5 DS-5調(diào)試器命令行控制臺快捷鍵 71
第9章 配置連接和檢查嵌入式目標對象 72
9.1 連接到目標對象的類型 72
9.2 配置到實時系統(tǒng)模塊的連接 72
9.3 使用gdbserver配置到Linux目標對象上
的連接 74
9.4 配置到Linux內(nèi)核上的連接 75
9.5 配置和裸板目標的連接 76
9.6 配置連接到裸板上的事件查看器 77
9.7 導出已有的配置 78
9.8 導入已有的啟動配置 79
9.9 從目標對象中取消連接 80
9.10 檢查目標對象的執(zhí)行環(huán)境 80
9.11 檢查調(diào)用堆棧 81
9.12 有關跟蹤支持的問題 82
第10章 控制程序的運行 84
10.1 裝載鏡像文件到目標對象 84
10.2 裝載調(diào)試信息到調(diào)試器 85
10.3 運行一個鏡像文件 86
10.4 斷點和監(jiān)視點 86
10.5 設置執(zhí)行斷點 87
10.6 設置數(shù)據(jù)監(jiān)視點 88
10.7 設置條件斷點 88
10.8 在一個具體的線程設置斷點 90
10.9 掛起斷點和監(jiān)視點 91
10.10 導出DS-5 斷點設置到一個文件 91
10.11 從一個文件導出DS-5 斷點設置 92
10.12 單步執(zhí)行一個應用程序 92
10.13 處理UNIX信號 93
10.14 處理器異常的處理 94
10.15 配置調(diào)試器路徑替代規(guī)則 94
第11章 調(diào)試嵌入式系統(tǒng) 96
11.1 調(diào)試管理程序 96
11.2 調(diào)試裸板對稱多處理系統(tǒng) 97
11.2.1 配置和連接 97
11.2.2 鏡像文件和符號裝載 97
11.2.3 運行、停止和單步執(zhí)行 97
11.2.4 斷點、觀察點和信號 97
11.2.5 檢查目標狀況 98
11.2.6 跟蹤 98
11.3 調(diào)試多線程應用程序 98
11.4 調(diào)試共享庫 99
11.5 調(diào)試一個Linux內(nèi)核 100
11.6 調(diào)試Linux內(nèi)核模塊 101
11.6.1 內(nèi)嵌模塊 101
11.6.2 可裝載的模塊 101
11.7 調(diào)試 TrustZone 使能目標對象 101
第12章 使用腳本調(diào)試和Flash燒寫 103
12.1 導出在調(diào)試會話期間生成的DS-5
調(diào)試器命令 103
12.2 創(chuàng)建一個DS-5調(diào)試器腳本 103
12.3 創(chuàng)建 Jython 腳本 104
12.4 創(chuàng)建一個CMM類型的腳本 106
12.5 運行一個腳本 107
12.6 在Eclipse里配置一個Jython項目 108
12.7 燒寫Flash存儲器 109
12.7.1 注冊一個新的閃存算法 109
12.7.2 在閃存中編程 110
第13章 半主機和Log4j控制運行消息 112
13.1 半主機和內(nèi)存頂端 112
13.2 半主機工作模式 113
13.3 在調(diào)試器中使能自動半主機支持 113
13.4 使用命令行控制臺控制半主機消息 113
13.5 日志信息輸出的控制 114
13.6 Log4j 配置文件 114
13.7 從調(diào)試器定制日志信息輸出 114
13.7.1 顯示記錄消息到控制臺的示例 115
13.7.2 顯示記錄消息到一個文件的示例 116
13.7.3 展示如何將消息日志整合到控制臺
和文件的示例 116
第14章 使用快照瀏覽器 118
14.1 創(chuàng)建一個快照瀏覽器初始化文件 118
14.1.1 預備條件 118
14.1.2 創(chuàng)建一個快照瀏覽器初始化文件
的過程 118
14.1.3 創(chuàng)建一個快照瀏覽器初始化文件
的限制 119
14.1.4 示例 119
14.2 快照瀏覽器 120
14.2.1 寄存器值 120
14.2.2 內(nèi)存值 121
14.2.3 調(diào)試符號 121
14.3 連接到快照瀏覽器 122
14.4 創(chuàng)建快照瀏覽器的調(diào)試器腳本時的
注意事項 122
第15章 DS-5調(diào)試器視圖和視圖 124
15.1 App控制臺視圖 124
15.2 ARM Asm Info視圖 125
15.3 ARM匯編編輯器 126
15.4 斷點視圖 127
15.4.1 斷點語法 127
15.4.2 觀察點入口語法 128
15.4.3 工具條和上下文菜單選項 128
15.5 C/C++編輯器 129
15.5.1 Action context 菜單選項 130
15.5.2 Editor context 菜單 130
15.6 事件查看器的通道編輯器 131
15.7 命令視圖 131
15.8 調(diào)試控制視圖 133
15.9 Disassembly 視圖 135
15.10 Expressions視圖 137
15.11 函數(shù)視圖 139
15.12 歷史視圖 140
15.13 內(nèi)存視圖 142
15.14 模塊視圖 144
15.15 Registers視圖 145
15.16 屏幕視圖 147
15.17 腳本視圖 148
15.18 目標視圖 149
15.19 蹤跡視圖 150
15.20 變量視圖 152
15.21 導出內(nèi)存對話框 154
15.22 導入內(nèi)存對話框 154
15.23 導出跟蹤報告對話框 155
15.24 斷點屬性對話框 156
15.24.1 斷點信息 157
15.24.2 斷點選項 158
15.25 監(jiān)視點屬性對話框 158
15.26 管理信號對話框 159
15.27 函數(shù)過濾器對話框 159
15.28 調(diào)試配置——連接表 160
15.29 調(diào)試配置文件選項卡 162
15.30 調(diào)試配置——調(diào)試器標簽 164
15.31 調(diào)試配置——參數(shù)標簽 166
15.32 調(diào)試配置——環(huán)境標簽 167
15.33 調(diào)試配置——事件查看器標簽 168
15.34 DS-5調(diào)試器菜單和工具條圖標 169
15.34.1 DS-5 調(diào)試器圖標 170
15.34.2 視圖圖標 171
15.34.3 視圖工具圖標 171
15.34.4 視圖標記 171
15.34.5 混雜圖標 172
第四部分 使用ARM Streamline性能分析器
第16章 設置Linux和Android目標機 174
16.1 設置ARM Linux目標機 174
16.1.1 先決條件 174
16.1.2 裝載Gator守護進程 174
16.1.3 準備并編譯內(nèi)核 175
16.1.4 構建Gator模塊 175
16.1.5 在目標機上運行 176
16.2 設置Android目標機 176
16.2.1 準備并編譯內(nèi)核 176
16.2.2 構建Gator守護進程 177
16.2.3 構建Gator模塊 177
16.2.4 連接目標機 177
16.2.5 在目標機上運行Gator守護進程 177
16.2.6 設置捕捉選項用以支持Android
目標機 178
第17章 使用Streamline數(shù)據(jù)視圖 179
17.1 ARM Streamline數(shù)據(jù)視圖的基本操作 179
17.1.1 Streamline捕捉數(shù)據(jù)與Streamline
分析報告 180
17.1.2 手動停止捕捉會話 180
17.2 ARM Streamline數(shù)據(jù)視圖的工具欄
選項 180
17.3 分析數(shù)據(jù)定位對話框的使用 181
第18章 設置捕捉選項 182
18.1 打開捕捉選項對話框 182
18.2 捕捉選項設置 183
第19章 配置Counters計數(shù)器 186
19.1 打開Counters配置對話框 186
19.2 使用Counters配置對話框 187
19.2.1 添加新事件 188
19.2.2 刪除事件 188
19.2.3 定制事件收集分類列表 189
19.2.4 基于事件采樣 189
19.2.5 計數(shù)器配置選項 190
第20章 Timeline視圖 191
20.1 關于Timeline視圖 191
20.1.1 圖表 192
20.1.2 進程 192
20.1.3 詳細信息欄 192
20.1.4 X-Ray模式 193
20.1.5 進程過濾 193
20.1.6 書簽 193
20.2 Timeline圖表 194
20.3 數(shù)據(jù)篩選及Timeline的其他控件 195
20.3.1 使用時間軸標尺對數(shù)據(jù)進行篩選 195
20.3.2 通過處理控件調(diào)整曲線圖表及
進程表中內(nèi)容的排列順序 195
20.3.3 時間斷面標記 196
20.3.4 曲線圖表區(qū)與進程表區(qū)分隔欄 197
20.4 Timeline視圖的工具欄選項及快捷鍵 197
20.5 可視化標注功能 198
第21章 視圖 200
21.1 表單視圖 200
21.1.1 表單視圖的工具欄選項、上下文
菜單及快捷鍵 200
21.1.2 對表單報告中的數(shù)據(jù)進行排序 202
21.1.3 調(diào)用鏈視圖表頭 203
21.1.4 函數(shù)視圖表頭 203
21.1.5 堆棧視圖表頭及線程表格的最大
堆棧深度 204
21.2 代碼視圖 204
21.2.1 代碼定位功能 205
21.2.2 定位缺失源代碼文件 206
21.2.3 查找命令 207
21.2.4 代碼視圖工具欄選項及快捷鍵 207
21.3 調(diào)用關系視圖 208
21.3.1 層次結構如何構造 208
21.3.2 主調(diào)函數(shù)與被調(diào)函數(shù)連接節(jié)點 209
21.3.3 縮略視圖區(qū) 209
21.3.4 顏色標記代碼性能 210
21.3.5 函數(shù)選定高亮操作 210
21.3.6 快捷菜單選項 211
21.3.7 調(diào)用關系視圖工具欄及快捷鍵 211
第22章 標注視圖和日志視圖 213
22.1 通過標注視圖定制報告格式 213
22.1.1 annotate.h 頭文件代碼 214
22.1.2 sum.c源代碼 215
22.2 在可視化標注視圖中添加圖像至報告 215
22.3 Log視圖 218
22.3.1 Log視圖搜索框 218
22.3.2 Log視圖表頭 218
22.3.3 Log視圖中的Totals面板 219
第23章 高級功能定制 220
23.1 捕捉數(shù)據(jù)的本地化存儲 220
23.2 創(chuàng)建并定制性能 221
23.2.1 gator_events_mmaped.c模板文件 221
23.2.2 自定義counter 223
23.2.3 gator_events函數(shù) 223
23.2.4 更新events.xml文件 223
23.3 從已存儲的捕捉數(shù)據(jù)中創(chuàng)建新的
分析報告 224
第24章 v5.9版本的新增功能 225
24.1 Big.little多核調(diào)試SMP Debugging
介紹 226
24.2 GPU的使用 228
24.2.1 GPU簡介 228
24.2.2 Mali流水線設置 229
24.2.3 Mali具體事件 230
24.3 功耗性能分析 231
24.3.1 功耗探測器簡介 231
24.3.2 使用功耗探測器的條件 232
24.3.3 功耗探測器的安裝 233
24.3.4 功耗探測器使用 236
- C程序設計實踐教程 [劉衛(wèi)國]
- C程序設計(慕課版) [劉衛(wèi)國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發(fā) [李智威 著]
- MySQL數(shù)據(jù)庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現(xiàn)實應用開發(fā)實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向?qū)ο蟪绦蛟O計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰(zhàn) [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛(wèi)國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛(wèi)國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰(zhàn)——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統(tǒng)架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發(fā)與實戰(zhàn)(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]