mycdev.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include "myled.h"
#define CNAME "myled"
int major;
char kbuf[128]={0};
unsigned int* virt_rcc;
unsigned int* virt_moder1;
unsigned int* virt_odr1;
unsigned int* virt_moder2;
unsigned int* virt_odr2;
unsigned int* virt_moder3;
unsigned int* virt_odr3;
int myled_open (struct inode *inode, struct file *file)
{
printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);
return 0;
}
ssize_t myled_read (struct file *file, char __user *ubuf, size_t size, loff_t *loff)
{
int ret;
printk("%s:%s:%d\n",__FILE__,__func__,__LINE__);
if(size>sizeof(kbuf))size = sizeof(kbuf);
ret = copy_to_user(ubuf,kbuf,size);
if(ret)
{
printk("copy to user is error\n");
return -EIO;
}
return size;
}
ssize_t myled_write (struct file *file, const char __user *ubuf, size_t size,

该博客介绍了如何使用C++在Linux环境下控制LED1/LED2/LED3的点亮,涉及到设备驱动开发的相关知识。内容包括mycdev.c、myled.h和test.c三个文件的实现,以及通过串口通信展示的执行结果。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



