環境:
主機:fedora12
目標板:mini6410
目標板linux核心版本:2.6.38
實現功能:
驅動目標板4個led.
說明:
led與6410引腳對應連線:
led1---gpk4
led2---gpk5
led3---gpk6
led4---gpk7
驅動源**:
led_driver.c:
[cpp]view plain
copy
#include
#include
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define device_name "led_driver"
#define t_majors 700
static
struct cdev fun_cdev;
static dev_t dev;
static
struct
class *led_class;
//功能:初始化io
static
void init_led(void)
//功能:ioctl操作函式
//返回值:成功返回0
static
long led_driver_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
else
writel(temp,s3c64xx_gpkdat);
return 0;
} static
struct file_operations io_dev_fops = ;
static
int __init dev_init(void)
device_create(led_class, null, dev, null, "led_driver");
return ret;
} static
void __exit dev_exit(void)
module_init(dev_init);
module_exit(dev_exit);
module_license("gpl");
module_author("jdh");
使用者程式:
test_led.c
[cpp]view plain
copy
#include
#include
#include
#include "stdio.h"
#include "sys/types.h"
#include "sys/ioctl.h"
#include "stdlib.h"
#include "termios.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "sys/time.h"
#include
#include
int main(int argc, char** argv)
strcpy(temp,argv[1]);
led_num = atoi(temp);
strcpy(temp,argv[2]);
led_value = atoi(temp);
printf("%d %d\n",led_num,led_value);
ioctl(fd,led_num,led_value);
close(fd);
return 0;
}
測試說明:
將編譯所得的可執行檔案test_led上傳到開發板
執行:./test_led 0 1 開啟led1
./test_led 1 1 熄滅led1
linux驅動之 led驅動
練手,第乙個字元驅動.用模組載入方法 華清遠見 嵌入式linux裝置驅動開發詳解 的 拿來改的.編譯過程發現很多錯誤.最後發現 這本書帶的驅動 都是基於linux2.4的.目前我用的linux2.6,部分需要做修改.我的板子是 友善之臂的 2410.vmware ubuntu nfs交叉編譯 首先 ...
Linux驅動 12 LED驅動
2.呼叫led驅動 1.1 led管腳的呼叫配置函式 gpio request gpio申請函式 gpio set value gpio賦值函式 s3c gpio cfgpin gpio配置函式,比如配置成輸入模式或者輸出模式 三星平台 s3c gpio output gpio配置成輸出模式的巨集定...
led 驅動程式測試
1.首先驅動程式檔案通過tftp傳輸到開發板上,然後執行insmod s3c led.ko 裝載led驅動模組 2.cat proc devices grep led,顯示led 250 3.建立裝置節點 mknod dev led0 c 250 0 mknod dev led1 c 250 1 m...