1、 文檔目標
本文介紹了流行的開源調試解決方案 DAPLink 和 OpenOCD 的情況。
2、 什么是 DAPLink?
Arm Mbed DAPLink 是一個開源軟件項目,一直在 Arm、其合作伙伴、眾多硬件供應商和世界各地的開源社區的大力開發下。
DAPLink 支持對 Arm Cortex CPU 上運行的應用軟件進行編程和調試。DAPLink 通常稱為固件接口,在連接到應用 MCU 的 SWD 或 JTAG 端口。
DAPLink是arm開源的一款燒寫器,硬件電路與 STlink可以兼容,可以用于cortex系列的單片機調試與程序燒寫。V2版本增加串口支持。由于arm開源了整個項目,所以任何人使用DAPLink,都不存在版權的問題。
如果您使用支持 CMSIS-DAP 調試協議的 IDE 進行開發,則是兼容DAPLink 。
3、什么是 OpenOCD?
OpenOCD(即開放片上調試器)是一種用于嵌入式系統開發的功能強大且多功能的開源軟件工具。它具有多種用途,包括針對各種微控制器和處理器的調試、系統內編程和邊界掃描測試。
OpenOCD 支持 JTAG 和 SWD 等各種硬件接口,允許開發人員與嵌入式設備上的軟件進行交互和調試。其靈活性、多架構支持和跨平臺兼容性使其成為嵌入式系統開發人員工具鏈中的寶貴工具,可在開發過程中促進固件編程和邊界掃描測試等任務。
4、OpenOCD 支持 DAPLink 嗎?
是的,OpenOCD 的 master 分支支持它。以下位置有 CMSIS-DAP 的接口配置: interface/cmsis-dap.cfg
驅動程序實現自動檢測以下 DAPLink 設備及其各自的 USB VID/PID 組合:
VID 0xc251: Keil Software
PID 0xf001: LPC-Link-II CMSIS_DAP
PID 0xf002: OPEN-SDA CMSIS_DAP (Freedom Board)
PID 0x2722: Keil ULINK2 CMSIS-DAP
PID 0x2750: Keil ULINKplus CMSIS-DAP
OpenOCD作為服務器,并通過端口3333接受來自GDB的傳入連接或通過端口4444接受來自telnet的傳入連接。GDB用于源文件步驟調試。telnet連接用于刷新。OpenOCD連接到 DAPLINK仿真器。DAPLINK適配器連接到目標
5、OpenOCD command 常用命令
- 適配器命令
“adapter driver ” 命令告訴OpenOCD您正在使用哪種類型的調試適配器,比如DAPLINK/cmsis-dap的驅動器名稱是”cmsis-dap”;
“transport select “通信方式配置,聲明使用SWD/JTAG或其他通信方式,例如為”swd”;
“adapter_khz ” 該命令設置時鐘通信速率,例如5M的為”500″;
- 目標板狀態處理命令(Target state handling)
init 此命令終止配置階段并進入運行階段,如重置目標,編程閃存等需要執行該命令
poll 查詢目標板當前狀態
halt 中斷目標板的運行
resume <address>
恢復目標板的運行,如果指定了<address>
,則從地址開始運行
step <address>
單步執行,如果指定了<address>
,則從地址開始執行一條指令
reset [run|halt|init] run:復位并運行目標; halt:復位并停止目標運行; init:立即停止目標,并執行復位的init腳本
- 編程一個文件默認情況下將執行以下操作:
1. 執行'init'
2. 調用"reset init"
來重置和停止目標
3. 調用"flash write_image"
給指定的文件名擦除和寫入到Flash
4. 調用"verify_image "
對比下載文件是否有誤
5. 調用"reset run"
復位運行程序
6. 退出OpenOCD服務
關于OpenOCD 相關的用戶手冊請參考:
【更多軟件使用問題請站內搜索或關注B站:查看視頻教學】