qemu gdb 除錯imx6學習筆記

2021-10-04 18:34:01 字數 1304 閱讀 9093

準備對linux的記憶體管理單元進行學習,單純閱讀原始碼還是不如一步一步除錯核心理解深刻,對於除錯核心的方法,網上也有不少,主要是利用qemu+gdb+imx6對核心進行除錯。

qemu的英文單詞是:quickemulator,它是乙個小巧的模擬器。還有很多模擬器,比如vmware、virtual box等。但是vmware、virtualbox只能模擬x86、amd64/intel64等pc系統;而qemu可以模擬更多硬體:arm、mips、ppc、x86、amd64/intel64。qemu用途廣泛,比如xen、android模擬器等都是基於qemu的。在嵌入式領域,很多人使用qemu來深研linux,比如研究檔案系統、優化等等。

qemu有兩種模式:

git  clone
映象目錄結構如下:

目錄結構及說明如下,在後續的開發過程中,我們有可能更換紅框中的檔案:

詳細的操作過程見

qemu使用手冊

在之前的四個步驟中,已經準備好了全部的工具,下面就可以使用qemu+gdb進行核心除錯了。首先執行qemu-system-arm,執行如下命令:

/home/book/ubuntu-

18.04_imx6ul_qemu_system/qemu/bin/qemu-system-arm -m mcimx6ul-evk -m 512m -kernel /home/book/ubuntu-

18.04_imx6ul_qemu_system/imx6ull-system-image/zimage -dtb /home/book/ubuntu-

18.04_imx6ul_qemu_system/imx6ull-system-image/

100ask_imx6ull_qemu.dtb -serial stdio -drive file=

/home/book/ubuntu-

-nic user -s -s

啟**像如下:

此時,開啟另乙個terminal,然後進入核心原始碼目錄,執行arm-linux-gnueabihf-gdb vmlinux

可以看到gdb執行start_kernel斷點處停下來了,接下來就可以使用gdb的基本命令進行單步除錯了。如果執行後,相應的核心列印資訊會列印到qemu的service視窗上

imx6 移植人臉識別

最近接到任務要移植人臉檢測,其他步驟網上都有,一步步做就好了,就是在載入haarcascade frontalface alt2.xml的時候,出現 root dchip linux qt opencv 2.4.13.1 modules core src persistence.cpp 5008 e...

IMX6清空framebuffer操作

static void fb clear int fb unsigned char fb mem fb open dev fb0 o rdwr fb mem mmap null,1920 720,prot read prot write,map shared,fb,0 memset fb mem,0...

socat 交叉編譯 imx6

1,為了使用linux虛擬串列埠的功能,選擇移植乙個socat工具。2,設定交叉編譯工具路徑 export path path usr local arm gcc linaro arm linux gnueabihf 4.9 2014.07 linux bin 3,解壓,配置 tar xzvf so...