色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在QEMU/aarch64上完成smart用戶態應用的運行并使用VSCode進行調試

冬至子 ? 來源:boat7 ? 作者:boat7 ? 2023-09-18 16:29 ? 次閱讀

環境:Ubuntu20.04

xmake安裝

sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake

下載源碼

用戶態應用程序

rt-thread

QEMU安裝

首先安裝必要依賴:

sudo apt-get install -y libglib2.0-dev libpixman-1-dev

安裝qemu:

sudo dpkg -i ./tools/qemu/qemu_7.1.0-2022111713_amd64.deb

編譯

首先需要更新環境變量

source env.sh

進入apps目錄進行編譯

cd apps/
// notes:這里注意如果是linux平臺下需要先安裝解壓縮工具,下面為7zip的下載方式
sudo add-apt-repository universe
sudo apt update
sudo apt install p7zip-full p7zip-rar
xmake f -a aarch64 //選擇目標平臺為aarch64
xmake -j8

1.jpg

鏡像制作

運行xmake smart-rootfs制作rootfs,運行xmake smart-image制作鏡像

xmake smart-rootfsxmake smart-image -o ../prebuilt/qemu-virt64-aarch64/ext4.img # 將鏡像輸出至 qemu-virt64-aarch64 目錄

運行qemu

進入userapp/prebuilt/qemu-virt64-aarch64,運行run.sh腳本啟動qemu

1.jpg

運行用戶態應用

1.jpg

使用VSCode調試用戶態應用

準備工作

下載源碼(如上)

安裝VSCode:安裝VSCode并安裝C/C++擴展插件

$ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
$ sudo apt-get update
$ sudo apt-get install ubuntu-make
$ umake ide visual-studio-code

提示輸入 a 即可

安裝內核編譯工具

編譯內核的時候需要用到 aarch64-linux-musleabi- 工具鏈
環境變量配置為:

export RTT_CC="gcc"
export RTT_EXEC_PATH="/opt/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin"
export RTT_CC_PREFIX="aarch64-linux-musleabi-"
export PATH="**RTT_EXEC_PATH:**PATH"
安裝scons:

sudo apt-get install scons
安裝xmake:

sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake
安裝gdb-multiarch:

sudo apt-get install gdb-multiarch
編譯userapps與內核
在 userapps 中,編譯 app:

用戶態的應用用xmake編默認沒有調試符號

cd apps
xmake f -m debug -a aarch64 # 配置為 aarch64 平臺,并指定debug模式,就有調試信息
xmake -j8
制作鏡像:

xmake smart-rootfs
xmake smart-image -o ../prebuilt/qemu-virt64-aarch64/ext4.img # 將鏡像輸出至 qemu-virt64-aarch64 目錄
基于 rt-thread 倉庫的 qemu-virt64-aarch64 構建內核鏡像:

選擇 RT-Thread Kernel 選項

使能Smart內核

在該目錄下執行scons編譯

將生成的內核鏡像 rtthread.bin 和 rtthread.elf 更新到 userappsprebuiltqemu-virt64-aarch64 目錄中。

使用命令 ./run.sh,測試 qemu 正常運行后,使用 ctrl a,x 結束運行。

VSCode配置

要想使用VSCode配置用戶態應用,需要先在工程路徑下添加調試配置

首先在 userapps 目錄下使用命令 code .,使用 VSCode 打開該目錄。

在 userapps 目錄下創建launch.json ,如下所示(需要更新實際的 gdb 路徑):

{
"version": "0.2.0",
"configurations": [
{
"name": "Debug smart @ Linux",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": true,
"externalConsole": true,
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/apps/build/rootfs/bin/smart-fetch",
"serverLaunchTimeout": 2000,
"miDebuggerPath":"/usr/bin/gdb-multiarch",
"miDebuggerServerAddress": ":1234",
"setupCommands": [
{
"text": "cd ${workspaceRoot}"
},
{
"text": "file ${workspaceRoot}/apps/build/rootfs/bin/smart-fetch"
},
{
"text": "break main"
}
],
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run"
},
]
}
launch.json 配置文件中的 smart-fetch,改為自己要調試的應用。

