• 正文
    • 節(jié)點
    • 屬性
    • 標簽
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-初識設備樹之設備組織架構

01/08 08:50
857
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

下圖是一個設備樹文件的基本架構示例:

簡單概括一下有這幾個部分:

節(jié)點

節(jié)點的命名方式一般為node-name@unit-address:

其中node-name為節(jié)點名稱,unit-address為節(jié)點地址。例如上示例圖中node@0的node為節(jié)點名稱;0就是節(jié)點的地址,地址主要是為了區(qū)分其他的節(jié)點以保證節(jié)點的唯一性,節(jié)點地址是非必須的,可以省略。

在一個節(jié)點下面可包含一系列的子節(jié)點,例如上示例圖的note@0下面又可包含其自己的子節(jié)點child-node@0和child-node@1。

下面是幾種常見的節(jié)點:

根節(jié)點

設備樹文件中都包含一個根節(jié)點,使用“/”表示。

CPU節(jié)點

memory節(jié)點

該節(jié)點是設置內存起始地址及其大小。

屬性

每個節(jié)點都有不同屬性,屬性包括屬性名稱和屬性值,屬性值可以為空或任意的字節(jié)流屬性,一般屬性值有三類:

string字符串型,使用雙引號“”包含;

byte數(shù)組型:使用方括號[]包含;

u32型:使用尖括號<>包含;

如示例圖中節(jié)點:

node@0的第一個屬性名稱是a-string-property,屬性值為字符串“string”;

node@0的第三個屬性名稱為a-byte-data-property,其屬性值為byte數(shù)組:[0x01 0x02 0x03 0x04],

node1(node@1)節(jié)點的a-cell-property屬性值為u32型<1 2 3 4>。

常見的屬性:

compatible

compatible是兼容的意思,即該設備可被一個或者多個驅動匹配。例如在

arch/arm/boot/dts/imx6ull-elf1-emmc.dts文件中的pxp_v4l2節(jié)點:

此節(jié)點的Compatible的值為“"fsl,imx6ul-pxp-v4l2", "fsl,imx6sx-pxp-v4l2", "fsl,imx6sl-pxp-v4l2",內核在解析設備樹之后,會首先根據(jù)“fsl,imx6ul-pxp-v4l2”查找匹配驅動模塊,其中“fsl”是廠商名稱,“mx6ul-pxp-v4l2”是驅動模塊的名稱。如果沒有匹配到此驅動模塊,就會再次使用”fsl,imx6sx-pxp-v4l2”進行查找匹配,依次類推。

model

model屬性用于表示設備型號信息。如下圖中model = "Freescale i.MX6 ULL 14x14 EVK Board",表示該設備為freescale的i.MX6ULL EVK板。

再如下圖sound節(jié)點,設備型號信息為nau8822-audio:

#address-cells,#size-cells,reg

reg屬性用來表示節(jié)點地址資源的,屬性值一般是寄存器的起始地址及地址之后連續(xù)的空間長度。

#address-cells,#size-cells分別表示子節(jié)點中reg的地址以及地址之后連續(xù)的空間長度用幾個32bit數(shù)據(jù)表示。

如上圖,#address-cells=<1>,表示其子節(jié)點ocrams中reg的地址是用一個32bit數(shù)據(jù)表示,上圖中的0x00900000。#size-cells=<1>,說明其子節(jié)點ocrams中reg地址之后的空間長度也是用一個32bit數(shù)據(jù)表示,上圖中的0x4000。

status

status屬性用來表示節(jié)點的狀態(tài),即相關硬件的狀態(tài),用字符串表示。'okay'表示硬件正常工作,“disabled”表示硬件當前不可用,“fail”表示因為出錯不可用,“fail-sss”表示因為某種原因出錯不可用,sss表示具體的出錯原因。實際中,基本只用'okay'和'disabled'。

標簽

圖中的node1: node@1節(jié)點,其中node1就是本節(jié)點的一個標簽,標簽不是必須的,定義標簽主要為了方便在其他地方對該節(jié)點進行引用的時候,不必寫該節(jié)點的全路徑,直接使用標簽即可。如在node@0的子節(jié)點child-node@0的第三個屬性就引用了node1(&node1)。

飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設計和生產(chǎn)的高新技術企業(yè),是國內較早專業(yè)從事嵌入式技術的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設有華東、華南技術服務中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務網(wǎng)絡。公司研發(fā)的智能設備核心平臺廣泛應用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領域。

保定飛凌嵌入式技術有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設計和生產(chǎn)的高新技術企業(yè),是國內較早專業(yè)從事嵌入式技術的企業(yè)之一。 經(jīng)過十幾年的發(fā)展與積累,公司擁有業(yè)內優(yōu)秀的軟硬件研發(fā)團隊,在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設有華東、華南技術服務中心,并在北美、歐洲以及亞太等其他國家和地區(qū)擁有國際業(yè)務網(wǎng)絡。公司研發(fā)的智能設備核心平臺廣泛應用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機器人、環(huán)境監(jiān)測等諸多領域。收起

查看更多

相關推薦