gpt4 book ai didi

linux - 我如何使用 cat 命令从我自己的字符设备驱动程序读取字符设备?

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:36 28 4
gpt4 key购买 nike

我正在尝试为 beaglebone 编写一个简单的读/写字符驱动程序。其中一项任务是能够使用 cat 命令从设备读取数据,但我无法这样做。

这是位于 char_drvr.c 中的字符设备驱动程序的读取函数代码:

ssize_t lkm_read (struct file *pfile,
char __user *buffer,
size_t length,
loff_t *offset)
{
int device_buffer = (int)gpio_get_value(gpioIn); //gets value from gpio pin (HI or LO)
return simple_read_from_buffer(buffer,length, offset, &device_buffer, sizeof(int));
}

当我运行我的测试应用程序时,Read 成功执行(返回正确的值),所以我知道该设备能够与设备驱动程序通信,但是当我运行时没有(立即)返回任何内容

$cat /dev/simple_char_driver

我的完整代码:https://github.com/gteeger/character_driver1

尝试的解决方案:

cat function calling read() infinite times

C - infinite read from cat in Device file

和其他一些。

非常感谢任何帮助

最佳答案

回答:它们被称为字符设备驱动程序,而不是 bool 设备驱动程序。

固定代码,现在 cat 工作:

ssize_t lkm_read (struct file *pfile,
char __user *buffer,
size_t length,
loff_t *offset)
{
char out = '0';
bool gpioPin = gpio_get_value(gpioIn);
if (gpioPin == 0) out = '0';
if (gpioPin == 1) out = '1';
printk(KERN_ALERT "Inside the %s function\n", __FUNCTION__);
return simple_read_from_buffer(buffer, length, offset, &out, sizeof(char));
}

关于linux - 我如何使用 cat 命令从我自己的字符设备驱动程序读取字符设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51472755/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com