十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何進(jìn)行RK3288 dts和dtsi介紹,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Device Tree 是一種描述硬件的數(shù)據(jù)結(jié)構(gòu),它起源于 OpenFirmware(OF)。在 Linux2.6 中,ARM 架構(gòu)的板機(jī)硬件細(xì)節(jié)過(guò)多地被硬編碼在 arch/arm/plat-xxx 和 arch/arm/mach-xxx,采用 Device Tree 后,許多硬件的細(xì)節(jié)可以直接透過(guò)它傳遞給 Linux,而不再需要在 kernel 中進(jìn)行大量的冗余編碼。
Device Tree 由一系列被命名的結(jié)點(diǎn)(node)和屬性(property)組成,而結(jié)點(diǎn)本身可包含子節(jié)點(diǎn)。所謂屬性,其實(shí)就是成對(duì)出現(xiàn)的 name 和 value 。
在 Device Tree 中,可描述的信息包括(原先這些信息大多被硬編碼到 kernel 中):
· CPU的數(shù)量和類別
· 內(nèi)存基地址和大小
· 總線和橋
· 外設(shè)連接
· 中斷控制器和中斷使用情況
· GPIO控制器和GPIO使用情況
· Clock控制器和Clock使用情況
它基本上就是畫(huà)一棵電路板上(CPU、總線、設(shè)備組成)的樹(shù),Bootloader 會(huì)將這棵樹(shù)傳遞給內(nèi)核,然后內(nèi)核可以識(shí)別這棵樹(shù),并根據(jù)它展開(kāi)出 Linux 內(nèi)核中的 platform_device、i2c_client、spi_device等設(shè)備,而這些設(shè)備用到的內(nèi)存、IRQ 等資源,也被傳遞給了內(nèi)核,內(nèi)核會(huì)將這些資源綁定給展開(kāi)的相應(yīng)的設(shè)備。
.dts 文件是一種 ASCII 文本格式的 Device Tree 描述?;旧?,在 ARM Linux 中,一個(gè) .dts 文件對(duì)應(yīng)一個(gè) ARM 的 machine,一般放置在內(nèi)核的 arch/arm/boot/dts/ 目錄。由于一個(gè) SOC 可能對(duì)應(yīng)多個(gè) machine(一個(gè)SOC可以對(duì)應(yīng)多個(gè)產(chǎn)品和電路板),勢(shì)必這些 .dts 文件需包含許多共同的部分,Linux 內(nèi)核為了簡(jiǎn)化,把 SOC 公用的部分或者多個(gè) machine 共同的部分一般提煉為 .dtsi,類似于C語(yǔ)言的頭文件。其他的 machine 對(duì)應(yīng)的 .dts 就是 include 這個(gè) .dtsi 。
上述就是小編為大家分享的如何進(jìn)行RK3288 dts和dtsi介紹了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。