1. 程式人生 > >如何理解裝置樹中address-cells和size-cells

如何理解裝置樹中address-cells和size-cells

最近剛剛解除裝置樹,對address-cells和size-cells的含義表示很不解,網上找到諸如下面的描述(總感覺不拗口了,而且很難理解):

#address-cells = <1>;基地址、片選號等絕對起始地址所佔字長(32位)

#size-cells = <1>; 長度所佔字長(32位)

實際上,address-cells和size-cells表明子裝置結點如何寫地址(reg屬性地址的編寫格式正是參考這兩個變數的值),下面舉例詳細說明。

例1:

  1. cpus {  
  2.         #address-cells = <1>;
  3.         #size-cells = <0>;
      
  4.         [email protected] {  
  5.             compatible = "arm,cortex-a9";  
  6.             reg = <0>;  
  7.         };  
  8.         [email protected] {  
  9.             compatible = "arm,cortex-a9";  
  10.             reg = <1>;  
  11.         };  
  12.     }; 
針對上述cpu結點,屬性值#address-cells = <1>;  #size-cells = <0>
 那麼,可以看到cpu結點的子結點  [email protected],以及 [email protected] 的reg屬性分別為:reg = <0>;   reg = <1>;   ("< >" 括號裡面的數對應於#address-cells)。
再看下一個例子,相信你會更加明白。1.dual-ram{
2.compatible = "dual-ram";
3.#address-cells = <1>;
4.#size-cells = <1>;
5.reg = <0x1000000 0x1000  >;
6.};
#address-cells = <1>,
#size-cells = <1> 表明:reg屬性的地址由兩個32位的字長組成。本例中,0x1000000表示地址,對應於#address-cells;0x1000表示地址長度,對應於0x1000。


相關推薦

如何理解裝置address-cellssize-cells

最近剛剛解除裝置樹,對address-cells和size-cells的含義表示很不解,網上找到諸如下面的描述(總感覺不拗口了,而且很難理解):#address-cells = <1>;基地

裝置address-cellssize-cells的含義

#address-cells = <1>;基地址、片選號等絕對起始地址所佔字長(32位) #size-cells = <1>; 長度所佔字長(32位) 譬如 cpus { #address-cells = <1>;

裝置ranges屬性理解

作者 彭東林 [email protected] 文章來源 正文 一、裝置樹 下面是我們將要實驗的裝置樹的例子: / { #address-cells = <1>; #siz

決策的熵基尼指數

學習排序算法 get lambda 取值 設有 問題 不同 度量 信息 決策樹是一種很基本的分類與回歸方法,但正如前面博文機器學習排序算法:RankNet to LambdaRank to LambdaMART中所講的LambdaMART算法一樣,這種最基本的算法卻是很多經

真題2001 雙親表示法求節點層次

題目:已知有n個結點的樹以雙親表示法儲存在一維陣列中。請設計一個演算法求樹中每個結點的層次和樹的高度,將求得的每個結點的層次儲存在一維陣列C中,並分析你所設計的演算法的時間複雜度。 int Depth(PTree t){ //編寫求雙親表示法表示的樹的深度的演算法

3.6 在二叉找到累加為指定值的最長路徑長度

【題目】:   給定一棵二叉樹的頭節點head和一個32位整數sum,二叉樹節點值型別為整型,求累加和為sum的最長路徑長度。路徑是指從某個節點往下,每次最多選擇一個孩子節點或者不選所形成的的節點鏈   例如, 二叉樹如圖所示               -3           3   &

嵌入式核心及驅動開發之學習筆記(十七) 裝置的定義規則獲取方法

概述 在Linux 2.6中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥著大量的垃圾程式碼,相當多數的程式碼只是在描述板級細節,而這些板級細節對於核心來講,不過是垃圾,如板上的platform裝置、resource、i2c_board_info、sp

程式設計師面試一百題-04-在二元找出為某值的所有路徑

1-題目 : 輸入一個整數和一棵二元樹;從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑;打印出和與輸入整數相等的所有路徑。 2-示例 : 輸入整數22和如下二元樹,則應答應出兩條路徑10-12和10-5-7。 3-思路 : 3.1-當訪問到某一結點時,把該結點

Linux驅動開發08:【裝置】MPU6050驅動i2c驅動

介紹 上一節在nanopi裝置樹的I2C節點下增加了一個MPU6050的子節點,並在sysfs中檢視到了該節點已經被正確解析,這一節我們來修改之前的MPU6050驅動,使之能夠匹配到我們的裝置樹節點,然後再分析裝置樹節點是如何載入到i2c總線上的。 MP

線索二叉查詢前驅後繼的問題

線索二叉樹 結點結構定義如下: 若結點有左子樹,則LChild域仍指向其左孩子; 否則,LChild域指向其某種遍歷序列中的直接前驅結點。 若結點有右子樹,則RChild域仍指向其右孩子; 否則,RChild域指向其某種遍歷序列中的直接後繼結點。 L

Exynos4412 中斷驅動開發(三)—— 裝置中斷節點的建立

https://www.cnblogs.com/tureno/articles/6403946.html 轉載於 :  http://blog.csdn.net/zqixiao_09/article/details/50916212 題目: Exynos4412 中斷驅動

深入理解Node.js的AsyncAwait函式

這篇文章主要介紹了Node.js中的Async和Await函式的相關知識,非常不錯,寫的十分的全面細緻,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。 在本文中,你將學習如何使用Node.js中的async函式(async/await)來簡化c

linux裝置pinctrl的配置(上)

最近在移植linux,用到kernel版本為3.18.22和4.1.3,在高版本的核心原始碼中用到了裝置樹(device-tree),裝置樹中用到pinctrl的配置,記錄一下。 1、普通設定 在配置串列埠時,pinctrl的配置資訊如下所示: <span st

linux裝置pinctrl的配置(下)

上一篇記錄了裝置樹檔案中管腳普通配置的查詢與確定,這篇介紹一下特殊的配置。 首先還是先看程式碼,看看到底特殊到哪裡。 <span style="font-size:14px;"> pi

linux裝置的dts與dtsi

1.    ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux郵件列表宣稱“this whole ARM thing is a f*cking pain in the ass”,引發ARM Linux社群的地震

深入淺出:Linux裝置驅動的阻塞非阻塞I/O

今天寫的是Linux裝置驅動中的阻塞和非阻塞I/0,何謂阻塞與非阻塞I/O?簡單來說就是對I/O操作的兩種不同的方式,驅動程式可以靈活的支援使用者空間對裝置的這兩種訪問方式。 一、基本概念: 阻塞操作 : 是指在執行裝置操作時,若不能獲得資源,則掛起程序直到

linux驅動-從裝置獲取platfrom_data

i2c裝置驅動一般在probe函式的開頭都會先獲取platform_data資料。 1、在沒有使用dts的kernel 驅動中, 要麼直接賦值:client->dev.platform_data = pdata;  要麼使用介面設定:platform_device

第二課:linux裝置的規範(dtsdtb)

轉載請註明文章地址 http://wiki.100ask.org/Linux_devicetree 第01節_DTS格式 dts檔案通過編譯生成dtb格式檔案 屬性的定義 value取值型別 屬性名=值只有三種取值 第一種 <1 0x3

android 裝置的devices_node的資料獲取

android/linux下devicetree中常用的of函式 從device_node中獲取資訊: int of_property_read_u8_array(const struct device_node *np, const char *propn

求出二叉找出為某一值的所有路徑

前段時間什麼也不懂,就跑到騰訊去面試,然後面試官出了這道題,當時已碰演算法就悶,現在給出這道題目的解 另外再次感謝July仁兄對於各種面試題的整理,讓我有這些經典的題來練習。 題目:輸入一個整數和一棵二元樹。 從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