techv-2410開發板,通過io口 gpg8 與gpg9 兩個口控制兩個led燈
驅動程式:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
module_license("dual bsd/gpl");
unsigned int led_dev;
int flag;
static struct class *myled_class;
void delay(int time)
void led_cycle(void)
else
}void led_blink(void)
else
}static int myled_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)
switch(cmd)
break;
case 'b':
break;
default: break;
} return 0;
}static struct file_operations myled_fops=;
struct myled_dev_t /* 璁懼緇撴瀯浣?*/
myled_dev;
static int __init myled_init(void) /* 璁懼椹卞姩妯″潡鍔犺澆鍑芥暟 */
else
printk("[ok]/n");
ret = cdev_add(&myled_dev.cdev, led_dev, 1); /* 娉ㄥ唽璁懼 */
s3c2410_gpio_cfgpin(s3c2410_gpg8,s3c2410_gpg8_outp);
s3c2410_gpio_cfgpin(s3c2410_gpg9,s3c2410_gpg9_outp);
s3c2410_gpio_pullup(s3c2410_gpg8,0);
s3c2410_gpio_pullup(s3c2410_gpg9,0);
myled_class=class_create(this_module,"myled");
class_device_create(myled_class,null,led_dev,null,"myled");
printk("programs start/n");
return 0;
}static void __exit myled_exit(void) /*璁懼椹卞姩妯″潡鍗歌澆鍑芥暟*/
module_init(myled_init);
module_exit(myled_exit);
應用程式:
#include
#include
#include
#include
#include
void delay(int time)
linux 驅動程式 高階字元驅動程式
ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...
linux裝置驅動程式 字元裝置驅動程式
先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...
Linux裝置驅動程式 字元裝置驅動程式
1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...