Linux内核编程11期:设备树(device tree)
設備樹(device tree)機制是Linux內(nèi)核從linux-3.x版本開始引進的一種機制,目的是解決內(nèi)核源碼的arch/arm目錄下代碼混亂的問題:隨著ARM生態(tài)的快速發(fā)展,在內(nèi)核源碼的arch/arm目錄下,存放著幾十種arm芯片和幾百個開發(fā)板相關的源文件,很多開發(fā)板和處理器的中斷、寄存器等相關硬件資源都在這個目錄下以.c或.h的文件格式定義。而對于內(nèi)核來說,與這些硬件耦合,會導致內(nèi)核代碼混亂不堪,每個開發(fā)板上運行的內(nèi)核鏡像都必須單獨編譯配置,無法通用。什么時候Linux內(nèi)核能像Windows鏡像那樣,無論你的電腦什么配置,一個Windows安裝包,都可以直接下載安裝運行呢?
設備樹機制,實現(xiàn)了Linux內(nèi)核和硬件平臺的解耦:每個硬件平臺的硬件資源使用一個設備樹文件(xxx.dts)來描述,而不是在arch/arm下以.c 或 .h 文件來定義。Linux內(nèi)核是一個通用的內(nèi)核,在啟動過程中,在通過解析設備樹中的硬件資源來初始化某個具體的平臺。
引入設備樹后,很多和內(nèi)核驅(qū)動開發(fā)的工作也發(fā)生了變化:以往驅(qū)動工程師關注的頭文件宏定義、寄存器定義,現(xiàn)在這些基本上不用關注,關注的重點則轉(zhuǎn)向了如何根據(jù)硬件平臺去配置和修改設備樹文件。很多驅(qū)動的編程接口也發(fā)生了變化,開始慢慢使用device tree提供的編程接口去開發(fā)驅(qū)動。
本期課程主要面向嵌入式開發(fā)人員,分享Linux下驅(qū)動開發(fā)所需要的設備樹知識和技能,學完本期課程,預期收獲如下:
- 徹底看懂Linux設備樹文件
- 能熟練修改和配置設備樹文件
- 掌握基于設備樹的platform driver驅(qū)動編寫方法
- 掌握gpio和pinctrl的配置
- 學習SoC芯片架構、總線機制
- 對設備樹運行機制有系統(tǒng)理解
- 熟練掌握設備樹的編程接口(驅(qū)動開發(fā)中常用)
本期課程一共35個課時,課程總時長:08小時39分15秒,和本次課程相關的PPT文檔、代碼、流程圖(PDF版本)已上傳網(wǎng)盤,已購課學員請及時下載觀看學習。
課程的詳細目錄如下:
本期課程已發(fā)布到CSDN學院:https://download.csdn.net/course/detail/37149https://download.csdn.net/course/detail/37149
總結
以上是生活随笔為你收集整理的Linux内核编程11期:设备树(device tree)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios信号从4g变成无服务器,苹果信号满
- 下一篇: Linux服务器ftp+httpd部署