導航:首頁 > 器材知識 > linux設備樹如何設置

linux設備樹如何設置

發布時間:2021-12-26 02:35:09

1. linux 什麼時候加入設備

Linux and the Device Tree

Linux內核設備樹數據使用模型。

Open Firmware Device Tree (DT) 是一個數據結構,也是一種描述硬體的語言。准確地說,它是一種能被操作系統解析的描述硬體的語言,這樣操作系統就不需要把硬體平台的細節在代碼中寫死。

從結構上來說,DT是一個樹形結構,或者有名結點組成的非循環圖,結點可能包含任意數量的有名屬性,有名屬性又可以包含任意數量的數據。同樣存在一種機制,可以創建從一個結點到正常樹形結構之外的鏈接。

從概念上講,一套通用的使用方法,即bindings。Bindings定義了數據如何呈現在設備樹中,怎樣描述典型的硬體特性,包括數據匯流排,中斷線,GPIO連接以及外設等。

盡可能多的硬體被描述從而使得已經存在的bindings最大化地使用源代碼,但是由於屬性名和結點名是簡單字元串, 可以通過定義新結點和屬性的方式很方便地擴展已經存在的bindings或者創建一個新的binding。在沒有認真了解過已經存在的bindings的情況下,創建一個新的binding要慎之又慎。對於I2C匯流排,通常有兩種不同的,互不相容的bindings出現,就是因為新的binding創建時沒有研究I2C設備是如何在當前系統中被枚舉的。

1. 歷史

2. 數據模型
請參考Device Tree Usage章節
2.1 High Level View
必須要認識到的是,DT是一個描述硬體的數據結構。它並沒有什麼神奇的地方,也不能把所有硬體配置的問題都解決掉。它只是提供了一種語言,將硬體配置從Linux Kernel支持的board and device driver中提取出來。DT使得board和device變成數據驅動的,它們必須基於傳遞給內核的數據進行初始化,而不是像以前一樣採用hard coded的方式。

觀念上說,數據驅動平台初始化可以帶來較少的代碼重復率,使得單個內核映像能夠支持很多硬體平台。

Linux使用DT的三個主要原因:
1) 平台識別 (Platform Identification)
2) 實時配置 (Runtime Configuration)
3) 設備植入 (Device Population)

2.2 平台識別
第一且最重要的是,內核使用DT中的數據去識別特定機器。最完美的情況是,內核應該與特定硬體平台無關,因為所有硬體平台的細節都由設備樹來描述。然而,硬體平台並不是完美的,所以內核必須在早期初始化階段識別機器,這樣內核才有機會運行特定機器相關的初始化序列。

大多數情況下,機器識別是與設備樹無關的,內核通過機器的核心CPU或者SOC來選擇初始化代碼。以ARM平台為例,setup_arch()會調用setup_machine_fdt(),後者遍歷machine_desc鏈表,選擇最匹配設備樹數據的machine_desc結構體。它是通過查找設備樹根結點的compatible屬性並與machine_desc->dt_compat進行比較來決定哪一個machine_desc結構體是最適合的。

Compatible屬性包含一個有序的字元串列表,它以確切的機器名開始,緊跟著一個可選的board列表,從最匹配到其他匹配類型。以TI BeagleBoard的compatible屬性為例,BeagleBoard xM Board可能描述如下:
compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3";
compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3";
在這里,」ti, omap3-beagleboard-xm」是最匹配的模型,"ti,omap3450"次之,"ti,omap3"再次之。

機敏的讀者可能指出,Beagle xM也可以聲明匹配"ti,omap3-beagleboard",但是要注意的是,板級層次上,兩個機器之間的變化比較大,很難確定是否兼容。從頂層上來看,寧可小心也不要去聲明一個board兼容另外一個。值得注意的情況是,當一個board承載另外一個,例如一個CPU附加在一個board上。(兩種CPU支持同一個board的情況)

2. linux 設備樹 需要更新uboot嗎

一般不需要,但是如果修改過設備樹中跟啟動有關的信息,那就需要修改uboot的
環境變數

3. 如何修改mips linux 設備樹dom

LinuxandtheDeviceTreeLinux內核設備樹數據使用模型。OpenFirmwareDeviceTree(DT)是一個數據結構,也是一種描述硬體的語言。准確地專說,它是一種能被操作系統屬解析的描述硬體的語言,這樣操作系統就不需要把硬體平台的細節在代碼中寫死

4. 編譯linux內核設備樹文件使用什麼命令

Linux源碼的arch/powerpc/boot/dts/目錄下存放了很多dts文件,可以作為參考文件。另外dtc編譯器在內核專源碼2.6.25版本之後已經被屬包含進去。在2.6.26版本之後,生成blob的簡單規則已經加入makefile,如下命令:
$ make ARCH=powerpc canyonlands.dtb

也可以根據自己的硬體修改好dts文件後,用下面類似命令生成dtb文件。
$ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb

$ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu

5. linux中內核使用設備樹時,驅動載入的時候,device的數據怎麼傳給驅動

