作為一個驅動開發工程師,你一定不甘於僅僅只會使用各外設驅動的開發,而不知各外設子系統的內部實現。本專欄則主要是各外設子系統學習專欄的分類與彙總。經過一段時間的文章編寫,筆者完成了一部分Linux內核各外設子系統的學習文章,本章我把之前的學習文檔進行整理分類。
本次專欄主要分為基礎篇、設備驅動模型篇、各外設子系統設計分析篇進行說明 。本專欄彙總的內容主要是對LINUX設備驅動各子系統內部的設計實現進行分析說明,因此需要讀者具備一定的設備驅動開發能力,且希望學習與理解外設子系統的內部設計與實現流程。
本專欄彙總的文章是我近一年對LINUX內核各外設子系統實現的分析文檔,主要基於我自己的理解進行說明,裡面難免存在一些錯誤的表述,還請大家斧正。
基礎篇
針對Linux設備驅動而言,設備驅動模型貫徹始終,當我們徹底理解了設備驅動模型後,再學習各外設子系統的學習就比較容易。而設備驅動模型則依賴於SYSFS文件系統,因此我們有必要熟悉SYSFS文件系統的內容;而學習SYSFS文件系統,則需要理解VFS的概念,因此基礎篇主要涉及VFS、SYSFS文件系統的介紹,對於想要提高自己的同學,還是可以簡要熟悉一下的。這部分主要提供瞭如下幾篇文章。
LINUX VFS系統專欄
該專欄偏重於代碼的分析,主要基於linux 3.10內核分析的,不建議大家詳細看了,大概看下前三章就可以了(好久沒有看,這部分我也忘的差不多了。。。)。
Linux sysfs文件系統分析專欄
該專欄主要介紹sysfs文件系統的實現,而設備驅動模型則大部分藉助sysfs文件系統實現的,因此這部分內容可以詳細看下。
設備驅動模型篇
本篇章主要介紹LINUX設備驅動模型,理解了設備驅動模型,則可以很好的理解各外設子系統的設計與實現,因此這部分內容建議詳細看看。
LINUX設備驅動模型專欄
各外設子系統設計分析篇
在對上面兩個篇章內容有了理解後,那就開始進入外設子系統的學習,該篇章主要涉及platform 、字符設備、混雜設備、RTC子系統、IIC子系統、SPI子系統、MMC子系統、MTD子系統、NAND子系統、UART子系統、TTY子系統、MII BUS子系統、INPUT子系統、LED子系統、HWMON子系統、GPIO子系統、PWM子系統、PINCTRL子系統、REGULATOR子系統、CCF子系統、REGMAP子系同等。
LINUX Platform分析
LINUX字符設備相關的分析專欄
LINUX IIC子系統分析專欄
LINUX SPI子系統分析專欄
LIUNX MMC 子系統分析專欄
LINUX MII management/MDIO總線子系統專欄
LINUX MTD子系統專欄
LINUX NAND FLASH子系統專欄
LINUX TTY子系統專欄
LINUX UART子系統專欄
LINUX INPUT子系統專欄
LINUX HWMON子系統專欄
LINUX GPIO子系統專欄
LINUX LED子系統專欄
LINUX PWM子系統專欄
LINUX PINCTRL子系統專欄
LINUX REGMAP子系統專欄
LINUX CCF子系統專欄
LINUX REGULATOR子系統專欄
以上就是我這僅一年時間完成的LINUX外設子系統分析專欄的主要內容,這一年的學習也使我收穫很多,希望對大家有所幫助。