裝置樹講解

2021-10-02 17:30:46 字數 1936 閱讀 3372

原始碼 :test.dts

可執行檔案: test.dtb

編譯工具:dtc

編譯所有dts檔案:make dtbs 

編譯指定的dts檔案:make test.dtb

可以將晶元共有的資訊提取出來作為乙個通用的.dtsi檔案

可以將晶元共有的資訊提取出來作為乙個通用的.dtsi檔案

在其他檔案中可以用#include 來引用這個公用的檔案,例如#include "test.dtsi"

/為裝置樹的根

一棵樹就用以下表示

/

或者將乙個根拆為兩個

//

即兩個根相當於乙個根。在test.dts中的根和test.dtsi中的根可以合起來。

裝置節點就相當於副樹幹,不同裝置以裝置節點的方式掛在主幹上。

裝置節點下是很多鍵值對,這些鍵值對稱為屬性,用來描述這個裝置節點。

大致情況如圖:

/;

節點一;

}

節點命名格式:label:node-name@usnit-addres

label:節點標籤,相當於小朋友的外號

node-name:節點名字

例子:

/;

uart0:uart;

led0:led@00a01000;

}

label的作用如果你在test.dtsi檔案中使用了led節點

led0:led;

};5 、reg

reg 屬性一般用於描述裝置位址空間資源資訊,一般都是某個外設的暫存器位址範圍資訊。

6 、ranges

ranges屬性值可以為空或者按照格式編寫的數字矩陣,ranges 是乙個位址對映/轉換表,ranges 屬性每個專案由子位址、父位址和位址空間長度這三部分組成:

child-bus-address:子匯流排位址空間的實體地址,由父節點的#address-cells 確定此實體地址所占用的字長。

parent-bus-address :父匯流排位址空間的實體地址,同樣由父節點的#address-cells 確定此實體地址所占用的字長。

length :子位址空間的長度,由父節點的#size-cells 確定此位址長度所占用的字長。

7 、name

name 屬性值為字串,name 屬性用於記錄節點名字。

8 、device_type

節點型別

系統啟動以後可以在根檔案系統裡面看到裝置樹的節點資訊

在 /proc/device-tree目錄下存放著裝置樹資訊

想要檢視節點屬性值可以使用 cat命令

如cd leds 

使用cat name檢視leds的name屬性值

五、在裝置樹的根節點下新增乙個自己的節點

在linux原始碼目錄中執行 make dtbs

將生成的dtb檔案拷貝到tftp目錄

nfs方式啟動開發板

cd /proc/deveice-tree

就可以看到自己的節點mytestnod

劃分樹講解

搜尋關於劃分樹的講解,竟然搜到了鄭大媛學姐的博文,不是這篇 原博文有錯誤,我就不給出原鏈結了 用劃分樹來解決選定區間內的第k大值,其實也就兩步!一步是建樹,另一步則是查詢。先說我對建樹的理解吧!建樹的過程很簡單 兩步就ok了!第一步 找到序列的中位數,把大於中位數的扔到中位數的左邊,小於中位數的扔到...

linux裝置樹(裝置驅動)

一 裝置樹的簡單概念 裝置樹 由一系列的節點,屬性組成,節點本身包含子節點 屬性 成對出現的名稱和值 裝置樹可描述的資訊 原先大多數被編碼在核心中 它是電路板上cpu,匯流排,裝置組成的樹,bootloader會將這棵樹傳遞給核心,並根據它展開linux核心中的platform device等裝置。...

Trie樹(字典樹)講解

先聊一聊字典樹是什麼,他有什麼用 字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。...