linux設備樹驅動exynos4412怎麼寫
系統調用是操作系統內核和應用程序之間的介面,設備驅動程序是操作系統內核和機器硬體之間的介面。設備驅動程序為應用程序屏蔽了硬體的細節,這樣在應用程序看來,硬體設備只是一個設備文件,應用程序可以象操作普通文件一樣對硬體設備進行操作。設備驅動程序是內核的一部分,它完成以下的功能:
1、對設備初始化和釋放。
2、把數據從內核傳送到硬體和從硬體讀取數據。
3、讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據。
4、檢測和處理設備出現的錯誤。
在Linux操作系統下有三類主要的設備文件類型,一是字元設備,二是塊設備,三是網路設備。字元設備和塊設備的主要區別是:在對字元設備發出讀/寫請求時,實際的硬體I/O一般就緊接著發生了,塊設備則不然,它利用一塊系統內存作緩沖區,當用戶進程對設備請求能滿足用戶的要求,就返回請求的數據,如果不能,就調用請求函數來進行實際的I/O操作。塊設備是主要針對磁碟等慢速設備設計的,以免耗費過多的CPU時間來等待。
已經提到,用戶進程是通過設備文件來與實際的硬體打交道。每個設備文件都都有其文件屬性(c/b),表示是字元設備還是塊設備?另外每個文件都有兩個設備號,第一個是主設備號,標識驅動程序,第二個是從設備號,標識使用同一個設備驅動程序的不同的硬體設備,比如有兩個軟盤,就可以用從設備號來區分他們。設備文件的的主設備號必須與設備驅動程序在登記時申請的主設備號一致,否則用戶進程將無法訪問到驅動程序。
最後必須提到的是,在用戶進程調用驅動程序時,系統進入核心態,這時不再是搶先式調度。也就是說,系統必須在你的驅動程序的子函數返回後才能進行其他的工作。如果你的驅動程序陷入死循環,不幸的是你只有重新啟動機器了,然後就是漫長的fsck。
讀/寫時,它首先察看緩沖區的內容,如果緩沖區的數據未被處理,則先處理其中的內容。

6. linux的spi設備樹信息怎麼被讀入內核

linux3.0隻是個內核抄,用來 編譯成二進制,然襲後被燒到板上去。 ubuntu 是個操作系統,它是用來搭建一個linux環境,然後在這個環境下 編譯 linux內核、文件系統、linux應用程序等。(不用windows環境是因為在windows下編譯linux程序很麻煩)

7. linux-3.14.52怎麼使用設備樹

3.14×5/4+3.14×0.5-3.14×3/4 =3.14×5/4+3.14×1/2-3.14×3/4 =3.14×(5/4+1/2-3/4) = 3.14×1 =3.14

8. 如何在linux-3.x內核編譯設備樹

可以讓設備樹文件和內核一起編譯,單獨編譯的化,可以參考下面的文檔:
http://blog.csdn.net/woshigaoyuan/article/details/13996277

9. linux設備樹到底是什麼該如何徹底理解

Linux這幾年發展迅猛,勢如破竹。 雖然內核 3.0版本,並沒有什麼重大的修改,不過,這已經預示著Linux將迎來一個新的時代。 《linux設備驅動程序》是基於2.6.10來寫的。《深入理解linux內核》是基於2.6.11來寫的。雖然2.6.x的內核,在主要內容上變化不大,不過已經有些顯得跟不上內核更迭的速度了。 目前內核方面寫的不錯的書籍中,最新的算是《深入Linux內核架構》了,一個德國人寫的。這本書是基於2.6.24寫的。這本書在國外是作為教材用的,個人覺得,從自學的角度上講,要比ULK更好,而且裡面與最新的內核更貼近,看起來更舒服一些。 《linux device drivers》英文第三版序言里有這樣一段話:「I'm excited by what I witness in the embedded arena, and I hope this text helps by doing more; but ideas are moving fast these days, and it's already time to plan for the fouth edition, and look for a fourth author to help.」 不難看懂,我就不翻譯了。從這里可以看出,作者們已經做好找第四位合作者寫第四版的准備了:) 萬事都是需要與時俱進的。所以,這兩本書都是會不斷更新的。否則,就只能說明一點,出版商發現有更好的書籍替代他們了:) 不管怎麼樣,希望這些大部頭的下一版的作者中,能看到中國開發者的名字~~

閱讀全文

與linux設備樹如何設置相關的資料

熱點內容
steam令牌換設備了怎麼辦 瀏覽:246
新生測聽力儀器怎麼看結果 瀏覽:224
化學試驗排水集氣法的實驗裝置 瀏覽:156
家用水泵軸承位置漏水怎麼回事 瀏覽:131
羊水鏡設備多少錢一台 瀏覽:125
機械制圖里型鋼如何表示 瀏覽:19
測定空氣中氧氣含量實驗裝置如圖所示 瀏覽:718
超聲波換能器等級怎麼分 瀏覽:800
3萬軸承是什麼意思 瀏覽:110
鑫旺五金製品廠 瀏覽:861
蘇州四通閥製冷配件一般加多少 瀏覽:153
江北全套健身器材哪裡有 瀏覽:106
水表閥門不開怎麼辦 瀏覽:109
花冠儀表盤怎麼顯示時速 瀏覽:106
洗砂機多少錢一台18沃力機械 瀏覽:489
超聲波碎石用什麼材料 瀏覽:607
組裝實驗室製取二氧化碳的簡易裝置的方法 瀏覽:165
怎麼知道天然氣充不了閥門關閉 瀏覽:902
公司賣舊設備掛什麼科目 瀏覽:544
尚葉五金機電 瀏覽:59