在根文件系統(tǒng)中查看設(shè)備樹,是一種不錯的調(diào)試手段。因?yàn)楹芏鄷r(shí)候會出現(xiàn)你修改了 dts 文件,并且也編譯了新的 dtb,但是下載到板子上的還是以前的dtb,因此查看板子中真實(shí)生效的設(shè)備樹配置信息是很重要的。
1、設(shè)備樹原始 dtb 格式
在如下目錄,fdt 就是我們的 設(shè)備樹*.dtb文件
/sys/firmware/fdt //原始dtb文件
執(zhí)行以下指令可看
hexdump -C /sys/firmware/fdt
這個(gè)命令打開后是十六進(jìn)制模式,如圖:
這樣是很難看到真實(shí)配置的,可以把 fdt 弄出來,放到 ubuntu 中,使用 Linux 源碼自帶的 DTC
工具反編譯,查看真實(shí)的配置。反編譯命令為
/script/dtc/dtc -I dtb -O dts -o xxx.dts xxx.dtb
DTS 是設(shè)備樹源碼文件,DTB 是將 DTS 編譯以后得到的二進(jìn)制文件。將 .c 文件編譯為 .o 需要用到 gcc 編譯器,那么將.dts編譯為.dtb 需要什么工具呢?需要用到 DTC 工具!反編譯也是這個(gè)工具,反編譯后可以看到方便查看的設(shè)備樹,字符串會恢復(fù),數(shù)字會變成十六進(jìn)制格式。
在 u-boot 啟動內(nèi)核時(shí),會將 dtb 文件的內(nèi)存地址傳遞給內(nèi)核,并將其所占內(nèi)存保留;因此,我們在內(nèi)核啟動后,訪問該內(nèi)存,獲得原始的dtb。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
_如何對設(shè)備樹(DTB)進(jìn)行反匯編設(shè)備樹源碼(DTS)【創(chuàng)科之龍_安卓開發(fā)】第04課_零死角認(rèn)識設(shè)備
發(fā)表于 07-09 20:20
1、修改Android6 源碼的設(shè)備樹文件imx6qdl-sabresd.dtsi,添加如下圖所示的can2節(jié)點(diǎn),藍(lán)色字體是添加的內(nèi)容。2、修改完后,保存退出。然后重新編譯 Linux 內(nèi)核,參考第
發(fā)表于 06-24 10:00
stm32mp1-seeed-npi-full.dtb這個(gè)設(shè)備樹。直接修改uEnv.txt文件,此文件會在uboot引導(dǎo)Linux內(nèi)核的時(shí)候主動去加載/boot/dtbs/4.19.9
發(fā)表于 08-03 06:06
安裝Linux內(nèi)核源碼,清理Linux內(nèi)核,配置Linux內(nèi)核照著實(shí)驗(yàn)指導(dǎo)書上敲命令就完事了配置Linux內(nèi)核的這一步驟,可以跳過:2.編譯設(shè)備
發(fā)表于 12-20 07:11
uboot如何獲取要加載的設(shè)備樹呢?uboot如何給linux內(nèi)核所需要的kernel-dtb呢?
發(fā)表于 03-04 07:04
1、設(shè)備樹的簡介Linux 內(nèi)核3.X之后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板級細(xì)節(jié)的代碼(比如platform_device
發(fā)表于 05-06 16:14
編譯后的設(shè)備樹傳遞給 Linux 內(nèi)核。DTS 、 DTC 和 DTB 等1.DTS文件 .dts 是一種 ASCII 文本格式的
發(fā)表于 05-11 16:28
的scripts/dtc中。在內(nèi)核是能設(shè)備樹的時(shí)候主機(jī)工具DTC會被編譯出來。DTB經(jīng)編譯后的二進(jìn)制設(shè)備樹文件
發(fā)表于 05-24 16:04
我正在嘗試使用原始設(shè)備樹啟動安裝了 STM32MP151CAA3 MPU 的原始電路板。但是,按照以下步驟無法啟動電路板。的--環(huán)境-- 主機(jī):Intel Core i7 3.6GHz
發(fā)表于 01-17 08:46
覆蓋 - 無法加載 .dtb 和 .dtbo我正在使用 iMx8mm 板,并且在加載 .dtb 和 .dtbo 文件時(shí)創(chuàng)建了 .dtbo(設(shè)備樹 blob 覆蓋)文件并將其復(fù)制到 /l
發(fā)表于 04-06 08:33
九、編譯設(shè)備樹dts為dtb 前面的linux內(nèi)核源碼目錄中已經(jīng)包含了設(shè)備樹編譯器Device
發(fā)表于 02-08 16:59
?2333次閱讀
設(shè)備樹(Device tree)是一套用來描述硬件屬相的規(guī)則。ARM Linux采用設(shè)備樹機(jī)制源于2011年3月份
發(fā)表于 04-29 17:29
?900次閱讀
當(dāng) U-Boot 將設(shè)備樹加載到內(nèi)存指定位置后,ARM 內(nèi)核的 SoC 以通用寄存器 r2 來傳遞 dtb 在內(nèi)存中的地址。kernel 獲取到該地址后對 dtb 文件做進(jìn)一步的處理。
發(fā)表于 07-29 11:19
?2375次閱讀
要的。 設(shè)備樹目錄結(jié)構(gòu) dtb 格式 /sys/firmware/devicetree 以目錄結(jié)構(gòu)程現(xiàn)的 dtb 文件, 根節(jié)點(diǎn)對應(yīng) bas
發(fā)表于 07-30 15:25
?756次閱讀
一、背景 ????dtb作為二進(jìn)制文件被加載到內(nèi)存中,然后由內(nèi)核讀取并進(jìn)行解析,如果對dtb文件的格式不了解,那么在看設(shè)備樹解析相關(guān)的內(nèi)核代
發(fā)表于 08-10 16:02
?4934次閱讀
評論