vscode + Jlink 一鍵調試stm32 單片機程序(windows系統版)

vscode + Jlink 一鍵調試stm32 單片機程序

  • 安裝交叉編譯工具鏈
  • 安裝 x-pack 構建工具
  • 安裝 JLink 工具
  • gnu-debuger 插件
  • 編譯
  • 一鍵啟動調試

安裝交叉編譯工具鏈

stm32采用 交叉編譯工具鏈 arm-none-eabi-xxx, 下載之后解壓,壓縮包內部結構如下圖:在這里插入圖片描述
目錄下的bin 就是交叉編譯工具鏈的可執行文件地址
在這里插入圖片描述
將壓縮包拷貝到C盤,并將該交叉編譯工具鏈的路徑添加到環境變量PATH中
在這里插入圖片描述
在 powershell 中執行 arm-none-eabi-5.4.1-gcc.exe --version 有如下打印則表示安裝正確
在這里插入圖片描述

安裝 x-pack 構建工具

xPack Windows Build Tools 是一個專為Windows環境設計的軟件包,能用來在 windows 下構建交叉編譯程序。安裝該工具之后,設置環境變量,終端中可以使用make 工具構建代碼。
在這里插入圖片描述
在這里插入圖片描述

安裝 JLink 工具

Jlink 工具是一款廣泛用于調試單片機程序的調試工具,官網下載安裝好后,設置環境變量,在終端中可以運行程序。
在這里插入圖片描述
在這里插入圖片描述
JLink 有一系列工具,其中 JFlash 可以用于讀寫單片機中的falsh,用于下載執行程序,JLinkGDBServer.exe 和 JlinkDGBServerCL.exe 分別是圖形界面的調試服務端程序命令行調試服務端程序。其中 JFlash 可以使用命令行下載程序,使用方法為:JFlash.exe -openprjC:\stm32f405zg.jflash -openD:\path\base_app_test.bin,8010000 -auto -startapp -exit -jflashlogdownload

gnu-debuger 插件

gnu-debuger 插件是一款輕量化單片機程序調試插件,其借助 arm-none-eabi-gdb.exeJlinkDGBServerCL.exe兩個工具,實現單片機程序的一鍵下載調試。
在這里插入圖片描述
一鍵安裝好插件之后,在工作空間中新增一個launch.json 文件,在文件中添加如下的配置:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "gnu-debugger","request": "launch","name": "GNU debugger","program": "${workspaceFolder}\\path\\run_test.elf","toolchain": "","client": "arm-none-eabi-gdb.exe","server": "JLinkGDBServer","windows": {"server": "JLinkGDBServerCL.exe",},"serverArgs": ["-if", "SWD","-device", "STM32F407IG","-endian", "little","-speed", "1000","-port", "2331","-vd","-ir","-localhostonly", "1","-singlerun","-strict","-timeout", "0"],"serverPort": 2331,"serverHost": "localhost","customVariables": ["port0","port1","port2",],"autoRun": false,"debugOutput": false}]
}

其中 type 指選用的調試器是 gnu-debugerprogram 帶調試信息的執行文件;toolchain 是交叉編譯工具鏈的執行文件路徑,因為之前已經將交叉編譯工具鏈的路徑添加到 Path環境變量中了,所以這里填空;client 是指選用的gdb調試器是arm-none-eabi-gdb.exeserver表示選用的gdb server ,這里采用 JLinkGDBServerwindows 表示Windows系統中采用 JLinkGDBServerCL.exe 命行工具作為server程序;其他剩余參數都是 JLinkGDBServerCL.exe 的執行參數。

編譯

使用 stm32 cube 生成的工程,在vscode 終端直接執行make,便可以根據makefile完成工程的編譯。
在這里插入圖片描述

一鍵啟動調試

在這里插入圖片描述
點擊 左上角的 三角形,會下載程序到單片機中,點擊執行會進入斷點。
在這里插入圖片描述
在終端的下方可以輸入 gdb 的命令,比如 info breaks 可以查看所有的斷點。delete 1 可以刪除第一個斷點。
在這里插入圖片描述
在左上角輸入 變量查看框內,可以切換變量值的顯示形式,輸入 0x 以16進制顯示變量,輸入 0b 以二進制顯示變量,更多用法如下:

