国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vscode+gcc+jlink調(diào)試mcu程序(用于替代IDE)

這篇具有很好參考價值的文章主要介紹了vscode+gcc+jlink調(diào)試mcu程序(用于替代IDE)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、前言

幾年前寫過一篇類似的文章,那時是用于調(diào)試rtthread系統(tǒng):使用 VSCode、arm-none-eabi-gdb、J-Link GDB Server 調(diào)試RTThread。

當(dāng)時有關(guān)vscode和gcc調(diào)試MCU的文章很少,所以只是寫了個大概。
最近又遇到了類似的問題,網(wǎng)上搜了一些資料,發(fā)現(xiàn)此方面的內(nèi)容已經(jīng)比較成熟了,借鑒了一些資料來完善自己這方面的知識。

參考資料:
1、GD32F307VC+WIN10+VSCODE+GCC+JLINK環(huán)境build。
2、stm32的調(diào)試工具:vscode下jlink或stlink下載及調(diào)試+設(shè)置快捷鍵

二、Makefile配置

基礎(chǔ)Makefile模板使用STM32CubeMX工具生成,為了節(jié)約篇幅,只介紹新增的部分。

  • 2.1、使用jlink下載到sram并運行:
    在Makefile中添加以下規(guī)則:
$(BUILD_DIR)/jlink_flash_file: $(BUILD_DIR)/$(TARGET).bin
	@-rm -fR $@
	@touch $@
	@echo usb >> $@
	@echo si 0 >> $@
	@echo speed 50000 >> $@
	@echo device $(DEVICE) >> $@
	@echo JTAGConf -1,-1 >> $@
	@echo h >> $@
	@echo rx 1 >> $@
	@echo loadbin $< $(LOADADDR) >> $@
	@echo setpc `od -N4 -t x4 -j4 $(BUILD_DIR)/$(TARGET).bin | head -1 | sed -e 's/0000004//g' -e 's/ //g'| tr -d '\n'` >> $@
	@echo g >> $@
	@echo qc >> $@

jlink: $(BUILD_DIR)/jlink_flash_file
# on gitbash
	"D:\Program Files (x86)\SEGGER\JLink\JLink.exe" -commanderscript $<
# on WSL
#	/mnt/d/'Program Files (x86)'/SEGGER/JLink/JLink.exe -commanderscript $<

其中:

  • jlink_flash_file規(guī)則:用于生成JLink.exe使用的配置腳本;

  • DEVICE = CORTEX-M7,MCU使用的是ARM Cortex-M7內(nèi)核;

  • LOADADDR=0x20000000,程序下載到sram的0x20000000處;

  • setpc ,是jlink的內(nèi)置命令,用于設(shè)置PC指針的值,后邊的

    od -N4 -t x4 -j4 $(BUILD_DIR)/$(TARGET).bin | head -1 | sed -e 's/0000004//g' -e 's/ //g'| tr -d '\n'
    

    是通過od命令從bin文件中讀取第4-7字節(jié)處的程序入口地址。

  • 2.2、使用gdb調(diào)試:
    在Makefile中添加以下規(guī)則:

JLinkGDBServer:
	"D:\Program Files (x86)\SEGGER\JLink\JLinkGDBServer.exe" -select USB -device CORTEX-M7 -endian little \
	-if JTAG -speed 50000 -noir -LocalhostOnly -nologtofile -port 2331 -SWOPort 2332 -TelnetPort 2333 &

$(BUILD_DIR)/debug.gdb: $(BUILD_DIR)/$(TARGET).bin
	@-rm -fR $@
	@touch $@
	@echo target remote localhost:2331 >> $@
	@echo monitor reset >> $@
	@echo monitor halt >> $@
	@echo load >> $@
	@echo b main >> $@
	@echo c >> $@

debug: $(BUILD_DIR)/debug.gdb JLinkGDBServer
	$(PREFIX)gdb $(BUILD_DIR)/$(TARGET).elf --command=$(BUILD_DIR)/debug.gdb

其中:

  • JLinkGDBServer規(guī)則:用于啟動JLinkGDBServer.exe;

  • debug.gdb規(guī)則:用于生成gdb的配置腳本;

  • 2.3、生成反匯編:
    在Makefile中添加以下規(guī)則:

$(BUILD_DIR)/%.dis:$(BUILD_DIR)/%.elf
	@-rm -fR $@
	$(DUMP) --all-headers --demangle --disassemble $< > $@

其中,DUMP=arm-none-eabi-objdump

三、使用方法

前提條件:需要一個jlink仿真器,并安裝好jlink工具軟件,本人使用的是這個JLink-Windows工具。

  • 3.1、程序下載到sram并運行
    • 1、將jlink插到電腦上
    • 2、使用vscode打開代碼,打開終端,使用git_bash,執(zhí)行:
    make jlink
    
  • 3.2、使用命令行g(shù)db調(diào)試程序
    • 1、將jlink插到電腦上
    • 2、使用vscode打開代碼,打開終端,使用git_bash,執(zhí)行:
    make debug
    

