设备驱动程序在Linux内核中扮演着特殊的角色。它们是以编程方式抽象的“黑盒子”,使特定的硬件响应明确定义的内部编程接口;他们完全隐藏了设备如何工作的细节。
我想定义一个具有用户模式访问权限的 SPI 设备,如 http://linux-sunxi.org/SPIdev 中的示例所述 按照这些示例,我在设备树中添加了以下内容: &ecspi1 { .... 哦...
我是 Linux 内核模块编程的新手,许多关于该主题的入门指南都很少包含有关如何构建将在许多版本和 CPU 平台上运行的内核模块的信息...
Linux 内核源码中的 MTD 驱动定义如下。 结构 mtd_info_user { __u8 类型; __u32 标志; __u32 尺寸; /* MTD 的总大小 */ __u32 擦除...
ARM64。在 mmap() PCIe BAR 返回的地址上调用 memset() 会导致总线错误
我在应用层写了一个非常简单的测试程序。首先,我打开 PCIe 设备,然后 mmap() PCIe BAR 的起始空间。最后,我使用 mmap() 返回的地址,应用一个 o...
我正在尝试学习Linux并用我的简单驱动程序编译内核。 不幸的是,我在日志中没有看到驱动程序,并且未创建编译文件。 #包括 #inc...
我正在学习如何编写 Linux 驱动程序并选择我手边的 USB 棒。有一段时间,当我插入探针时,我一直在努力调用探针函数。 发生的事情是...
Linux 内核如何知道在 platform_data 中放入什么内容?
我正在分析设备驱动程序,例如TI TCA6408设备,驱动程序是gpio-pca953x。在 ->probe() 函数中,有一个从设备检索平台数据的部分: 静态整型
基于 chanctx 的驱动程序和非基于 chanctx 的驱动程序有什么区别?
我是Linux设备驱动程序的新手。我一直在为 WLAN 设备编写驱动程序。在使用 mac80211 注册回调时,我发现了一些有关通道上下文的回调(可选)。我...
struct i2c_driver 从不兼容的指针类型内核设备驱动程序初始化‘int (*)(struct i2c_client *)’
我正在尝试为我的 i2с 设备编写驱动程序。但我遇到了一个死胡同的问题,我在Google的帮助下好几天都无法解决。 一般来说,我将代码简化为最少到
如何限制Linux中Write_10或Read命令写入或读取的块数? [已关闭]
我的USB存储设备有一个64kB(受硬件限制)缓冲区用于缓存读/写,这意味着它最多只能缓存128块(512B)内存。 SCSI Write-10 命令有一个总块数
我正在尝试编写一个从网络读取/写入的块设备驱动程序。本质上,我已经修改了这里的 RAM 磁盘示例。这是我的代码。当我尝试写入块 de...
如何限制 Write_10 或 Read 命令中写入或读取的块数?
问题是:我的USB存储设备有一个64kB(受硬件限制)的缓冲区用于缓存读/写,这意味着它最多只能缓存128块(512B)内存。 SCSI Write-10 通讯...
我正在管理一个生成大量大型日志文件的 Linux 服务器,你知道。而且它们可以是千兆字节。我想要一种先进的技术来管理所有这些。 查看日志一直是个问题,
dev_set_drvdata 和 dev_get_drvdata 的可能用途是什么
我只是想知道当我们必须使用这些设置和获取驱动程序 API 时可能的用例是什么。 我所知道的是数据被保存了,稍后我们可以使用数据来做一些事情。我的
我有一个产品,基本上是一个基于 NXP LPC18xx 微控制器的 USB 闪存驱动器。我正在使用制造商 (LPCOpen) 提供的库来处理 USB MSC 和 SD 卡...
我尝试使用 echo -n '2-2' > /sys/bus/usb/drivers/usb/unbind 来取消绑定连接到 FTDI 芯片的 USB 设备,但我发现它在我之后立即自动绑定运行命令。 我的 lsusb -t lo...
在`spin_lock_init`和`DEFINE_SPINLOCK`之间更喜欢什么以及什么时候?
DEFINE_SPINLOCK 比 spin_lock_init 更好吗?前者比后者有哪些优点,可能有哪些缺点?
有人可以指出任何 API 或链接吗?我可以在其中检测 USB 设备和其他接口以将数据传输到其中。我正在尝试在 Linux 上执行此操作
BeagleBone AI-64 miniDP 上的连接显示器无法工作
我和我的同事正在开展一个大学项目,该项目要求我们为 BeagleBone AI-64 板创建一个基于 Linux 的构建系统。创建的构建系统应该能够检测相机
我有一个 PCI-e 硬件设备,其中有许多我想要读取和写入的寄存器。 但是,当我读取寄存器时,我将从之前的读取中获取一个值(第一次读取返回