0b = binary
0o = octal
0d = decimal
0x = hexadecimal
0n = natural (back to GDB default output format)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/911754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/911754.shtml
英文地址,請注明出處:http://en.pswp.cn/news/911754.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux線程概念和控制

Linux線程概念 Linux中線程如何理解 線程<執行流<進程 Linux中的線程模擬進程實現&#xff08;線程就是輕量級進程&#xff09; 與獨立的進程相比&#xff0c;線程創建和銷毀的開銷較小&#xff0c;因為它們共享相同的內存空間和資源。 線程是進程內的執行分支&…

服務器出現問題,連接服務器出現3680 并刪除數據庫出現1192,請查看詳細問題(運維)

mysql連接服務器時&#xff0c;出現這個問題&#xff1a;3680 - Failed to create schema directory xxxx (errno: 28 - No space left on device) 第一步&#xff1a;診斷問題類型 檢查磁盤空間 運行以下命令&#xff1a; bash df -h # 查看磁盤使用情況 如果輸出中 Use% 接…

uniapp:微信小程序膠囊「復制鏈接」灰色處理

在原生開發的小程序中默認是支持復制的 &#x1f424; 但是在 uniapp 開發的小程序中無法復制&#xff08;體驗版與開發版都可以進行復制&#xff0c;但發布后不可&#xff09; 解決方法&#xff1a; methods: {onShareAppMessage: function() {// return custom share data …

差分數組c++

溫度波動記錄 每天記錄溫度&#xff0c;支持區間溫度調整和單日查詢 輸入&#xff1a; 第一行&#xff1a;一個整數n表示有n個溫度 第二行&#xff1a;n個數表示具體溫度 第三行&#xff1a;三個整數&#xff1a;S&#xff0c;e&#xff0c;c&#xff0c;表示從…

Vue.js 列表過濾實現詳解(watch和computed實現)

Vue.js 列表過濾實現詳解 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthd…

性能測試-jmeter實戰4

課程&#xff1a;B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰4 jmeter環境搭建1. 安裝Java環境&#xff08;必需&#xff09; JMeter環境搭建完整指南1. 安裝Java&#xff0…

GPPT(Graph Pre-training and Prompt Tuning)項目復現

GPPT(Graph Pre-training and Prompt Tuning)項目復現 項目概述 GPPT是一種創新的圖神經網絡預訓練與提示調整框架,由MingChen-Sun等人提出。該項目通過將自然語言處理中的提示學習概念引入圖領域,解決了圖預訓練模型在下游任務中的適應性問題。 環境配置 # 創建Python…

anchor 智能合約 IDL 調用

簡介&#xff1a;通過 IDL 生成代碼 調用 anchor 智能合約。 全網首發 使用 anchor 可以快速開發 solana 上面的智能合約 &#xff0c; 在本案例中我們 先使用 anchor 創建一個只能合約&#xff08; 多個函數方法&#xff09;。 部署到 dev 鏈上。 通過 anchor 的 IDL 生成 代碼…

【Clickhouse系列】事務

目錄 1. 標準 ACID 支持場景 (MergeTree 引擎家族) 2. 非 ACID 場景 3. 實驗性事務功能 (非云環境) 總結 參考文檔 事務性 (ACID) 支持 | ClickHouse Docs ClickHouse ACID 支持核心要點 1. 標準 ACID 支持場景 (MergeTree 引擎家族) ? 單分區插入 (原子塊) ? ? 原子性…

在cursor中,配置jdk和maven環境,安裝拓展插件

目錄 1.手動配置jdk和maven 2.安裝java拓展插件 1.手動配置jdk和maven 第一步&#xff1a;按ctrl shift p, 搜索“Preferences: Open User Settings (JSON)” 并回車&#xff0c;打開 settings.json 文件 。然后添加或修改以下內容&#xff1a; "java.home": &qu…

(線性代數最小二乘問題)Normal Equation(正規方程)

