原始碼 :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樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。...