注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學嵌入式軟件調試技術

嵌入式軟件調試技術

嵌入式軟件調試技術

定 價:¥59.00

作 者: 羅克露 主編
出版社: 電子工業(yè)出版社
叢編項: 嵌入式技術與應用叢書
標 簽: 軟件工程/開發(fā)項目管理

ISBN: 9787121077265 出版時間: 2009-01-01 包裝: 平裝
開本: 16開 頁數(shù): 482 字數(shù):  

內容簡介

  本書兼顧理論與實踐。全書首先對調試技術及嵌入式調試手段進行一個概覽,然后重點對linux環(huán)境下的嵌入式調試技術進行詳細的講解,最后給出兩個綜合應用實例:MPEG-4視頻播放器的設計和基于GPS的移動定位終端。在編寫思路上,本書以理論為先、實踐為重;具體到調試技巧和手段上,則全部結合具體實例展開。書中各個實例之間采取從前至后逐步深入的方式,既銜接有序,又便于讀者學習。本書配套光盤包含書中相關的補充資料、與Sitsang評估板相關的工具鏈和源代碼、本書第3~9章的源代碼,以及書中使用到的工具和軟件等。本書既可作為Linux環(huán)境下嵌入式軟件調試技術從入門到精通的學習用書,也可供從事Linux環(huán)境下的嵌入式軟件調試的工程人員參考使用。

作者簡介

暫缺《嵌入式軟件調試技術》作者簡介

圖書目錄

