蜂鳥E203系列——Linux調試(GDB+Openocd)


欲觀原文,請君移步

本文基於文章《蜂鳥E203系列——利用 Hbrid-E-SDK 環境開發程序》

GDB 簡介

GDB(GNU Project Debugger),是 GNU 工具鏈中的調試軟件。 GDB 是一款應用非常廣泛的調試工具,能夠用於調試 C、 C++、 Ada 等等各種語言編寫的程序,它提供如下功能:

  1. 下載或者啟動程序

  2. 通過設定各種特定條件來停止程序

  3. 查看處理器的運行狀態,包括通用寄存器的值,內存地址的值等

  4. 查看程序的狀態,包括變量的值,函數的狀態等

  5. 改變處理器的運行狀態,包括通用寄存器的值,內存地址的值等

  6. 改變程序的狀態,包括變量的值,函數的狀態等

GDB 可以用於在主機 PC 的 Linux 系統中調試運行的程序,同時也能用於調試嵌入式硬件,在嵌入式硬件的環境中,由於資源有限,一般的嵌入式目標硬件上無法直接構建 GDB 的調試環境(譬如顯示屏和 Linux 系統等),這時可以通過 GDB + GdbServer 的方式進行遠程 (remote) 調試,通常而言 GdbServer在目標硬件上運行,而 GDB 則在主機 PC 上運行。

GDB 常用指令表

命令 描述
load file 動態連接file
jump 使當前程序跳轉到某一行或某個地址
info br 查看斷點信息
break function 在指定的函數或行號設置斷點
step 進入函數內部
next 執行下一行代碼,但是不進入函數內部
continue 恢復程序運行,直到碰到下一個斷點

常用命令參考鏈接

https://www.cnblogs.com/jasonLiu2018/p/11494214.html
https://www.cnblogs.com/lsgxeva/p/8024867.html

OpenOCD 簡介

為了能夠支持 GDB 對其進行調試, 蜂鳥 E203 使用 OpenOCD 作為其 GdbServer 與 GDB 進行配合。OpenOCD (Open On-Chip Debugger) 是一款開源的免費調試軟件,由社區共同維護,由於其開放開源的特點,眾多的公司和個人使用其作為調試軟件,支持大多數主流的 MCU 和硬件開發板。

GDB 調試

在hbird-e-sdk目錄下執行

1 編譯目標文件

make dasm  PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=flash USE_NANO=1 NANO_PFLOAT=0

2 下載運行

make upload  PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=flash USE_NANO=1 NANO_PFLOAT=0

3 打開OpenOCD,與開發板進行連接

make run_openocd PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=itcm

3 重新打開一個終端並打開GDB

make run_gdb PROGRAM=helloworld BOARD=hbird-e200 CORE=e203 DOWNLOAD=itcm

4 在 GDB 界面進行調試:main函數設置斷點

break main

5 查看斷點信息

info break

6 從程序main入口執行,程序停在第一個斷點處

jump main

7 從斷點處單步調試

n


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM