linux gpio字元裝置驅動

2021-06-20 06:22:36 字數 937 閱讀 4785

在linux下編寫led驅動,控制相應的gpio管腳。

在這裡有兩種方式

1) 直接操作相應的暫存器

2) 通過核心提供的gpio操作庫函式

第一種方式就省略了,只講第二種方式。

這裡板卡上有兩個led燈,在使用者空間採用兩種方式控制led

1. /dev/led0 /dev/led1

fd0 = open("/dev/led0", o_rd_wr);

ioctl(fd0, 1, 0);//ioctl(fd,cmd,data)

ioctl(fd0, 0, 0);

fd0 = open("/dev/led1", o_rd_wr);

ioctl(fd1, 1, 1);//ioctl(fd,cmd,data)

ioctl(fd1, 0, 1);

2. /dev/led

fd = open("/dev/led", o_rd_wr);

ioctl(fd0, 1, 0);//ioctl(fd,cmd,data)

ioctl(fd0, 0, 0);

ioctl(fd0, 1, 1);//ioctl(fd,cmd,data)

ioctl(fd0, 0, 1);

主要新增的源**

#include #include

unsigned long led_gpio_table[2] =

s5pv210_gpc1(3),//

s5pv210_gpc1(4),

int cdd_open(...)

gpio_request(led_gpio_table[0], "gpc1_3");/*申請gpio管腳*/

int cdd_ioctl(...)

switch(cmd)

int cdd_release(...)

gpio_free(...);/*釋放管腳*/

linux gpio驅動示例

include include include include include include include include include include define jt gpio magic k define jt gpio read io jt gpio magic,1 define j...

Linux GPIO驅動 驅動框架概述

gpio是嵌入式開發中最常見的介面,之前自己就有寫過小的gpio驅動,提供ioctl介面給使用者空間操作。但直到最近才發現linux自身就有完善的gpio驅動框架,並且通過sysfs向使用者空間提供操作介面。linux的gpio驅動框架層次及資料結構如下 最上層是用來向向使用者空間提供介面,使用者可...

裝置驅動例項 字元裝置驅動

在整個linux裝置驅動學習中,字元裝置驅動較為基礎。通過對它的學習,對裝置驅動進一步加深了解 cdev 結構體struct cdev 講下比較重要的成員變數 dev t dev 定義了32位的裝置號,其中12位是主裝置號,20位是從裝置號。獲取主裝置號 major dev t dev 獲取從裝置號...