在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 獲取從裝置號...