Linux裝置驅動之《玩轉GPIO》

2021-05-22 22:08:13 字數 877 閱讀 3654

在linux裝置驅動之《點亮一盞led》 中,編寫了ioctl_c.h這樣的標頭檔案,在本文中將繼續使用這一頭檔案,**如下:

然後則是驅動模組程式,**如下所示:

這裡只說明與前面模組程式的區別,首先是ioctl_test函式

static int ioctl_test(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)

printk("/n ioctl_test");

switch(cmd)

return cmd;

}這裡多出了       

case gpio_io_set:gpio_cfg();break;

case gpio_io_write:gpio_write();break;

case gpio_io_read:gpio_read();break;

三個函式,從名稱上可以得知分別是對io的配置和讀寫操作,具體是怎麼實現的呢,那麼馬上轉移到這三個函式去瞅瞅

static void gpio_cfg()

函式說明:這個函式是用來配置gpgcon的函式。

static void gpio_read()

函式說明:讀取gpio函式。

static void gpio_write()

{printk("gpio-write start!!/n");

size_t data;

data = __raw_readl(ioctl.port*0x10+s3c2410_gpadat);

data &= ~(1《函式說明:寫gpio函式。 

下面是應用程式,這裡編寫應用程式就變得方便多了,需要什麼io就先配置,再讀寫

Linux裝置驅動之《字元裝置驅動》

linux裝置中最大的特點就是裝置操作猶如檔案操作一般,在應用層看來,硬體裝置只是乙個裝置檔案。應用程式可以像操作檔案一樣對硬體裝置進行操作,如open close read write 等。下面是乙個字元裝置驅動程式的簡單實現test.c 模組分析 1.初始化裝置驅動的結構體 struct fil...

Linux裝置驅動之字元裝置驅動

一 linux裝置的分類 linux系統將裝置分成三種基本型別,每個模組通常實現為其中某一類 字元模組 塊模組或網路模組。這三種型別有 字元裝置 字元裝置是個能夠像位元組流 類似檔案 一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置可以通過檔案系統節點來訪問,比如 dev tty1等。這...

使用靜態裝置節點的cdev字元驅動GPIO

檔案 beep.rar 大小 21kb 儘管在2.6的核心版本已經支援udev,可以很方便的使用,並且使用也很舒服。但是使用udev,在啟動過程中掃瞄 sys class目錄並生成裝置節點的時間稍微有點長,在一些系統中是無法忍受的,所以沒辦法只好放棄udev,回到靜態裝置節點的時代,以加快啟動速度。...