2013-07-03 80 views
6

什麼是Linux中的設備樹? 設備樹的優點和缺點是什麼?什麼是設備樹?優點和缺點?

如果有人詳細瞭解設備樹,請幫助回答以上問題。

+0

https://stackoverflow.com/questions/17488320/how-to-program-linux-dts-device-tree-files/44994940#44994940 –

回答

15

設備樹是硬件組件在系統中的描述,這裏的設備樹中的文件在Linux的列表中臂弓:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts?id=refs/tags/v3.10

從這裏:

http://devicetree.org/Device_Tree_Usage

設備樹是節點和屬性的簡單樹形結構。 屬性是鍵值對,並且節點可能包含兩個屬性 和子節點

樹的節點描述了Linux內核,或類似的U-Boot等軟件系統,用來初始化硬件參數。

一些優點包括:

  1. 簡單改變系統的結構,而不必重新編譯任何代碼。
  2. 可以很容易地添加對新硬件的支持(例如,如果您有新版本的板只改變一些次要組件,您可能可以運行與板的以前版本相同的軟件負載,只需稍作更改到新板上的.dts文件...)
  3. 可以重複使用包含語句的現有.dts文件,並且可以覆蓋以前定義的功能。例如,如果您包含定義硬件組件的dtsi(設備樹包含文件),但已將其禁用,則只需在更高級別的dts文件中創建一個新節點,該節點除了啓用該組件外什麼都不做。
  4. 它們可以方便地閱讀和理解硬件描述,並且可以給出硬件組件的描述性名稱。

一些缺點包括:

  1. 不是那麼容易寫一個新的.dts文件,因爲它需要硬件的非常詳細的瞭解。
  2. 即使你知道硬件的所有細節,可能很難找出確切的語法用來表達你想要做的......(即文檔是缺乏在許多方面)
什麼

對於我來說,寫一個.dts文件幾乎是100%的試驗和錯誤,從其他.dts文件中拉出例子,看看它做了什麼,以及它是否接近我想要的東西......通常情況下,這些例子是我必須工作的與,並沒有太多的解釋發生了什麼事情的方式。

+2

如果您想知道設備驅動程序如何與設備樹以及如何根據您的驅動程序修改dts文件。 :http://xillybus.com/tutorials/device-tree-zynq-1 – Raulp

相關問題