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