1. 程式人生 > >使用 OpenOCD 進行單步除錯

使用 OpenOCD 進行單步除錯

雖然不喜歡進行單步除錯,但是不可否認它的重要性,所以也嘗試了一下,以幫助後來有需要的小夥伴。

關於 ESP32 的更多部落格,請檢視 【ESP32 系列部落格 - 目錄

【安裝 OpenOCD】

本人使用的是 Linux 環境,所以第一步請按照你的平臺所對應的方法安裝 OpenOCD,然後再繼續後續操作。

為了更好地適配 ESP32,樂鑫對 OpenOCD 進行了一些改動,所以我們必須通過原始碼安裝 OpenOCD,這會顯得略微有點複雜。否則的話,直接一條命令 sudo apt-get install openocd 就能進行安裝。

先從樂鑫官方的 GitHub 倉庫下載原始碼:

git clone --recursive https://github.com/espressif/openocd-esp32.git && cd openocd-esp32

OpenOCD 依賴於 libftdi 和 libusb 這兩個庫,否則再執行 ./configure 時將會報錯。使用如下的命令進行安裝:

sudo apt-get install libftdi-dev libusb-1.0-0-dev

然後檢查依賴包、編譯、安裝:

./bootstrap
./configure --enable-openjtag_ftdi
make && sudo make
install

注意,執行完make命令後,會在相對當前目錄下生成可執行檔案src/openocd。 如果你的系統中已安裝了其它版本的 OpenOCD,則不要執行後面的 sudo make install 命令進行安裝,因為它會覆蓋你之前的版本。不過如果是這樣的話,每次執行 openocd 命令的時候需要使用它的絕對或相對路徑(而不要用環境變數中的 openocd)。

【配置 OpenOCD】

通常,OpenOCD 執行時需要使用兩個配置檔案。
ESP-IDF 裡面包含了一個預設的配置檔案,具體路徑是 $IDF_PATH/docs/api-guides/esp32.cfg。我使用的 JTAG 介面卡是 Jlink,所以我將該配置檔案裡面的這一行改成這樣了:

#source [find interface/ftdi/tumpa.cfg]
source [find interface/jlink.cfg]

【硬體接線】

TDI --- 18 --- SD3
TDO --- 21 --- SD0
TCK --- 20 --- CLK
TMS --- 17 --- SD2
GND ---------- GND

【使用命令列進行單步除錯】

【使用 Eclipse 進行單步除錯】

【參考文件】

相關推薦

使用 OpenOCD 進行除錯

雖然不喜歡進行單步除錯,但是不可否認它的重要性,所以也嘗試了一下,以幫助後來有需要的小夥伴。 關於 ESP32 的更多部落格,請檢視 【ESP32 系列部落格 - 目錄】 【安裝 OpenOCD】 本人使用的是 Linux 環境,所以第一步請按照

第九課 如何在Remix環境下進行Solidity程式碼除錯

1. 文章摘要 【本文目標】 本文目標是指導如何使用REMIX完成一次智慧合約交易除錯。 【前置條件】 學習過Solidity語言,需要進行除錯。 【技術收穫】 1). 使用REMIX進行單步除錯 2). REMIX的Debugger介面介紹 【說明】未列出

