原创 linux驅動開發:input子系統二

輸入子系統:linux內核中將所有輸入設備歸爲一個類:input子系統。裏面實現了幾乎所有輸入設備的公共操作接口,相當於內核給我們搭建了一個輸入子系統的框架,我們用它的框架開發驅動,會變得非常簡單。因爲一些公共的函數內核已經幫我們

原创 linux驅動開發:背光設備

上一篇的pwm 驅動,加上第一篇的led燈控制,合起來就是背光設備的驅動! 背光設備定位於僅僅對於lcd的背光進行控制,其中主要控制背光開關腳(GPIO),背光調節腳(PWM)! 由於很類似,在這裏就不做贅述 顯而易見,pwm

原创 linux驅動開發:按鍵2

上篇文章中斷按鍵的驅動跨度有點大,這裏面揉合了太多的東西,所以特地再重新寫以下,以加強理解: #include <linux/module.h> #include <linux/kernel.h> #include <linux/

原创 平臺,設備,驅動

繼上次研究ADC驅動,開始接觸platform這個東西。不過坦白講,還是理解的不是很透徹。所以準備今天爬一次code。以加深這方面的理解。 我們來看一個led燈的驅動是如何用平臺總線來實現的: struct gpio_led {

原创 嵌入式內核開發:led燈驅動

接觸單片機或者其他嵌入式芯片的編程中,最簡單的就是GPIO的High/Low控制。 比如學校裏面最基本的單片機實驗:led控制,流水燈,數碼管。其實都是最基本的GPIO操作。 那麼同樣,對應到linux嵌入式開發,GPIO的H

原创 linux驅動開發:input子系統一

input子系統開發:按鍵是一種標準的輸入設備,實驗以按鍵來分析,實現簡單的input子系統. 未完成. 實驗代碼:實現一個按鍵的功能 #include <linux/init.h> #include <linux/module.

原创 linux驅動開發:input子系統三

linux輸入設備的總結: 上一篇文章中,用戶空間可以open 我們的event1設備文件,也可以read我們的設備文件。可是我們的代碼裏面並沒有實現read 和 open函數。但是依舊可以抓到數據。這也就是說內核幫我們做好了很

原创 linux驅動:按鍵

按鍵:按下去我們get到low電平以此來判斷用戶輸入,可以把它看作是一個輸入設備。 通常在51單片機上,我們可以寫一個while,然後不停的輪詢,判斷某個gpio口被拉低了,我們便認爲按鍵被按下了。另外一種是中斷。當有中斷觸發時

原创 linux驅動開發之pwm蜂鳴器

驅動開發,控制pwm蜂鳴器! 蜂鳴器有多種類型,一種是給電就叫,另一種給電了還不行,還需要freq纔會叫。大概稱作有源和無源吧! 我們此時將buzzer的驅動加入到內核中去。 /* * linux/drivers/char/s

原创 linux驅動開發:總線,設備,驅動三要素

平臺總線和IIC,SPI,IIS都是總線類型,一般的,總線下,掛載對應的設備。但實際上,設備要正常運轉,是需要驅動程序來未知提供驅動的。所以linux內核也把驅動掛載在對應的總線下。總線,驅動,設備三者缺一不可. 相應的,內核衍

原创 linux驅動開發:24cxx一次讀、寫多個字節的編程實現

上篇文章實現了了24cxx eeprom驅動的編寫,但是其實很雞肋,很難用。當我一次性需要寫入/讀出多個字節時,這一切變的很難操作.那麼本篇文章來實現更進階的一次讀取/寫入多個數據的操作. 我們的驅動列表裏面使同時支持24c02,

原创 linux驅動開發:瞭解網卡的相關函數和結構

linux四層概念模型:應用層,傳輸層,網際層,網絡接口層 網卡設備驅動工作與網絡接口層 what we care net_device { name base_addr//IO 基地址 irq //中斷

原创 linux驅動開發:24cxx設備的操作一

24cxx驅動編程. 1.首先實例化一個i2c設備. 2.編寫對應的i2c設備驅動. 3.通過match規則匹配設備和驅動。對應驅動會調用自己的probe函數完成初始化 4.i2c設備的操作實現,write和read. 1

原创 內核開發:第一個hello world 模塊

linux內核版本:3.10.46 嵌入式linux學習:驅動開發之第一個linux模塊 驅動可以編譯進內核,也可以獨立編譯爲模塊。當需要時加載模塊,不需要時卸載模塊。 製作第一個模塊: #include #include st

原创 linux驅動開發:平臺設備驅動框架

有一定的mcu51基礎或者其他類似芯片基礎的人大概都聽說過IIC,SPI,IIS,USB,PCIe,CAN等總線。這些都是實實在在存在的總線。上面可以掛接遵循其協議的一個或多個設備。 linux內核自己虛擬地構建了一個稱作pla