如果上述配置 launch.json 的文件無法進行調試,那就使用以下配置:

{
"version": "0.2.0",
"configurations": [
{
"name": "aarch64-debug",
"type": "cppdbg",
"request": "launch",
"miDebuggerPath": "/usr/bin/gdb-multiarch",
"program": "${workspaceFolder}/rtthread.elf",
"setupCommands": [
{
"description": "為 gdb 啟用整齊打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"text": "target remote localhost:1234"
},
{
"text": "restore ${workspaceFolder}/rtthread.elf"
}
],
"launchCompleteCommand": "None",
"cwd": "${workspaceFolder}"
}
]
}

launch.json 配置文件中的 rtthread.elf,改為自己要調試的應用。

調試用戶態應用

這部分開始正式調試用戶態應用,具體步驟如下:

修改run.sh腳本,在腳本里添加-s -S

1.jpg

在 VSCode 終端輸入 ./run.sh,如果調試的是內核,可以看到啟動過程被掛起,等待調試前端來連接。

在 VSCode 中按下 F5 開始調試內核,可以看到應用的源碼文件被打開,運行的代碼將停在斷點處。

1.jpg

如果調試的是用戶態應用,我們以smart_fetch為例,在VSCode終端輸入./run.sh,并按下F5開始調試,選擇要運行的用戶態應用,運行的代碼將停在斷點處

1.jpg

后續就可以單步調試用戶態應用了。單步運行后,應用代碼執行的打印將顯示在終端上。

1.jpg

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C++語言
    +關注

    關注

    0

    文章

    147

    瀏覽量

    7002
  • LINUX內核
    +關注

    關注

    1

    文章

    316

    瀏覽量

    21664
  • Ubuntu系統
    +關注

    關注

    0

    文章

    91

    瀏覽量

    3982
  • RTThread
    +關注

    關注

    8

    文章

    132

    瀏覽量

    40900
  • gdb調試器
    +關注

    關注

    0

    文章

    10

    瀏覽量

    1103
