我不了解编写 Linux 内核模块/驱动程序的知识。
让我们举一个基本的例子。我有一个自己的输入设备,它连接到中断引脚之一上的微控制器。我知道当我按下设备上的按钮时,会导致微控制器中发生硬件中断。
作为裸机开发人员,我会将中断处理程序代码放在特定中断发生时中断向量将跳转到的地址。
现在,如果我们有一个在微控制器上运行的 Linux 内核,并且我希望为我的输入设备编写一个内核驱动程序,那么我如何准确地知道通过内核在哪里注册我的中断处理程序?
我还需要了解有关硬件、地址等的所有信息吗?我如何知道内核中的哪条中断线与我连接输入设备的确切引脚相关联?
答案1
无论什么设备,无论什么操作系统,出发点都是:您的设备如何连接到系统。 (插入 PCI 总线插槽?插入某个 USB 端口?硬连线到某些主板 SMBus 上?...)
如果接口不是太奇特,你的设备严格符合接口规范,你不想重新发明轮子,那么工作中最疯狂的部分(最接近硬件)很有可能是已经写入 Linux 内核,您首先需要选择合适的 API。
从一个开始向驱动程序开发人员提供 Linux API 的全球概述然后告诉我们更多有关您所做的选择或有关您的界面的信息。
关于微控制器,我希望它在中小企业总线。