當(dāng)前位置:首頁(yè) > 學(xué)習(xí)資源 > 講師博文 > ARM DS-5進(jìn)行高級(jí)調(diào)試和診斷的一些方法和技巧
ARM DS-5是一款功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境(IDE),專(zhuān)為ARM架構(gòu)的處理器設(shè)計(jì)。它提供了豐富的工具和功能,用于高級(jí)調(diào)試和診斷,幫助開(kāi)發(fā)人員深入分析和優(yōu)化他們的應(yīng)用程序。以下是使用ARM DS-5進(jìn)行高級(jí)調(diào)試和診斷的一些方法和技巧:
1 DS-5 工程創(chuàng)建
1. 啟動(dòng) DS-5 并設(shè)置工作空間:從桌面菜單中選擇 “Eclipse for DS-5” 來(lái)啟動(dòng) DS-5。在彈出的 “Workspace Launcher” 對(duì)話(huà)框中,可以接受默認(rèn)的工作空間,也可以點(diǎn)擊 “Browse” 選擇一個(gè)文件夾作為工作空間,例如 “c:\ds-5_workspace”,并勾選 “Use this as the default and do not ask again” 選項(xiàng)后點(diǎn)擊 “OK”。
2. 獲取許可證:如果是首次使用 DS-5,會(huì)彈出 “No License Found” 對(duì)話(huà)框,點(diǎn)擊 “Open License Manager”,在 “ARM License Manager” 對(duì)話(huà)框中點(diǎn)擊 “Add License”,接著在 “Add License” 對(duì)話(huà)框中選擇 “Generate a 30-day evaluation license for DS-5 Ultimate Edition” 選項(xiàng)并點(diǎn)擊 “Next”。然后在 “Choose Network Interface” 對(duì)話(huà)框中選擇一個(gè)網(wǎng)絡(luò)接口,建議選擇物理網(wǎng)絡(luò)接口。在 “Developer Account Details” 對(duì)話(huà)框中輸入 ARM 開(kāi)發(fā)者(銀牌)賬號(hào)的詳細(xì)信息,如果沒(méi)有賬號(hào)則需創(chuàng)建一個(gè),最后點(diǎn)擊 “Finish”。當(dāng)許可證成功注冊(cè)后,可在 “ARM License Manager” 中看到 30 天的評(píng)估許可證以及可用的工具包,關(guān)閉該對(duì)話(huà)框,并在確認(rèn)重啟 Eclipse 的對(duì)話(huà)框中點(diǎn)擊 “Restart Eclipse”。
3. 創(chuàng)建新項(xiàng)目:從 DS-5 主菜單中選擇 “File”->“New”->“C Project”,彈出 “C Project” 對(duì)話(huà)框。在 “Project name” 字段中輸入項(xiàng)目名稱(chēng),如 “hello world”;在 “Project type” 下選擇 “Executable”->“Empty Project”;在 “Toolchains” 中選擇 “ARM Compiler 5”,點(diǎn)擊 “Finish” 即可創(chuàng)建一個(gè)名為 “hello world” 的 C 項(xiàng)目,可在 “Project Explorer” 視圖中查看該項(xiàng)目。
2 ARM DS-5 加載 ELF 文件運(yùn)行
1. 創(chuàng)建工程并掃描硬件信息:使用 ARM DS-5 前需創(chuàng)建工程項(xiàng)目,并掃描相應(yīng)硬件信息,如 CPU、Coresight 組件、Cache 等,掃描完成后再執(zhí)行 “build platform”12.
2. 創(chuàng)建加載腳本:可通過(guò) JTAG 接口用 DS-5 將鏡像燒寫(xiě)到內(nèi)存,配置 PC 指針來(lái)啟動(dòng)固件。創(chuàng)建腳本時(shí)要注意將固件啟動(dòng)匯編部分的 data 段的 copy 部分注釋掉,因?yàn)?DS-5 加載 elf 文件時(shí)會(huì)自動(dòng)根據(jù) elf 符號(hào)表將 data 段加載到對(duì)應(yīng)地址1.
3. 執(zhí)行腳本:執(zhí)行 DS-5 腳本時(shí)先進(jìn)行 SoC reset 操作,reset 后系統(tǒng)從 bootrom 重啟,DS-5 接入,接著執(zhí)行 stop 命令,再 load elf 文件,DS-5 會(huì)自動(dòng)解析入口點(diǎn),最后執(zhí)行 run 命令即可1.
3 ARM DS-5 斷點(diǎn)設(shè)置及常用 Debug 命令
1. 斷點(diǎn)設(shè)置:在 DS-5 的調(diào)試界面中,可在代碼行號(hào)左側(cè)空白處點(diǎn)擊設(shè)置普通斷點(diǎn)。對(duì)于條件斷點(diǎn),在斷點(diǎn)設(shè)置窗口中找到對(duì)應(yīng)的斷點(diǎn),于條件表達(dá)式框中輸入條件即可 。
2. 常用 Debug 命令:
1) stop 命令:用于暫停程序的執(zhí)行,比如在加載 elf 文件前執(zhí)行此命令,可使程序處于停止?fàn)顟B(tài)以便進(jìn)行后續(xù)操作1.
2) run 命令:使程序從當(dāng)前停止位置繼續(xù)運(yùn)行,可用于啟動(dòng)已加載的 elf 文件17.
3) step into:單步執(zhí)行程序,遇到函數(shù)調(diào)用會(huì)進(jìn)入函數(shù)內(nèi)部繼續(xù)單步執(zhí)行,便于詳細(xì)查看程序的執(zhí)行流程和函數(shù)內(nèi)部的邏輯。
4) step over:同樣是單步執(zhí)行,但遇到函數(shù)調(diào)用時(shí),會(huì)將函數(shù)當(dāng)作一個(gè)整體執(zhí)行完,直接跳到函數(shù)調(diào)用的下一行,適合在不需要深入函數(shù)內(nèi)部時(shí)快速查看主程序流程。
5) step return:在函數(shù)內(nèi)部執(zhí)行時(shí),使用此命令可直接執(zhí)行到函數(shù)返回處,跳出當(dāng)前函數(shù),繼續(xù)執(zhí)行函數(shù)調(diào)用后的代碼。
4 ARM DS-5 + DSTREAM 使用配置——軟件配置
1. 申請(qǐng) License:登錄 ARM 官網(wǎng)注冊(cè)賬號(hào)并申請(qǐng)免費(fèi)版本23.
2. 建立 Data Base:打開(kāi) DS-5 工具,按提示建立 Data Base23.
3. Platform Configuration:進(jìn)行掃描操作,完成后執(zhí)行 “build platform”123.
4. DEBUG 配置:根據(jù)具體的調(diào)試需求,進(jìn)行相應(yīng)的 DEBUG 配置,如選擇連接的目標(biāo)設(shè)備、調(diào)試模式等3.
5 ARM DS-5 Trace 使用
1. 創(chuàng)建 Debugger Core 連接:新建一個(gè) “Debugger” core 連接,創(chuàng)建完成后需斷開(kāi)先前已連接的,以便進(jìn)行后續(xù)的 trace 數(shù)據(jù)抓取等操作4.
2. 重新編譯平臺(tái):完成 debugger 的創(chuàng)建后,重新編譯.sdf 文件,編譯時(shí)需選擇 “Full Debug and Trace”4.
3. 加載 elf 文件:將對(duì)應(yīng)的 elf 文件加載到 DS-5 中,以便在分析 trace 數(shù)據(jù)時(shí)能正確地顯示函數(shù)名、變量名等符號(hào)信息4.
4. 使用 Trace 控制窗口:通過(guò) Trace 控制窗口可查看 trace 數(shù)據(jù),還可抓取 trace dump 快照進(jìn)行線(xiàn)下分析。此外,可按步驟配置來(lái)查看 trace 中函數(shù)的執(zhí)行情況,如函數(shù)執(zhí)行時(shí)間占比等
ETM 數(shù)據(jù) Trace 和指令 Trace
1)新建一個(gè)"Debugger" core 連接, 創(chuàng)建步驟如下圖所示,下圖創(chuàng)建的是一個(gè)名為 “Trace_Demo” 的 debuger core 連接,需要注意的是在創(chuàng)建完成后,需要將先前已經(jīng)連接的進(jìn)行斷開(kāi),如下圖的“New_configuration
2)重新編譯平臺(tái)
上面第一步完成了debuger 的創(chuàng)建之后,需要再重新編譯 .sdf 文件,編譯方法如下圖:
當(dāng)前是進(jìn)行trace數(shù)據(jù)抓取,所以選擇 “Full Debug and Trace”
Trace 控制窗口
6 總結(jié):
ARM DS - 5 高級(jí)調(diào)試與診斷技巧總結(jié):
1. 靈活運(yùn)用斷點(diǎn)、單步調(diào)試和觀(guān)察點(diǎn),精確控制程序執(zhí)行流程并監(jiān)測(cè)變量變化。
2. 借助多核調(diào)試和系統(tǒng)級(jí)調(diào)試功能,處理多核協(xié)同與硬件交互相關(guān)問(wèn)題。
3. 利用性能和內(nèi)存分析技巧,排查性能瓶頸和內(nèi)存相關(guān)故障。
4. 掌握工程創(chuàng)建、文件加載運(yùn)行以及相關(guān)配置方法,保障調(diào)試工作順利開(kāi)展。