收藏 人收藏

    評論

    相關推薦

    ARMv8中aarch64aarch32是怎樣進行切換的

    ARMv8中,aarch64aarch32是通過異常進行切換的。而A32和T32是通過bx指令進行切換的。如下圖:以下A64和A32混合編
    發表于 04-01 15:09

    談一談AArch64架構下內核與用戶地址的隔離機制

    1、 AArch64 架構下內核與用戶地址的隔離機制一般來說操作系統之上會有多個應用程序或者任務同時運行。每一個任務都有自己獨立的頁表,
    發表于 04-13 17:27

    如何在x86環境下基于Qemu和Docker快速搭建AARCH64開發環境

    內容都是 AARCH64 開發環境中的操作,AARCH64 基本匯編編譯運行切換到目錄 ~/work/aarch64_asm,有一個內置的
    發表于 07-11 15:18

    運行ldd qemu-系統-aarch64顯示的不是動態可執行文件,這個怎么做?

    我正在運行以下命令,ldd qemu-系統-aarch64 但它顯示的不是動態可執行文件這個怎么做)
    發表于 03-30 07:51

    RT-Thread BSP qemu-virt64-aarch64的編譯環境搭建步驟

    =》 ${RTT_EXEC_PATH}”  下載gcc交叉編譯工具鏈接后,rt-thread/bsp/qemu-virt64-aarch64 運行  設置smart_env.sh的
    發表于 04-04 17:04

    AArch64自托管調試指南

    集成Arm核心中的調試邏輯提供了觀察和控制CPU和系統環境,同時深度嵌入式處理器執行軟件。手臂調試體系結構規范允許將
    發表于 08-02 10:05

    AArch64外部調試詳解

    用自托管調試模型正在調試調試異常是自托管調試模型的基礎。這個調試器對調試邏輯
    發表于 08-02 06:37

    AArch64平臺性能下降的例子

    編者按:目前許多公司同時使用 x86 和 AArch64 2 種主流的服務器。這兩種環境的算力相當,內存相同的情況下:相同版本的 JVM 和 Java 應用,相同的 JVM 參數,應用性
    的頭像 發表于 09-09 11:11 ?2444次閱讀

    AArch64寄存器介紹

    作為 RISC 架構,AArch64 提供了大量的通用寄存器。除通用寄存器之外,本節還會介紹特殊寄存器、系統控制寄存器、處理器狀態、函數調用標準。
    的頭像 發表于 08-24 09:57 ?6161次閱讀

    如何使用預裝程序創建分發AArch64容器

    本文我們將探討如何使用預裝程序創建分發 AArch64 容器。
    的頭像 發表于 09-30 10:57 ?1236次閱讀

    VSCode中使用QEMU調試FreeRTOS

    在這篇文章中,我們將逐步完成一個示例設置,該設置以模擬 Arm Cortex-M3 微控制器為例,展示了如何使用 QEMU Visual Studio Code (VSCode
    的頭像 發表于 03-06 09:24 ?2180次閱讀

    最新的Linux aarch64 LSA驅動程序

    電子發燒友網站提供《最新的Linux aarch64 LSA驅動程序.zip》資料免費下載
    發表于 08-23 15:46 ?2次下載
    最新的Linux <b class='flag-5'>aarch64</b> LSA驅動程序

    RT-Thread BSP qemu-virt64-aarch64文件系統

    前面大體搭建了 RT-Thread BSP qemu-virt64-aarch64 的交叉編譯環境,運行后發現,文件系統沒有掛載,感覺是沒有 mkfs。
    的頭像 發表于 10-08 16:34 ?966次閱讀
    RT-Thread BSP <b class='flag-5'>qemu-virt64-aarch64</b>文件系統

    探索aarch64架構使用ftrace的BPF LSM

    aarch64跟x86_64的內核功能有差異。筆者嘗試定位這些差異時,看到這篇文章,可以讓大家更直觀地了解LSM eBPF兩種CPU 內核
    的頭像 發表于 01-25 09:30 ?770次閱讀

    第四章: PC 交叉編譯 aarch64 的 tensorflow 開發環境測試

    本文介紹了 PC 端交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發表于 08-25 11:38 ?1134次閱讀
    第四章:<b class='flag-5'>在</b> PC 交叉編譯 <b class='flag-5'>aarch64</b> 的 tensorflow 開發環境<b class='flag-5'>并</b>測試
    主站蜘蛛池模板: 国产午夜人做人免费视频中文| 免费观看美女的网站| 少妇无码太爽了视频在线播放| 国产99小视频| 性啪啪chinese东北女人| 精品人妻无码一区二区三区蜜桃臀 | 四虎一级片| 久久精品国产清白在天天线| 99re久久这里只有精品| 色婷婷欧美在线播放内射| 精品香蕉99久久久久网站| 99er热精品视频国产免费| 色欲档案之麻雀台上淫| 九九电影伦理片| 超碰在线97久久视频观看| 亚洲国产AV精品卡一卡二| 免费色片播放器| 国产三级在线观看免费| 2018年免费三级av观看| 忘忧草日本在线WWW日本| 久久免费国产视频| 成人手机在线观看| 亚洲色tu| 色中色辩论区| 美国特级成人毛片| 国产亚洲va在线电影| a一级一片免费观看视频| 亚洲 成人网| 琪琪热热色原日韩在线| 精品无码日本蜜桃麻豆| 潮 喷女王cytherea| 影音先锋av333资源网| 少妇被阴内射XXXB少妇BB| 啦啦啦视频在线观看WWW| 国产精品自拍| 看黄色片子| 国产精品高清在线观看地址| 97色在线视频| 亚洲免费三区| 色悠悠电影网| 欧美含羞草免费观看全部完|