0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用VS Code調(diào)試 RT-Thread qemu-vexpress-a9 BSP工程

lPCU_elecfans ? 來源:未知 ? 作者:李倩 ? 2018-09-21 10:16 ? 次閱讀

本應(yīng)用筆記描述了在 Windows 平臺使用 VS Code 調(diào)試 RT-Thread qemu-vexpress-a9 BSP 工程。

本文的目的和結(jié)構(gòu)

本文的目的和背景

VS Code(全稱 Visual Studio Code)是一個(gè)輕量且強(qiáng)大的代碼編輯器,支持 Windows,OS X 和 Linux。內(nèi)置 JavaScript、TypeScript 和 Node.js 支持,而且擁有豐富的插件生態(tài)系統(tǒng),可通過安裝插件來支持 C++、C#、Python、PHP 等其他語言。

本文主要介紹在 Windows 平臺使用 VS Code 調(diào)試 qemu-vexpress-a9 BSP 工程。

本文的結(jié)構(gòu)

本文主要介紹 VS Code 調(diào)試準(zhǔn)備工作以及如何調(diào)試工程。

準(zhǔn)備工作

下載 RT-Thread 源碼,推薦下載3.1.0及以上版本。

下載 RT-Thread Env 工具,推薦下載1.0.0及以上版本。

https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-tool-manual/env/env-user-manual/

下載 VS Code

https://code.visualstudio.com/Download

以上網(wǎng)址請復(fù)制至瀏覽器打開

運(yùn)行和調(diào)試 RT-Thread

步驟一 安裝調(diào)試插件

在 VS Code Extensions 里下載并安裝支持 C/C++ 的調(diào)試插件:

安裝好后確認(rèn)插件為以下狀態(tài),如果不是則點(diǎn)擊重新加載:

步驟二 打開 VS Code 項(xiàng)目工程

在 Env 控制臺進(jìn)入 qemu-vexpress-a9 BSP 根目錄,然后輸入命令code .打開 VS Code。

VS Code 打開后會(huì)自動(dòng)打開 qemu-vexpress-a9 BSP 文件夾,如下圖所示。

步驟三 編譯 RT-Thread

點(diǎn)擊 VS Code “查看 -> 終端” 打開 VS Code 內(nèi)部終端,在終端里輸入命令scons即可編譯工程,終端會(huì)打印出編譯信息。

編譯完成后輸入.qemu.bat命令就可以運(yùn)行工程。終端會(huì)輸出 RT-Thread 啟動(dòng) logo 信息,QEMU 也運(yùn)行了起來。

注意事項(xiàng):

1、調(diào)試 BSP 工程前需要先編譯工程生成 rtthread.elf 文件。

2、可以使用scons --target=vsc -s命令更新 VS Code 需要用到的 C/C++ 頭文件搜索路徑信息。不是每次都需要更新,只有在使用了 menuconfig 重新配置了 RT-Thread 或更改了 rtconfig.h 頭文件時(shí)才需要。

步驟四 修改 qemu-dbg.bat 文件

開始調(diào)試前需要編輯qemu-vexpress-a9目錄下的qemu-dbg.bat文件,在 qemu-system-arm 前加入 start :

@echo offif exist sd.bin goto run qemu-img create -f raw sd.bin 64M :run start qemu-system-arm -M vexpress-a9 -kernel rtthread.elf -serial stdio -sd sd.bin -S -s

步驟五 調(diào)試工程

如下圖所示,在 VS Code 里點(diǎn)擊調(diào)試菜單(小蟲子圖標(biāo)),調(diào)試平臺選擇 Windows,然后按 F5 就可以開啟 QEMU 調(diào)試模式,斷點(diǎn)停留在 main 函數(shù)。VS Code 調(diào)試選項(xiàng)如下圖所示:

QEMU 也運(yùn)行了起來,如下圖所示。

在 VS Code 里可以使用 GDB 命令,需要在最前面加上-exec。 例如-exec info registers命令可以查看寄存器的內(nèi)容:

其他一些主要命令介紹如下所示:

查看內(nèi)存地址內(nèi)容:x/ ,各個(gè)參數(shù)說明如下所示:

n 是一個(gè)正整數(shù),表示需要顯示的內(nèi)存單元的個(gè)數(shù),也就是說從當(dāng)前地址向后顯示幾個(gè)內(nèi)存單元的內(nèi)容,一個(gè)內(nèi)存單元的大小由后面的 u 定義

f 表示顯示的格式,參見下面。如果地址所指的是字符串,那么格式可以是 s。其他格式如下表所示:

u 表示從當(dāng)前地址往后請求的字節(jié)數(shù),如果不指定的話,GDB 默認(rèn)是 4 個(gè) bytes。u 參數(shù)可以用下面的字符來代替,b 表示單字節(jié),h 表示雙字節(jié),w 表示四字 節(jié),g 表示八字節(jié)。當(dāng)我們指定了字節(jié)長度后,GDB 會(huì)從指內(nèi)存定的內(nèi)存地址開始,讀寫指定字節(jié),并把其當(dāng)作一個(gè)值取出來。

addr 表示一個(gè)內(nèi)存地址。

注意事項(xiàng):嚴(yán)格區(qū)分 n 和 u 的關(guān)系,n 表示單元個(gè)數(shù),u 表示每個(gè)單元的大小。

示例:x/3uh 0x54320表示從內(nèi)存地址 0x54320 讀取內(nèi)容,h 表示以雙字節(jié)為一個(gè)單位,3 表示輸出三個(gè)單位,u 表示按十六進(jìn)制顯示。

查看當(dāng)前程序棧的內(nèi)容: x/10x $sp--> 打印 stack 的前 10 個(gè)元素查看當(dāng)前程序棧的信息: info frame----list general info about the frame查看當(dāng)前程序棧的參數(shù): info args---lists arguments to the function查看當(dāng)前程序棧的局部變量: info locals---list variables stored in the frame查看當(dāng)前寄存器的值:info registers(不包括浮點(diǎn)寄存器) info all-registers(包括浮點(diǎn)寄存器)查看當(dāng)前棧幀中的異常處理器:info catch(exception handlers)

Tips:輸入命令時(shí)可以只輸入每個(gè)命令的第一個(gè)字母。例如:info registers可以只輸入i r。

注意事項(xiàng)

如果在 VS Code 目錄中額外添加了文件夾,會(huì)導(dǎo)致調(diào)試不能夠啟動(dòng)。

每次開始調(diào)試都需要使用 Env 工具在 BSP 根目錄使用code .命令打開 VS Code 才能正常調(diào)試工程。

參考

Env 工具使用手冊

常見問題

Env 工具的相關(guān)問題請參考 Env 工具使用手冊的常用資料鏈接小節(jié)。

提示找不到 ‘qemu-system-arm’。

解決方法:直接打開 VS Code 調(diào)試工程會(huì)有這個(gè)錯(cuò)誤,請使用 Env 工具在 BSP 根目錄使用code .命令打開 VS Code 。

VS Code 調(diào)試選項(xiàng)沒有出現(xiàn) Debug@windows選項(xiàng)。

解決方法:請更新RT-Thread源代碼到3.1.0及以上版本。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87885
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    797

    瀏覽量

    30929
  • 生態(tài)系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    694

    瀏覽量

    20648

原文標(biāo)題:【RTOS專欄】使用 VS Code + QEMU 調(diào)試 RT-Thread

