0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(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)是一個輕量且強(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ù)制至瀏覽器打開

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

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

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

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

步驟二 打開 VS Code 項目工程

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

VS Code 打開后會自動打開 qemu-vexpress-a9 BSP 文件夾,如下圖所示。

步驟三 編譯 RT-Thread

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

編譯完成后輸入.qemu.bat命令就可以運行工程。終端會輸出 RT-Thread 啟動 logo 信息,QEMU 也運行了起來。

注意事項:

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

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

步驟四 修改 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ào)試菜單(小蟲子圖標(biāo)),調(diào)試平臺選擇 Windows,然后按 F5 就可以開啟 QEMU 調(diào)試模式,斷點停留在 main 函數(shù)。VS Code 調(diào)試選項如下圖所示:

QEMU 也運行了起來,如下圖所示。

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

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

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

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

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

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

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

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

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

查看當(dāng)前程序棧的內(nèi)容: x/10x $sp--> 打印 stack 的前 10 個元素查看當(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(不包括浮點寄存器) info all-registers(包括浮點寄存器)查看當(dāng)前棧幀中的異常處理器:info catch(exception handlers)

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

注意事項

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

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

參考

Env 工具使用手冊

常見問題

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

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

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

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

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

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

    關(guān)注

    4

    文章

    3591

    瀏覽量

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

    關(guān)注

    1

    文章

    812

    瀏覽量

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

    關(guān)注

    0

    文章

    707

    瀏覽量

    20880

原文標(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,并運行RT-ThreadGUI示例

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

    如何在Ubuntu平臺使用QEMU運行RT-Threadqemu-vexpress-a9BSP工程?

    本文描述了如何在 Ubuntu 平臺使用 QEMU 運行 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 工程的時候怎么使用 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運行 RT-Thread qemu-vexpress-a9 BSP工程

    摘要本應(yīng)用筆記描述了如何在 Window 及 Ubuntu 平臺使用 QEMU 運行 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運行rt-thread出錯怎么解決呢?

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

    scans編譯qemu-vexpress-a9報錯該如何解決這個問題?

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

    ENV編譯QEMU-vexpress-a9編譯報錯提示沒找到 resource_id.h

    rt-thread-master\\\\bsp\\\\qemu-vexpress-a9 目錄下進(jìn)行sons編譯,但報錯了,提示沒找到 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項目還不支持???
    發(fā)表于 09-07 16:54

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品