四、vscode配置文件launch.json

參考自:使用VSCode編譯調(diào)試IAR的stm32工程。

對于習(xí)慣了使用keil、iar等IDE調(diào)試程序的人,可能不習(xí)慣上述的命令行g(shù)db調(diào)試。此時可以借助于vscode來實現(xiàn)類似于IDE調(diào)試的界面,只需配置vscode的launch.json即可。本人實際調(diào)試的配置如下:

{
    // 使用 IntelliSense 了解相關(guān)屬性。 
    // 懸停以查看現(xiàn)有屬性的描述。
    // 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "stm32f4", //程序名
            "type": "cppdbg",
            "request": "launch",
            "targetArchitecture" : "arm", //arm架構(gòu)
            "program": "${workspaceFolder}/stm32f4_project/build/stm32f4.elf", //編譯生成的elf文件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Program Files\\gcc-arm-none-eabi-10.3-2021.10\\bin\\arm-none-eabi-gdb.exe", //gdb的安裝路徑
            //"miDebuggerServerAddress": "localhost:2331",
            "setupCommands" : [
                {
                    "text" : "target remote localhost:2331" //連接目標(biāo)設(shè)備
                },
                {
                    "text" : "monitor reset" //復(fù)位目標(biāo)設(shè)備
                },
                {
                    "text" : "monitor halt" //停止目標(biāo)設(shè)備
                },
                {
                    "text" : "file E:/code/stm32f4_project/build/stm32f4.elf" //編譯生成的elf文件
                },
                {
                    "text" : "load" //加載elf文件
                },
                {
                    "text" : "b main" //在main函數(shù)打斷點
                }
            ],
        }
    ]
}

按上述配置后:文章來源地址http://www.zghlxwxcb.cn/news/detail-545771.html

  • 1、先在git bash執(zhí)行下面的命令,打開JLinkGDBServer:
    make JLinkGDBServer
    
  • 2、點擊vscode的Run->Start Debugging,即可像IDE一樣在vscode中調(diào)試代碼了。

