linux設備樹
可以讓設備樹文件和內核一起編譯,單獨編譯的化,可以參考下面的文檔:
http://blog.csdn.net/woshigaoyuan/article/details/13996277
『貳』 編譯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
『叄』 linux目錄結構
進入 根目錄 :cd /
執行tree命令 :tree >/aa.txt(將結果輸出到根目錄的a.txt文件中)
打開a.txt就看到目錄結構了
『肆』 Linux 設備樹中這句指令的逗號什麼意思
在傳統Linux內核中,ARM架構的板極硬體細節過多地被硬編碼在arch/arm/plat-xxx和arch/arm/mach-xxx,比如板上的platform設備、resource、i2c_board_info、spi_board_info以及各種硬體的platform_data,這些板級細節代碼對內核來講只不過是垃圾代碼。而採用Device Tree後,許多硬體的細節可以直接透過它傳遞給Linux,而不再需要在kernel中進行大量的冗餘編碼。導致ARM的merge工作量較大,其次ARM很多的代碼都是垃圾,代碼裡面有若干愚蠢的table,而多個人在維護這個table,從而導致了沖突。
————————————————
『伍』 linux 設備樹 需要更新uboot嗎
一般不需要,但是如果修改過設備樹中跟啟動有關的信息,那就需要修改uboot的
環境變數
『陸』 linux中內核使用設備樹時,驅動載入的時候,device的數據怎麼傳給驅動
linux設備樹驅動exynos4412怎麼寫
系統調用是操作系統內核和應用程序之間的介面,設備驅動程序是操作系統內核和機器硬體之間的介面。設備驅動程序為應用程序屏蔽了硬體的細節,這樣在應用程序看來,硬體設備只是一個設備文件,應用程序可以象操作普通文件一樣對硬體設備進行操作。設備驅動程序是內核的一部分,它完成以下的功能:
1、對設備初始化和釋放。
2、把數據從內核傳送到硬體和從硬體讀取數據。
3、讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據。
4、檢測和處理設備出現的錯誤。
在Linux操作系統下有三類主要的設備文件類型,一是字元設備,二是塊設備,三是網路設備。字元設備和塊設備的主要區別是:在對字元設備發出讀/寫請求時,實際的硬體I/O一般就緊接著發生了,塊設備則不然,它利用一塊系統內存作緩沖區,當用戶進程對設備請求能滿足用戶的要求,就返回請求的數據,如果不能,就調用請求函數來進行實際的I/O操作。塊設備是主要針對磁碟等慢速設備設計的,以免耗費過多的CPU時間來等待。
已經提到,用戶進程是通過設備文件來與實際的硬體打交道。每個設備文件都都有其文件屬性(c/b),表示是字元設備還是塊設備?另外每個文件都有兩個設備號,第一個是主設備號,標識驅動程序,第二個是從設備號,標識使用同一個設備驅動程序的不同的硬體設備,比如有兩個軟盤,就可以用從設備號來區分他們。設備文件的的主設備號必須與設備驅動程序在登記時申請的主設備號一致,否則用戶進程將無法訪問到驅動程序。
最後必須提到的是,在用戶進程調用驅動程序時,系統進入核心態,這時不再是搶先式調度。也就是說,系統必須在你的驅動程序的子函數返回後才能進行其他的工作。如果你的驅動程序陷入死循環,不幸的是你只有重新啟動機器了,然後就是漫長的fsck。
讀/寫時,它首先察看緩沖區的內容,如果緩沖區的數據未被處理,則先處理其中的內容。
『柒』 linux 設備樹 從哪個版本開始
1、kernel最早加入設備樹的歷史得追溯到v2.6.23,從這個版本開始,在driver目錄下多了一個of目錄。當然,此時只是引入一些新想法而已。這距離linus大怒說出(2011年3月17日):this whole ARM thing is a f*cking pain in the ass,還早著。
2、於是從2011年3月開始,內核在PowerPC、ARM等體系裡正式打算使用設備樹。以ARM體系為例,加入設備樹的版本就是v3.1,可以在arch/arm/boot/目錄下看到dts目錄的出現。