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

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

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

Linux設(shè)備樹原始dtb格式

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-30 15:22 ? 次閱讀

在根文件系統(tǒng)中查看設(shè)備樹,是一種不錯(cuò)的調(diào)試手段。因?yàn)楹芏鄷r(shí)候會(huì)出現(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è)備樹,字符串會(huì)恢復(fù),數(shù)字會(huì)變成十六進(jìn)制格式。

在 u-boot 啟動(dòng)內(nèi)核時(shí),會(huì)將 dtb 文件的內(nèi)存地址傳遞給內(nèi)核,并將其所占內(nèi)存保留;因此,我們?cè)趦?nèi)核啟動(dòng)后,訪問該內(nèi)存,獲得原始的dtb。

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

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298537
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • 設(shè)備樹
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    3095
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Android7.1 高通8953 平臺(tái)下零死角玩轉(zhuǎn)設(shè)備DTS【2018更新】【申精】

    _如何對(duì)設(shè)備DTB)進(jìn)行反匯編設(shè)備源碼(DTS)【創(chuàng)科之龍_安卓開發(fā)】第04課_零死角認(rèn)識(shí)設(shè)備
    發(fā)表于 07-09 20:20

    迅為-IMX6開發(fā)板設(shè)備-Linux內(nèi)核配置兩路can

    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設(shè)備

    stm32mp1-seeed-npi-full.dtb這個(gè)設(shè)備。直接修改uEnv.txt文件,此文件會(huì)在uboot引導(dǎo)Linux內(nèi)核的時(shí)候主動(dòng)去加載/boot/dtbs/4.19.9
    發(fā)表于 08-03 06:06

    如何編譯設(shè)備Linux內(nèi)核鏡像文件

    安裝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如何給linux內(nèi)核所需要的kernel-dtb

    uboot如何獲取要加載的設(shè)備呢?uboot如何給linux內(nèi)核所需要的kernel-dtb呢?
    發(fā)表于 03-04 07:04

    Linux內(nèi)核的設(shè)備DTS使用方法詳解

    1、設(shè)備的簡(jiǎn)介Linux 內(nèi)核3.X之后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板級(jí)細(xì)節(jié)的代碼(比如platform_device
    發(fā)表于 05-06 16:14

    ARM Linux設(shè)備的組成和結(jié)構(gòu)

    編譯后的設(shè)備傳遞給 Linux 內(nèi)核。DTS 、 DTC 和 DTB 等1.DTS文件 .dts 是一種 ASCII 文本格式
    發(fā)表于 05-11 16:28

    arm linux設(shè)備都包括哪些基本信息呢

    的scripts/dtc中。在內(nèi)核是能設(shè)備的時(shí)候主機(jī)工具DTC會(huì)被編譯出來。DTB經(jīng)編譯后的二進(jìn)制設(shè)備文件
    發(fā)表于 05-24 16:04

    為什么無法使用STM32CubeMX生成的原始設(shè)備啟動(dòng)安裝STM32MP151CAA3 MPU的原始板?

    我正在嘗試使用原始設(shè)備啟動(dòng)安裝了 STM32MP151CAA3 MPU 的原始電路板。但是,按照以下步驟無法啟動(dòng)電路板。的--環(huán)境-- 主機(jī):Intel Core i7 3.6GHz
    發(fā)表于 01-17 08:46

    IMX8MM設(shè)備覆蓋,無法在uboot中加載.dtb和.dtbo是怎么回事?

    覆蓋 - 無法加載 .dtb 和 .dtbo我正在使用 iMx8mm 板,并且在加載 .dtb 和 .dtbo 文件時(shí)創(chuàng)建了 .dtbo(設(shè)備 blob 覆蓋)文件并將其復(fù)制到 /l
    發(fā)表于 04-06 08:33

    編譯設(shè)備dts為dtb,制作根文件系統(tǒng)

    九、編譯設(shè)備dts為dtb 前面的linux內(nèi)核源碼目錄中已經(jīng)包含了設(shè)備編譯器Device
    發(fā)表于 02-08 16:59 ?2256次閱讀

    你眼中的Linux設(shè)備是怎樣的?

    設(shè)備(Device tree)是一套用來描述硬件屬相的規(guī)則。ARM Linux采用設(shè)備機(jī)制源于2011年3月份
    發(fā)表于 04-29 17:29 ?870次閱讀

    設(shè)備的傳遞及kernel 對(duì)設(shè)備的解析

    當(dāng) U-Boot 將設(shè)備加載到內(nèi)存指定位置后,ARM 內(nèi)核的 SoC 以通用寄存器 r2 來傳遞 dtb 在內(nèi)存中的地址。kernel 獲取到該地址后對(duì) dtb 文件做進(jìn)一步的處理。
    的頭像 發(fā)表于 07-29 11:19 ?2239次閱讀
    <b class='flag-5'>設(shè)備</b><b class='flag-5'>樹</b>的傳遞及kernel 對(duì)<b class='flag-5'>設(shè)備</b><b class='flag-5'>樹</b>的解析

    Linux設(shè)備目錄結(jié)構(gòu)dtb格式

    要的。 設(shè)備目錄結(jié)構(gòu) dtb 格式 /sys/firmware/devicetree 以目錄結(jié)構(gòu)程現(xiàn)的 dtb 文件, 根節(jié)點(diǎn)對(duì)應(yīng) bas
    的頭像 發(fā)表于 07-30 15:25 ?668次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>樹</b>目錄結(jié)構(gòu)<b class='flag-5'>dtb</b><b class='flag-5'>格式</b>

    Linux設(shè)備詳解(二) DTB文件格式

    一、背景 ????dtb作為二進(jìn)制文件被加載到內(nèi)存中,然后由內(nèi)核讀取并進(jìn)行解析,如果對(duì)dtb文件的格式不了解,那么在看設(shè)備解析相關(guān)的內(nèi)核代
    的頭像 發(fā)表于 08-10 16:02 ?4524次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>樹</b>詳解(二) <b class='flag-5'>DTB</b>文件<b class='flag-5'>格式</b>