我正在学习“Linux 设备驱动程序”。我创建了一个名为char_device
. 当我从设备读取数据时,它会不断将消息打印到终端,使机器无限崩溃。
驱动中读操作的源码:
static ssize_t my_read(struct file *my_file, char __user *buf, size_t len, loff_t *off) {
uint8_t *message = "Hello from the kernel world!\n";
size_t datalen = strlen(message);
if(len > datalen) {
len = datalen;
}
printk(KERN_INFO "Char driver: Read");
if(copy_to_user(buf, message, len)) {
return -EFAULT;
}
return len;
}
用于读取设备的用户空间命令:
cat /dev/char_device
驱动程序不断打印“来自内核世界的你好!” 向终端发送消息。