上篇 基礎篇
第1章 軟件調試概述 2
1.1 什么是軟件調試 2
1.2 軟件調試的分類 6
1.2.1 靜態(tài)調試和動態(tài)調試 6
1.2.2 機器級調試與源碼級調試 7
1.2.3 任務級調試與系統(tǒng)級調試 7
1.2.4 本地調試與遠程(交叉)調試 8
1.3 軟件調試的關鍵技術·斷點 8
1.3.1 軟件斷點 8
1.3.2 硬件斷點 8
1.4 調試器應當遵循的原則 9
1.4.1 調試器必須反映真實信息 9
1.4.2 提供盡可能多的程序上下文信息 9
1.4.3 Heisenberg原則·盡可能減少對被測系統(tǒng)的影響 10
1.5 嵌入式軟件調試手段 10
1.5.1 軟件仿真調試·模擬器 10
1.5.2 ICE·早期手段 11
1.5.3 BDM·M68K系列及PowerPC等采用的技術 12
1.5.4 JTAG·調試領域的后起之秀 13
1.5.5 調試代理·嵌入式調試的基石 15
1.6 本章小結 15
第2章 邊界掃描測試技術(JTAG) 16
2.1 JTAG的背景和原理 16
2.2 JTAG接口的結構 19
2.3 測試訪問端口(TAP) 20
2.3.1 測試時鐘輸入TCK 20
2.3.2 測試模式輸入TMS 20
2.3.3 測試數(shù)據(jù)輸入TDI 21
2.3.4 測試數(shù)據(jù)輸出TDO 21
2.3.5 測試復位輸入TRST* 21
2.3.6 TAP的互聯(lián)方式 21
2.4 測試訪問端口控制器(TAP controller) 22
2.5 指令寄存器 27
2.6 JTAG指令 27
2.6.1 公共指令(public)與私有指令(private) 27
2.6.2 BYPASS指令 28
2.6.3 SAMPLE指令 29
2.6.4 PRELOAD指令 29
2.6.5 EXTEST指令 29
2.6.6 其他指令 29
2.7 數(shù)據(jù)寄存器組 30
2.7.1 BYPASS寄存器 31
2.7.2 邊界掃描寄存器 31
2.7.3 設備ID寄存器 32
2.7.4 其他數(shù)據(jù)寄存器 32
2.8 ARM7TDMI的JTAG調試 32
2.8.1 調試架構 33
2.8.2 ARM7TDMI處理器結構 33
2.8.3 進入調試狀態(tài) 34
2.8.4 JTAG指令 35
2.8.5 EmbeddedICE-RT邏輯 36
2.8.6 訪問寄存器和存儲器 38
2.9 本章小結 41
中篇 系統(tǒng)篇
第3章 學習使用GDB調試器 44
3.1 GDB簡介 44
3.1 1 GDB的啟動和退出 45
3.1.2 GDB的啟動步驟 50
3.1.3 GDB的多語言支持 50
3.2 在編譯時加入調試信息 51
3.2.1 打開GCC的調試選項-g 51
3.2.2 代碼優(yōu)化對調試的影響 52
3.3 在GDB下運行程序 53
3.3.1 指定要運行的程序 53
3.3.2 設置程序的運行環(huán)境 54
3.3.3 停止運行 60
3.4 斷點、監(jiān)視點與捕捉點 60
3.4.1 斷點、監(jiān)視點與捕捉點的設置 61
3.4.2 斷點的刪除、禁用和使能 75
3.4.3 條件斷點 82
3.4.4 斷點命令列表 87
3.4.5 斷點菜單·對函數(shù)重載的支持 89
3.5 繼續(xù)(continuing)與單步(stepping) 90
3.5.1 繼續(xù)運行 91
3.5.2 單步運行 91
3.5.3 與單步有關的命令 94
3.5.4 指令級單步命令 97
3.6 查看數(shù)據(jù) 99
3.6.1 用print命令查看數(shù)據(jù) 99
3.6.2 查看數(shù)據(jù)類型 103
3.6.3 人為數(shù)組·查看內存中的連續(xù)對象 105
3.6.4 查看存儲器和寄存器 108
3.6.5 自動顯示列表 111
3.6.6 使用快捷變量(convenience variable) 114
3.6.7 處理C語言宏定義 115
3.6.8 產(chǎn)生轉儲文件 116
3.7 棧幀的回溯與選定 117
3.7.1 棧幀回溯(backtrace) 118
3.7.2 棧幀選定 120
3.7.3 棧幀狀態(tài) 121
3.8 改變程序的執(zhí)行流程 122
3.8.1 給變量賦值 122
3.8.2 使程序從另外的地址繼續(xù)執(zhí)行 124
3.8.3 向程序發(fā)送信號 125
3.8.4 調用函數(shù) 127
3.9 其他常用命令 128
3.9.1 源代碼查看命令 128
3.9.2 反匯編命令 129
3.10 實例:Framebuffer與libjpeg混合編程 131
3.10.1 Framebuffer簡介 131
3.10.2 libjpeg簡介 133
3.10.3 程序說明 135
3.10.4 調試 143
3.11 GDB命令匯總 146
3.12 本章小結 148
第4章 GDB遠程調試技術 149
4.1 目標平臺簡介 149
4.2 準備工作 151
4.2.1 minicom終端仿真程序 151
4.2.2 NFS文件系統(tǒng) 154
4.2.3 聯(lián)合使用minicom和NFS 157
4.3 兩種遠程調試方式 159
4.3.1 gdbserver 159
4.3.2 遠程插樁(stub) 160
4.4 編譯arm-linux-gdb 160
4.5 編譯gdbserver 162
4.6 連接到遠程目標 163
4.6.1 啟動gdbserver 163
4.6.2 串行連接方式 164
4.6.3 TCP連接方式 165
4.6.4 UDP連接方式 166
4.6.5 與遠程目標斷開連接 166
4.6.6 GDB的遠程調試選項 166
4.7 實例:調試誤用內存的程序 168
4.7.1 段錯誤 168
4.7.2 野指針 171
4.7.3 內存泄漏 174
4.7.4 處理內存問題的對策 176
4.8 實例:音頻采集與回放程序的調試 176
4.8.1 Linux下的音頻接口 176
4.8.2 OSS的編程接口 177
4.8.3 OSS的編程機制 178
4.8.4 OSS的一般框架 181
4.8.5 源程序SndKit.c說明 181
4.8.6 SndKit調試過程 190
4.9 本章小結 193
第5章 網(wǎng)絡應用程序調試 194
5.1 套接口編程簡介 194
5.1.1 基本TCP套接口編程 198
5.1.2 基本UDP套接口編程 203
5.2 網(wǎng)絡調試和診斷工具 206
5.2.1 tcpdump 207
5.2.2 其他工具 210
5.3 實例:遠程獲取加速度 212
5.3.1 加速度傳感器ADXL202JE簡介 212
5.3.2 服務端程序 213
5.3.3 客戶端程序 218
5.3.4 小結 224
5.4 實例:通過CDMA發(fā)送短消息 224
5.4.1 Linux串口編程概覽 224
5.4.2 發(fā)送英文短消息 229
5.4.3 發(fā)送中文短消息 240
5.4.4 小結 247
5.5 本章小結 248
第6章 多進程與多線程調試 249
6.1 Linux下的多進程程序調試 249
6.1.1 進程的創(chuàng)建 249
6.1.2 GDB對多進程調試的支持 251
6.1.3 實例:調試simple_fork 253
6.2 Linux多線程程序調試 255
6.2.1 線程的創(chuàng)建、終止和取消 256
6.2.2 線程互斥鎖 261
6.2.3 條件變量(condition variable) 263
6.2.4 線程的cleanup handler 267
6.2.5 線程特定數(shù)據(jù) 268
6.2.6 線程引入的問題 272
6.2.7 GDB對多線程調試的支持 272
6.2.8 實例:調試simple_thread 275
6.3 本章小結 279
第7章 靜態(tài)庫與動態(tài)庫的調試 280
7.1 靜態(tài)鏈接庫的構建和調試 280
7.2 動態(tài)共享庫的優(yōu)點和代價 287
7.3 動態(tài)共享庫的命名·soname 289
7.4 動態(tài)共享庫的構建和安裝 291
7.5 動態(tài)共享庫的使用 292
7.6 動態(tài)共享庫的調試方法 292
7.7 實例:解析AVI文件 298
7.7.1 AVI文件格式介紹 298
7.7.2 OpenDML所做之擴展 303
7.7.3 AVI解析之代碼實現(xiàn) 309
7.7.4 編譯共享庫并安裝到目標板 330
7.7.5 遠程調試共享庫 330
7.8 本章小結 334
下篇 應用篇
第8章 MPEG-4視頻播放器的設計及調試 336
8.1 概述 336
8.2 XviD與SDL的構建 337
8.3 XviD編程接口說明 339
8.3.1 版本 339
8.3.2 錯誤碼 340
8.3.3 色場空間 340
8.3.4 profile和level定義 341
8.3.5 像素幅型比(Pixel Aspect Ration) 341
8.3.6 幀類型 341
8.3.7 xvid_global()函數(shù) 342
8.3.8 xvid_decore()函數(shù) 344
8.3.9 小結 350
8.4 SDL編程接口說明 350
8.4.1 SDL的初始化和退出 350
8.4.2 SDL視頻子系統(tǒng)函數(shù)接口 351
8.4.3 SDL事件處理子系統(tǒng)函數(shù)接口 355
8.5 整體結構 359
8.6 輔助模塊:event和ping/pong雙緩沖區(qū) 361
8.7 解碼模塊設計 375
8.8 播放模塊設計 393
8.9 驅動模塊設計 407
8.10 本章小結 410
第9章 基于GPS的移動定位終端 411
9.1 功能概述 411
9.2 GPS介紹 412
9.2.1 GPS定位原理 412
9.2.2 GPS數(shù)據(jù)格式 414
9.3 MiniGUI介紹 417
9.3.1 MiniGUI體系結構與模型 418
9.3.2 交叉編譯MiniGUI 419
9.3.3 為觸摸屏編寫IAL驅動層 421
9.3.4 改寫MiniGUI服務器程序mginit 432
9.4 在單獨的線程中讀取和解析GPS數(shù)據(jù) 437
9.4.1 經(jīng)緯度坐標到像素坐標的映射 437
9.4.2 雙精度浮點數(shù)字節(jié)序的問題 441
9.4.3 通過異步串口讀寫GPS數(shù)據(jù) 443
9.4.4 解析GPS數(shù)據(jù) 444
9.4.5 計算歸一化坐標 447
9.4.6 GPS線程 448
9.4.7 與GUI前端交換數(shù)據(jù) 451
9.4.8 GPS接收機模擬程序 453
9.5 用到的MiniGUI元素 454
9.5.1 主窗口 455
9.5.2 控件 457
9.5.3 靜態(tài)框 460
9.5.4 按鈕 461
9.5.5 編輯框 465
9.5.6 GDI接口與位圖操作 468
9.5.7 定時器 473
9.5.8 消息處理過程 474
9.6 本章小結 479
參考文獻 480

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號