request_irq 函数可不可以在应用层(非驱动层)直接使用?

时间:2022-01-23 04:15:52
request_irq 函数可不可以在应用层(非驱动层)直接使用?例如:

int main()
{
   .....

   request_irq (...);

   ....
}

如果能的话,最好能有个范例。

18 个解决方案

#1


没人回答,自己up一下。

#2


应用层调用的是C库中的函数,C库中有 request_irq 这个函数吗??如果没有就不能调用

#3


应用层与内核打交道的方法是系统调用,内核中的其他函数是应用程序不可见的。

#4


那么内核可不可以调用应用层用户自己定义的函数?

#5


同样看不见。

#6


能不能象windows一样以回调函数的方式实现内核调用应用层用户自己定义的函数???

#7


moudle就是这样接入的

#8


同样是不可行的,用户空间和内核空间完全不同,即使传函数指针进来也不行。
module确实是用户定义的,但并不是应用层,所以这不属于楼主说的情况。

用户进程与内核的交互只能使用系统调用方式。

#9


就是就是,补充一点,中断资源是内核管理的关键部分,不是说想申请一个irq vector就可以申请的,通常对于一些旧的ISA设备,vector号是固定的,而对于PCI设备,这是内核初始化时扫描PCI总线和读取PCI设备的配置空间来动态分配vector的哈

#10


up... 自己顶一下,希望更多人参与讨论。

#11


驱动也分两种:一种是内核级的驱动(普通驱动都是这样),另一种是应用层的驱动
在内核级的驱动中只能调用内核中的函数,不能调用C库中的函数
在应用级编程时,如果你某些时候需要使用内核中的某个结构,也可以引用内核中的头文件中的相应结构体或常量(但需要编译器知道你的内核相应头文件的路径),这是不限制的,但不能使用内核中的函数,因为你连接时找不到相应的库
内核级驱动程序在insmod时,由insmod程序完成了你的程序与内核函数的连接

#12


不可以使用的.

#13


tb01412(tb)回答的好。

#14


mark and study

#15


mark

#16


帮忙顶

#17


非要用的话,也许可以自已定义一个系统调用#define _NR_XXX 283

当然你系统调用的函数实现是在内核,并且要重新编绎内核.
哈哈,这种方式还是很土的.

#18


路过:)
请教:tb01412(tb) 我对内核驱动了解一些,我很想了解一些用户太驱动的知识不知道有没有相关的书籍或文章可以介绍一些不:)

#1


没人回答,自己up一下。

#2


应用层调用的是C库中的函数,C库中有 request_irq 这个函数吗??如果没有就不能调用

#3


应用层与内核打交道的方法是系统调用,内核中的其他函数是应用程序不可见的。

#4


那么内核可不可以调用应用层用户自己定义的函数?

#5


同样看不见。

#6


能不能象windows一样以回调函数的方式实现内核调用应用层用户自己定义的函数???

#7


moudle就是这样接入的

#8


同样是不可行的,用户空间和内核空间完全不同,即使传函数指针进来也不行。
module确实是用户定义的,但并不是应用层,所以这不属于楼主说的情况。

用户进程与内核的交互只能使用系统调用方式。

#9


就是就是,补充一点,中断资源是内核管理的关键部分,不是说想申请一个irq vector就可以申请的,通常对于一些旧的ISA设备,vector号是固定的,而对于PCI设备,这是内核初始化时扫描PCI总线和读取PCI设备的配置空间来动态分配vector的哈

#10


up... 自己顶一下,希望更多人参与讨论。

#11


驱动也分两种:一种是内核级的驱动(普通驱动都是这样),另一种是应用层的驱动
在内核级的驱动中只能调用内核中的函数,不能调用C库中的函数
在应用级编程时,如果你某些时候需要使用内核中的某个结构,也可以引用内核中的头文件中的相应结构体或常量(但需要编译器知道你的内核相应头文件的路径),这是不限制的,但不能使用内核中的函数,因为你连接时找不到相应的库
内核级驱动程序在insmod时,由insmod程序完成了你的程序与内核函数的连接

#12


不可以使用的.

#13


tb01412(tb)回答的好。

#14


mark and study

#15


mark

#16


帮忙顶

#17


非要用的话,也许可以自已定义一个系统调用#define _NR_XXX 283

当然你系统调用的函数实现是在内核,并且要重新编绎内核.
哈哈,这种方式还是很土的.

#18


路过:)
请教:tb01412(tb) 我对内核驱动了解一些,我很想了解一些用户太驱动的知识不知道有没有相关的书籍或文章可以介绍一些不:)