STM32CubeMX生成基於Eclipse的GCC工程(一)(工程模板用Jlink進行SWD除錯

首先,新建STM32Cube工程,在SYS選單下選擇 Serial Wire。 進入工程選單下的設定介面更改Toolchain/IDE為TrueSTUDIO 點選工程-生成程式碼,可以看到生成的檔案 接下來新建一個eclipse空的C工程 新建工程成功後,把STM3

vs2010中進行ffmpeg編譯與除錯

本文在win7 x64系統上實踐後總結得到 1、  下載檔案 2、  安裝MinGW,安裝的時候一定要選中msys,否則要另外下載安裝msys,如果不知道該安裝哪些選項,可選中Basic Setup中所有右邊選項進行安裝,如下圖1所示,然後選擇Installat

利用web work實現多執行緒非同步機制,打造頁面除錯IDE

我們已經完成了整個編譯器的開發,現在我們做一個能夠單步除錯的頁面IDE,完成本章程式碼後,我們可以實現下面如圖所示功能: 頁面IDE可以顯示每行程式碼所在的行,單擊某一行,在改行前面會出現一個紅點表示斷點,點選Parsing按鈕後,進入單步除錯模式,然後每點一次step按鈕,頁

Dev C++除錯/debug詳細圖解

dev下載 拿當前藍橋杯所使用的5.4.0版本Dev C++舉例 藍橋杯官網下載地址 只能安裝一個版本的dev 如果之前安裝過需要先解除安裝原有版本 舉例 來一道簡單的題輸入兩個整數A, B 輸出A+B的和 資料保證輸入的A和B都在int範圍內 既然是int就拿int變數存了,附

設定VS201X release模式下可除錯

在vs Debug模式下可以對程式碼進行單步除錯,檢視結果。release模式下是否也可以進行除錯呢? 答案是:yes! 下面以vs2012為例,設定release模式進行單步除錯: 1.專案---右鍵---屬性 2.配置選擇 release 3.c/c++---常規--

gdb除錯

1 簡介 GDB(GNU Debugger)是GCC的除錯工具。其功能強大,現描述如下: GDB主要幫忙你完成下面四個方面的功能: 1.啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。 2.可讓被除錯的程式在你所指定的調置的斷點處停住。(斷點可以是條件表示式)

Golang 除錯利器 — Delve

除錯首先,我們用下面的程式當作範例:存檔成為 delve-demo.go接著,在 console 使用 dlv debug <filename>將 delve 跑起來:$ dlv debug delve-demo.go你會看到下面的訊息:$ dlv debug delve-demo.go

Opencv輪廓跟蹤演算法原始碼分析並實現除錯——icvFetchContour()

首先分析要除錯的圖的特性,使用畫圖工具手動定位到外輪廓的”起始點“在(77,126) 原圖如下: 呼叫的修改後的fushuwu_icvFetchContour()的實參如下: int main() { Mat img0 = imread("d:/test_co

【要不,除錯走起?】博主技術方面回憶錄

專欄達人 授予成功建立個人部落格專欄

PHP+wampServer+phpStorm + xdebug 除錯

在這裡我們使用的是postman模擬post請求方式,使用phpStorm編輯器,使用wampserver作為開發環境,進而來使用xdebug進行單步除錯的。 首先wampserver在低版本的時候是沒有xdebug這個擴充套件的,但是到了高版本(php 5.

關於 MonoDevelop on Linux 除錯問題的解決

在 MonoDevelop 中預設是關閉對外部程式集(.dll)的除錯,可通過如下步驟來解決這個問題。 通過選單【Edit】-【Preferences】-【Debugger】進入到偵錯程式的設定頁,把“Debug project code only; do not step into frame

為何F8是灰色的?除錯不了呀? code blocks裡面 build options是灰色一直點不了。 有編譯器/// 在用codeblocks反編譯的時候可能會遇到這樣的問題。

為何F8是灰色的?單步除錯不了呀? code blocks裡面 build options是灰色一直點不了。 有編譯器/// 在用codeblocks反編譯的時候可能會遇到這樣的問題。 這是因

微信小程式裡面的除錯和變數檢視

在微信小程式開始學習與開發的過程中,總有一些東西,想看看它跑起來的內容與我們程式設計時想的是否一致,於是就想到了能不能單步除錯或者打出一些我們想要的變數的內容,以便我們做進一步的開發和調整,現在我就要介紹下微信小程式的一般用到的除錯方法和列印日誌以及看到變數裡面的執行值。

Java虛擬機器原理分析之Win10下VS2017編譯OpenJDK8與除錯HotSpot VM過程詳細記錄

在上一篇文章《Java虛擬機器原理分析之Win7下VS2010編譯OpenJDK8與單步除錯HotSpot VM過程詳細記錄》中,我們在Win7+VS2010環境下成功編譯出了x86版本的OpenJDK。然而VS2010畢竟有些年頭了,我也只是在開發機上才裝了這

pycharm 不能除錯(debug)的原因,或者點選debug不能進入斷點。debug區域是灰色的

如上圖,不要點選pycharm右上角的Debug,那樣不能進入除錯(在多個py檔案都存在的情況下),找到程式的入口點出(if __name == "__main__),會有上圖所示一個三角符號,點選後,出來上圖兩個選項,點選Debug'ecs'即可(ecs是我的.py檔名字)

codeblocks除錯詳解

首先安裝codeblock,自行百度。  有的codeblock裡面沒有GUU編輯器,百度下載一個編輯器,關於編輯器的安裝檢視百度經驗即可。 1.建立工程,注意,路徑一定是英文的。   一般新手直接選空專案就可以了。 2.要做c或者c++的專案

UNIX v6原始碼分析除錯之二:除錯系統程式碼 main函式之 kinit1

    環境搭建完成,該學習Main.c的main函數了。先貼上main函式的實現。int main(void) { kinit1(end, P2V(4*1024*1024)); // phys page allocator kvmalloc(); // k

Dev-C++除錯方法

前言 最近在看FishC大佬的C++教程,遇到一堆問題,慢慢寫吧。 如何使用Dev-C++軟體除錯 除錯程式如下: #include <stdio.h> #include <stdlib.h> void main() { int i;