文章出處:【微信號:elecfans,微信公眾號:電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何在windows和linux平臺使用RT-Thread QEMU BSP,并運(yùn)行RT-ThreadGUI示例

    開發(fā)板的情況下體驗(yàn)RT-Thread,RT-Thread使用QEMU模擬了ARM vexpress A9開發(fā)板,并提供了相關(guān)的板級支持包(
    的頭像 發(fā)表于 02-08 08:50 ?1.3w次閱讀
    如何在windows和linux平臺使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>QEMU</b> <b class='flag-5'>BSP</b>,并運(yùn)行<b class='flag-5'>RT</b>-ThreadGUI示例

    如何在Ubuntu平臺使用QEMU運(yùn)行RT-Threadqemu-vexpress-a9BSP工程?

    本文描述了如何在 Ubuntu 平臺使用 QEMU 運(yùn)行 RT-Thread qemu-vexpress-a9 BSP 工程
    發(fā)表于 03-30 07:40

    如何在Windows平臺使用VSCode開發(fā)RT-Threadqemu-vexpress-a9BSP工程?

    本文描述了在 Windows 平臺使用 VS Code 開發(fā) RT-Thread qemu-vexpress-a9 BSP
    發(fā)表于 03-30 07:59

    如何在Windows平臺使用VSCode調(diào)試qemu-vexpress-a9BSP工程?

    和 Node.js 支持,而且擁有豐富的插件生態(tài)系統(tǒng),可通過安裝插件來支持 C++、C#、Python、PHP 等其他語言。 本文主要介紹在 Windows 平臺使用 VS Code 調(diào)試
    發(fā)表于 03-30 07:15

    怎么使用Eclipse開發(fā)RT-Thread?

    在 Windows 平臺使用 Eclipse 開發(fā) RT-Thread qemu-vexpress-a9 BSP 工程的時(shí)候怎么使用 Eclipse 開發(fā)
    發(fā)表于 04-02 07:48

    在Windows上使用VS Code開發(fā)RT-Thread qemu-vexpress-a9 BSP工程

    了。本文描述了在 Windows 平臺使用 VS Code 開發(fā) RT-Thread qemu-vexpress-a9 BSP
    發(fā)表于 03-31 18:07

    官方下載rt-thread bsp,qemu-vexpress-a9 bsp出現(xiàn)tcp client編譯不通過如何處理

    官方下載rt-thread bsp,qemu-vexpress-a9 bsp出現(xiàn)tcp client編譯不通過情況。操作流程:menuconfig 配置tcp clientpkgs -
    發(fā)表于 05-05 10:02

    基于RT-Thread ubuntu 18.04系統(tǒng)VSCode調(diào)試qemu程序的介紹

    ;#039;groups':File "/home/tangjia/Jackistang/rt-thread/bsp/qemu-vexpress-a9
    發(fā)表于 06-22 11:31

    如何在Window及Ubuntu平臺使用QEMU運(yùn)行 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本應(yīng)用筆記描述了如何在 Window 及 Ubuntu 平臺使用 QEMU 運(yùn)行 RT-Thread qemu-vexpress-a9 BSP
    發(fā)表于 10-26 15:19

    在Windows平臺使用VSCode調(diào)試 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本應(yīng)用筆記描述了在 Windows 平臺使用 VS Code 調(diào)試 RT-Thread qemu-vexpress-a9
    發(fā)表于 10-26 15:25

    在Windows平臺使用Eclipse調(diào)試RT-Thread qemu-vexpress-a9 BSP工程

    使用 Eclipse 調(diào)試 RT-Thread qemu-vexpress-a9 BSP 工程。本文的結(jié)構(gòu)本文主要介紹了 Eclipse
    發(fā)表于 10-26 15:31

    請教大神qemu模擬cortex-A53運(yùn)行rt-thread出錯(cuò)怎么解決呢?

    新手小白,參考官網(wǎng)文檔運(yùn)行 RT-Thread qemu-vexpress-a9 BSP 工程的方法自己配置了qemu-virt64-aar
    發(fā)表于 02-15 10:51

    scans編譯qemu-vexpress-a9報(bào)錯(cuò)該如何解決這個(gè)問題?

    本人RT_Thread新手,想?yún)⒖冀坛獭对?Window 平臺使用 QEMU 運(yùn)行 RT-Thread》學(xué)習(xí)下RT,但是在scons編譯qemu-v
    發(fā)表于 03-10 11:40

    ENV編譯QEMU-vexpress-a9編譯報(bào)錯(cuò)提示沒找到 resource_id.h

    rt-thread-master\\\\bsp\\\\qemu-vexpress-a9 目錄下進(jìn)行sons編譯,但報(bào)錯(cuò)了,提示沒找到 resource_id.h,如圖
    發(fā)表于 08-04 16:39

    rt-thread studio中創(chuàng)建smart工程,使用qemu-vexpress-a9進(jìn)行編譯失敗了的原因?

    rt-thread studio中創(chuàng)建smart工程,使用qemu-vexpress-a9進(jìn)行編譯,失敗 請問:是不是smart項(xiàng)目還不支持???
    發(fā)表于 09-07 16:54