到了這里,關(guān)于vscode+gcc+jlink調(diào)試mcu程序(用于替代IDE)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 0505-stm32的調(diào)試工具:vscode下jlink或stlink下載及調(diào)試+設(shè)置快捷鍵

    0505-stm32的調(diào)試工具:vscode下jlink或stlink下載及調(diào)試+設(shè)置快捷鍵

    目錄 1.1-綜述 2-vscode實現(xiàn)一鍵下載stm32 2.1-jlink的下載與擦除的makefile修改 2.2-stlink的下載與擦除的makefile修改 ?2.3-提升一點效率:使用tasks.json配置用戶任務(wù)(下拉菜單) 1-tasks.json干啥用的 2-如何創(chuàng)建tasks.json? ?3-tasks.json的文件編輯 4-tasks的使用方法 ?2.4-再提升一點效率:使用

    2024年02月13日
    瀏覽(31)
  • 在VSCode平臺上使用Embedded IDE搭建單片機開發(fā)環(huán)境

    在VSCode平臺上使用Embedded IDE搭建單片機開發(fā)環(huán)境

    本文介紹了如何在VSCode平臺上通過Embedded IDE插件搭建單片機開發(fā)環(huán)境,包括軟件安裝、插件配置、編譯器安裝和項目構(gòu)建等步驟。

    2023年04月08日
    瀏覽(22)
  • 【Jlink燒錄自動化】一臺電腦連接 多個Jlink 用 J-flash批處理程序燒寫多個單片機(生產(chǎn)批量燒錄)

    【Jlink燒錄自動化】一臺電腦連接 多個Jlink 用 J-flash批處理程序燒寫多個單片機(生產(chǎn)批量燒錄)

    最近一些設(shè)備需要進(jìn)行預(yù)生產(chǎn)(小批量生產(chǎn)),雖然是小批量但是數(shù)量也是很多,單靠人力燒錄設(shè)備比較耗費時間 因此需要做一個燒錄治具批量燒錄。 軟件 由于設(shè)備的MCU是arm cortex M4內(nèi)核,使用的是Jlink燒錄因此要安裝 Segger Jlink 安裝之后開J-flash 物料準(zhǔn)備 由于要一次燒錄多

    2024年01月17日
    瀏覽(43)
  • VSCode配置C/C++環(huán)境,編輯(VSCode)+ 編譯(MinGW->GCC)+ 調(diào)試(MinGW->GBD)

    VSCode配置C/C++環(huán)境,編輯(VSCode)+ 編譯(MinGW->GCC)+ 調(diào)試(MinGW->GBD)

    ??直接去官網(wǎng)下載并安裝即可:https://code.visualstudio.com/。注意:VSCode只是編輯器,可以看代碼,編輯代碼,但不能編譯代碼。 ??如果說VSCode可以實現(xiàn)代碼編輯,MinGW則可以實現(xiàn)代碼編譯和調(diào)試,其中編譯功能是通過MinGW中的GCC實現(xiàn)的(生成一個.exe文件),調(diào)試功能則是通

    2024年02月07日
    瀏覽(23)
  • 【單片機學(xué)習(xí)筆記】Windows+Vscode+STM32F4+freeRTOS+FatFs gcc環(huán)境搭建

    【單片機學(xué)習(xí)筆記】Windows+Vscode+STM32F4+freeRTOS+FatFs gcc環(huán)境搭建

    為摒棄在接受keil郵件,研究了下gun編譯,以STM32F407為例,簡單記錄 Git 選擇對應(yīng)版本直接安裝即可https://git-scm.com/download/win make gcc ? 1)將上述軟件包放置于C盤根目錄 2)添加環(huán)境變量 3)cmd命令行測試環(huán)境 分別輸入 啟動文件及LD文件 目錄路徑表示問題 字節(jié)對齊及指定位置存

    2024年02月07日
    瀏覽(36)
  • Vscode搭建開發(fā)調(diào)試STM32/RISC-V環(huán)境IDE(最全面)

    Vscode搭建開發(fā)調(diào)試STM32/RISC-V環(huán)境IDE(最全面)

    單片機開發(fā)IDE環(huán)境如KeilMDK,雖然操作簡單 ,方便調(diào)試。但就是代碼編輯風(fēng)格很老套,中文符號亂碼還是常有的事。而如今流行的vscode編輯器很不錯,免費且相當(dāng)輕量級,用來代碼開發(fā)體驗很不錯,看著都舒服。Clion IDE體驗更好,但就是它不免費且體積較大。Stm32cubeIDE生成工

    2024年02月16日
    瀏覽(37)
  • 【Linux】使用gcc調(diào)試程序

    【Linux】使用gcc調(diào)試程序

    ????【Liunx學(xué)習(xí)記錄篇】-持續(xù)更新中~???? 篇一:【Linux】VMware安裝unbuntu18.04虛擬機-超詳細(xì)步驟(附鏡像文件) 篇二:【Linux】ubuntu18.04系統(tǒng)基礎(chǔ)配置及操作 篇三:【Linux】用戶與組的操作詳細(xì)介紹 篇四:【Linux】管理Linux文件權(quán)限屬性介紹 篇五:【Linux】使用數(shù)字表示法和

    2024年02月05日
    瀏覽(21)
  • 使用gcc 工具鏈開發(fā)單片機程序,怎么查看內(nèi)存映像

    一、概述 1.1 功能 1.2 命令格式 1.3 支持的目標(biāo)文件 二、基本應(yīng)用示例 2.1 查看單個對象文件 2.2 查看整個工程的內(nèi)存映像 三、命令選項描述 3.1 以不同的進(jìn)制格式顯示內(nèi)存映像 示例:以十六進(jìn)制格式顯示 3.2 不同的輸出方式 3.2.1 可選的表示方式與對應(yīng)的選項 3.2.2 -A (–format=

    2024年01月19日
    瀏覽(21)
  • STM32CubeMX+Eclipse+gcc+Jlink 實現(xiàn)STM32開發(fā)環(huán)境搭建

    STM32CubeMX+Eclipse+gcc+Jlink 實現(xiàn)STM32開發(fā)環(huán)境搭建

    本節(jié)記錄通過STM32CubeMX+Eclipse+gcc+Jlink 進(jìn)行STM32環(huán)境搭建的過程; 參考: https://blog.csdn.net/qq_35787848/article/details/124395509 https://blog.csdn.net/cyf1294311560/article/details/127115730 1、我這邊已經(jīng)裝好了STM32CubeMX、Eclipse、ARM gcc環(huán)境、JLINK等;如果你沒有安裝,請進(jìn)行安裝; 2、我這邊已經(jīng)安裝

    2024年02月16日
    瀏覽(20)
  • 第1章_瑞薩MCU零基礎(chǔ)入門系列教程之單片機程序的設(shè)計模式

    第1章_瑞薩MCU零基礎(chǔ)入門系列教程之單片機程序的設(shè)計模式

    本教程基于韋東山百問網(wǎng)出的 DShanMCU-RA6M5開發(fā)板 進(jìn)行編寫,需要的同學(xué)可以在這里獲?。?https://item.taobao.com/item.htm?id=728461040949 配套資料獲?。篽ttps://renesas-docs.100ask.net 瑞薩MCU零基礎(chǔ)入門系列教程匯總 : https://blog.csdn.net/qq_35181236/article/details/132779862 本章目標(biāo) 理解裸機程序設(shè)

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包