Normal Equation&#xff08;正規方程&#xff09; 是線性代數中的一個重要概念&#xff0c;主要用于解決最小二乘問題&#xff08;Least Squares Problem&#xff09;。它通過直接求解一個線性方程組&#xff0c;找到線性回歸模型的最優參數&#xff08;如權重或系數&#xff…

在架構設計中平衡動態語言與靜態語言部署差異的策略分析

在軟件架構設計過程中&#xff0c;語言的選型不僅僅關乎開發效率&#xff0c;更直接影響系統的部署速度、運行性能與維護成本。動態語言&#xff08;如 Python、Node.js&#xff09;部署快、開發靈活&#xff1b;靜態語言&#xff08;如 Go、Java、Rust&#xff09;性能強、類型…

我的VSCode中那些插件

前言 最近在研究VUE.JS&#xff0c;而VUE官方推薦使用VSCode作為開發工具&#xff0c;因此最近才開始大量使用這個工具。在使用過程中&#xff0c;總會遇到一些視頻博主推薦某某插件&#xff0c;于是我都將其安裝在我的VSCode上。這里記錄一下&#xff0c;僅供參考。 插件列表…

C# 時間格式日期格式使用合集

一、常用整理 C#時間使用整理,DateTime 使用整理_c#時間格式-CSDN博客 C# 本地時間格式&#xff0c;UTC時間格式&#xff0c;GMT時間格式處理 二、 C#如何獲取今天零點的時間 C# 獲取周一、周日 三、 C#計算兩個時間年份月份差 C#時間點字符串轉換為日期&#xff0c;當…

Ribbon負載均衡的具體實現原理

Ribbon 是 Netflix 開源的一款客戶端負載均衡工具&#xff0c;廣泛應用于微服務架構中&#xff0c;用于在客戶端選擇目標服務實例。 以下是 Ribbon 負載均衡的具體實現原理&#xff1a; 1. 什么是 Ribbon Ribbon 是一個客戶端負載均衡器&#xff0c;負責從服務注冊中心&#…

iOS APP上架App Store實踐:通過自動化流程和輔助工具高效提

在現代開發流程中&#xff0c;持續集成&#xff08;CI&#xff09;已經成為必不可少的環節。對于iOS應用的開發與發布&#xff0c;持續集成不僅限于構建過程&#xff0c;還應該涵蓋從代碼提交到版本發布的整個生命周期。然而&#xff0c;由于iOS平臺對開發環境的限制&#xff0…

3443. K 次修改后的最大曼哈頓距離

3443. K 次修改后的最大曼哈頓距離 題目鏈接&#xff1a;3443. K 次修改后的最大曼哈頓距離 代碼如下&#xff1a; class Solution { public:int maxDistance(string s, int k) {int res 0;// 定義一個大小為 X&#xff08;88&#xff09;的數組&#xff0c;并初始化為 0int…

【Ubuntu】Windows11安裝虛擬機超詳細圖文教程(VMware17.6.1 + ubuntu-24.04.2)

目錄 前言 一、準備工作 1、工具安裝包 2、獲取方式 3、本人的電腦安裝環境介紹 二、虛擬機磁盤分區&#xff08;可選&#xff09; 1、分區助手安裝 2、為虛擬機準備一個單獨的磁盤分區 三、VMware安裝 四、ubuntu鏡像安裝 1、Ubuntu鏡像iso文件加載引導 2、Ubuntu…

計算機視覺(Computer Vision, CV)

目錄 一、核心任務 二、常見應用場景 三、主流技術框架與工具 四、熱門算法簡述 五、發展趨勢 六、計算機視覺學習路線圖&#xff08;從入門到實戰&#xff09; 1.階段總覽 2.學習路徑詳解 階段一&#xff1a;CV入門基礎 學習目標&#xff1a; 推薦內容&#xff1a;…

使用Dagster資產工廠模式高效管理重復ETL任務

本文介紹了如何利用Dagster的資產工廠模式來高效管理和自動化重復的ETL&#xff08;提取、轉換、加載&#xff09;任務。通過Python函數和YAML配置文件的結合&#xff0c;我們可以輕松地創建和管理大量相似的資產&#xff0c;同時提高代碼的可維護性和可配置性。文章還探討了如…