• 正文
    • 節(jié)點(diǎn)
    • 屬性
    • 標(biāo)簽
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡-初識(shí)設(shè)備樹(shù)之設(shè)備組織架構(gòu)

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

下圖是一個(gè)設(shè)備樹(shù)文件的基本架構(gòu)示例:

簡(jiǎn)單概括一下有這幾個(gè)部分:

節(jié)點(diǎn)

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

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

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

下面是幾種常見(jiàn)的節(jié)點(diǎn):

根節(jié)點(diǎn)

設(shè)備樹(shù)文件中都包含一個(gè)根節(jié)點(diǎn),使用“/”表示。

CPU節(jié)點(diǎn)

memory節(jié)點(diǎn)

該節(jié)點(diǎn)是設(shè)置內(nèi)存起始地址及其大小。

屬性

每個(gè)節(jié)點(diǎn)都有不同屬性,屬性包括屬性名稱(chēng)和屬性值,屬性值可以為空或任意的字節(jié)流屬性,一般屬性值有三類(lèi):

string字符串型,使用雙引號(hào)“”包含;

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

u32型:使用尖括號(hào)<>包含;

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

node@0的第一個(gè)屬性名稱(chēng)是a-string-property,屬性值為字符串“string”;

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

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

常見(jiàn)的屬性:

compatible

compatible是兼容的意思,即該設(shè)備可被一個(gè)或者多個(gè)驅(qū)動(dòng)匹配。例如在

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

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

model

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

再如下圖sound節(jié)點(diǎn),設(shè)備型號(hào)信息為nau8822-audio:

#address-cells,#size-cells,reg

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

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

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

status

status屬性用來(lái)表示節(jié)點(diǎn)的狀態(tài),即相關(guān)硬件的狀態(tài),用字符串表示。'okay'表示硬件正常工作,“disabled”表示硬件當(dāng)前不可用,“fail”表示因?yàn)槌鲥e(cuò)不可用,“fail-sss”表示因?yàn)槟撤N原因出錯(cuò)不可用,sss表示具體的出錯(cuò)原因。實(shí)際中,基本只用'okay'和'disabled'。

標(biāo)簽

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

飛凌嵌入式

飛凌嵌入式

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

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

查看更多

相關(guān)推薦