裝置樹用來描述乙個平台上的裝置資訊,不僅包括soc上的裝置,還可以新增乙個外設資訊,簡單記錄一下裝置樹中的特殊節點的理解
裝置樹中的位址資訊一般用#address-cells和#size-cells來修飾,address表示位址由幾個單元組成,乙個單元是乙個32位的值(在32位系統上),size-cells表示位址的長度由幾個單元組成,比如
aips2: aips-bus@02100000 ;
}
一定要注意的是address-cells和size-cells描述的是子節點的資訊,比如上面的節點中,i2c1是aips2的子節點,在aips2中指定#size-cells = <1>,#address-cells = <1>,所以在i2c1節點中的位址reg中的第乙個單元0x021a0000就表示i2c1暫存器的位址,第二個單元0x4000表示位址長度,
如果是下面這樣
aips2: aips-bus@02100000 ;
}
父節點中的#address-cells = <2>,#size-cells = <1>,那麼在子節點i2c1中的位址reg中,就是第乙個單元0x021a0000 和第二個單元0x022a0000共同組成開始位址,第三個單元0x4000表示位址長度
i2c節點內的#address-cells和#size-cells影響的是自己的子節點的表達形式,找到i2c1的子節點
&i2c1 ;
};
i2c1子節點ap3216c中,位址表示reg = <0x1e>,和上面對應起來,只有乙個單元表示開始位址,沒有位址長度的表示單元
不過,在i2c外設中,reg表示的就是不再是外設的起始位址了,而是外設的i2c位址,具體的表示含有根據具體的**而定。
裝置書的特殊節點 chosen
前言 參考自正點原子和部落格 正文 chosen 並不是乙個真實的裝置,chosen 節點主要是為了 uboot 向 linux 核心傳遞資料,重點是 bootargs 引數。一般.dts 檔案中 chosen 節點通常為空或者內容很少。但是,當我們進入到 proc device tree chos...
Linux裝置樹 建立小型模板裝置樹 特殊節點
內容 i.mx6ull 這個 cortex a7 架構的 32 位 cpu i.mx6ull 內部 ocram,起始位址 0x00900000,大小為 128kb 0x20000 i.mx6ull 內部 aips1 域下的 gpr外設控制器,暫存器起始位址為 0x020e4000,大小為 0x400...
樹中節點和
給定一棵 n 個節點組成的樹。樹中節點編號為 1 sim n 1 號節點為樹的根節點。樹中的每個節點 v 都具有乙個非負整數權值 a 我們用 s 來表示從節點 v 到根節點的路徑上經過的所有節點 包括兩端節點 的權值之和 用 h 來表示從節點 v 到根節點的路徑上經過的所有節點 包括兩端節點 的數量...