乙個led驅動,做個記號
硬軟體環境:s3c2440/linux-2.6.36/busybox-1.18.4/arm-linux-gcc 4.4.3
下面是模組c**:
#include
#include
#include
#include
#include
#include
module_license("gpl");
module_author("zhanglong");
/** 板子上的led1,2,4,8分別對應連在gpf4,5,6,7上
**gpfcon ==> 0x56000050
*gpfdat ==> 0x56000054
*gpfup ==> 0x56000058**/
#define io_phys 0x56000000
#define gpfcon_offset 0x50
#define gpfdat_offset 0x54
#define gpfup_offset 0x58
struct led_device_s ;
struct led_device_s my_led[4];
ssize_t my_write(struct file *fp, const char __user *buf, size_t count, loff_t *off)
else
return 4;
}ssize_t my_read(struct file *fp, char __user *buf, size_t count, loff_t *off)
int my_open(struct inode *no, struct file *fp)
int my_release(struct inode *no, struct file *fp)
struct file_operations my_ops = ;
int test_init(void)
ret = register_chrdev_region(my_led[0].no, 4, "my dev");
if (ret)
for (i = 0; i < 4; i ++)
return ret;
}void test_exit(void)
unregister_chrdev_region(my_led[0].no, 4);
}module_init(test_init);
module_exit(test_exit);
下面是makefile檔案內容
#kernel = /home/zl/my2440-2.6.13
kernel = /media/study/linux/kernel/my2440-2.6.36
#kernel = /lib/modules/$(shell uname -r)
/build
default:
make -c $(kernel) m=
$(shell pwd) modules
clean:
make -c $(kernel) m=
$(shell pwd) modules clean
obj-m +
=test
.o
執行make命令後,「insmod test.ko」插入模組。用
echo 1 > led0_node
echo 0 > led0_node
echo 1 > led1_node
echo 0 > led1_node
echo 1 > led2_node
echo 0 > led2_node
echo 1 > led3_node
echo 0 > led3_node
即可使led滅或亮
其中led0_node,led1_node,led2_node,led3_node必須是字元裝置檔案,主,次裝置號分別為(52,0)(52,1)(52,2)(52,3)
led0_node,led1_node,led2_node,led3_node對應的gpf4,5,6,7控制的led
LED字元裝置驅動
一 實驗環境 開發機環境 作業系統 ubuntu 10.10 交叉編譯環境 arm linux gcc 4.4.1,安裝位置 usr local arm 4.4.1 6410板子核心原始碼路徑 work linux 2.6.36.2 v1.05 目標板環境 ok6410 a linux2.6.36 ...
字元裝置驅動 Led
驅動檔案 使用linux3.2.81核心 include include include include include include include include include include include static struct class ledsdrv class 類結構體 st...
字元裝置驅動 LED型
字元驅動程式 對於led型別的字元裝置驅動函式編寫 1 建立乙個file operation結構體,裡面會有點燈操作的各個硬體操作函式 2 編寫乙個drv init 函式 3 要對drv init函式進行修飾為入口函式,告訴核心,載入驅動時進行掛接 4 有init函式,那麼也會有出口函式exit m...