问题标签 [linux-device-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
909 浏览

linux-kernel - Linux 内核模块有内存限制吗?

Linux内核模块对内存使用是否有任何限制,即代码段大小或全局内存量或任何东西。

0 投票
2 回答
1202 浏览

linux - 如何使用mpc8xxx_gpio.c设备驱动

我是设备驱动程序开发的新手。我正在尝试访问 MPC837xERDB 评估板的 GPIO。

我已将其内核升级到linux-2.6.28.9并启用对mpc8xxx_gpio.c. 启动时,它成功检测到两个gpio控制器。

现在我的问题是我将如何使用它与gpio引脚通信?我是否必须修改mpc8xxx_gpio.c文件中的代码才能做任何我想做的事情,或者我可以使用内核(/ )中提供gpios的标准API。我也尝试了标准内核 API,但它失败了。这是我的代码:gpiogpio_request()gpio_free()

它给出以下 O/P:

有人可以给我一个示例代码或其他东西。实际上我正在尝试设置 GPIO 引脚号。9 为低电平有效,因为它连接到板上的 LED。

0 投票
2 回答
1456 浏览

linux-device-driver - 即时更改 linux 设备驱动程序的 I2C 地址

我有两个摄像头连接到我的 linux 系统。摄像机通过 I2C 控制。单个相机的设备驱动程序基于i2c-core设备驱动程序。我想在两个相机之间切换。因此,我想即时更改 I2C 地址以控制一台或另一台相机。

这合理吗?如果是,是否有一个功能,它可以做到这一点,或者是否有必要分别用i2c_detach_clientand分离和附加客户端i2c_attach_client

感谢您的任何建议,斯特凡

0 投票
4 回答
576 浏览

c - 编写 API 以与串行端口上连接的设备进行通信

恐怕我的问题中有几个术语是错误的。请容忍我,并在我错的地方纠正我。

我必须编写一个库/程序,它将提供一组功能来操作连接在串行端口上的读卡器。就像弹出插入其中的卡一样,用户只需调用他的代码,例如,

cardEject()和其他功能将自己处理打开串口,向其写入数据,检查确认,检查错误代码,在失败时重新发送命令等。我很清楚与串口上的设备通信。

我的问题是,在编写完所有这些函数并对其进行测试之后,我应该如何将它们提供给用户。
我应该给他一个头文件(.h)和一个目标文件(.o)吗?这样他就可以在编译他的实际程序时链接到该对象。
我应该提供一个静态库(.a)吗?

哪个是更好的主意?

每个函数打开串口然后关闭它是一个好主意吗?或者initCardReader()打开它,设置它的属性并closeCardReader()应该关闭它?所有其他函数只能在initCardReader()?

现在是一个愚蠢但真实的问题 :-) 用于此类程序的术语是什么?它是驱动程序、库还是设备接口?此类项目的正确标签是什么?

谢谢你的时间。

编辑
感谢大家指导我。非常感谢。
这个 API 必须成为更大项目的一部分。事实上,我也会从事那个项目。但是这个 API 很有可能会在有我或没有我的其他项目中使用。我认为,考虑到可能在其他项目中使用,图书馆更有意义。如果我错了,请纠正我。

0 投票
1 回答
1279 浏览

linux - 为什么某些硬件无法检测到某些 USB 海量存储设备?

我正在尝试使用复合 USB 框架修改大容量存储驱动程序,以允许嵌入式大容量存储设备在我的 Xbox 360 上可见。我已确认这不是简单的 VendorID/ProductID 块。

我想了解是什么特别阻止了某些设备(例如 Xbox 360)看到某些大容量存储设备。尽管我的问题是针对 Xbox 的,但解释为什么设备无法看到某些类型的大容量存储的通用答案也是可以接受的。

我观察到,在我拥有的闪存设备中,那些只定义了 2 个端点(批量输入、批量输出)的闪存设备不起作用。而所有包含 3 个端点(批量输入、批量输出、中断输入)的大容量存储设备都可以正常工作。这是相关的观察还是巧合?

0 投票
2 回答
2560 浏览

linux - ioctl 驱动程序函数是否从 linux 2.6 下的原子上下文执行?

我正在跟踪我们的一个驱动程序中的“原子调度”错误,并且想知道 ioctl 是否是原子上下文。此外,如果有人对如何进入和退出原子上下文以及它们出现的常见位置有什么要分享的,那将是有帮助的。

0 投票
6 回答
9491 浏览

c - 在哪里使用易失性?

我读到了 volatile 关键字,但我不知道在什么情况下应该使用它。

当内存(变量)被更新并且进程没有意识到这一点时?

在什么情况下驱动程序应该使用 volatile 变量?

0 投票
3 回答
2450 浏览

linux - 如何编译要使用 Gprof 分析的驱动程序

简单的问题..如何编译驱动程序以使用 Gprof 进行分析?

我当前的 Makefile:

工作得很好(我可以加载驱动程序等),但是如果我尝试将 -pg 选项添加到文件中,则会出现错误。

生成文件:

我得到错误:

0 投票
1 回答
1027 浏览

linux-device-driver - Linux驱动程序-如何防止中断

我是 linux 驱动程序的新手,正在为硬件编写一个字符驱动程序。

在执行驱动程序功能(例如ioctl)时防止中断(软件/硬件)干扰的确切方法是什么?

谢谢,

0 投票
3 回答
3413 浏览

linux - 低延迟中断处理(从内核返回到用户空间的预期平均时间是?)

我有一个带有专有设备驱动程序的光纤链路。
链接进入 PCIe 卡。在 RHEL 5.2 (2.6.18-128~) 上运行,
我已经mmap在卡上设置了接口,用于设置和 FIFO 访问等,这些读/写需要几微秒才能完成,所以一切都很好。

但是当然不能将它用于中断,所以我必须使用提供的内核模块,以及它的用户空间 lib 接口。

从 WaitForInterrupt() 返回大约需要 70µs。(引发中断的时间被锁定在固件中,我读到了这个,正如我上面所说的大约需要 2µs,并将其与固件中的当前时间进行比较)

中断发生和用户空间 API 中断调用等待方法返回之间的预期访问时间是多少?

网络/其他高速接口占用?