C 如何在Raspberry pi中使用arm中断实现真正的ISR?

C 如何在Raspberry pi中使用arm中断实现真正的ISR?,c,raspberry-pi,arm,interrupt,C,Raspberry Pi,Arm,Interrupt,我正在用C语言构建一个应用程序,部署到Raspberry pi 3板上,其中,我将使用gpio驱动的中断。 我尝试过使用“WiringPiISR()”,但我发现它并没有像问题中指出的那样真正创建ISR处理程序: .我需要的是一种在C中使用arm中断的方法,而不仅仅是一种解决方法 不幸的是,这是不可能的!至少在您以非内核模式使用操作系统之前。尽管您可以为您的操作系统()编写驱动程序(Linux中的内核模块),也可以忽略操作系统,在裸机模式下开发自己的程序(它需要高级知识)。在这两者之间有一个操作系

我正在用C语言构建一个应用程序,部署到Raspberry pi 3板上,其中,我将使用gpio驱动的中断。 我尝试过使用“WiringPiISR()”,但我发现它并没有像问题中指出的那样真正创建ISR处理程序:
.
我需要的是一种在C中使用arm中断的方法,而不仅仅是一种解决方法

不幸的是,这是不可能的!至少在您以非内核模式使用操作系统之前。尽管您可以为您的操作系统()编写驱动程序(Linux中的内核模块),也可以忽略操作系统,在裸机模式下开发自己的程序(它需要高级知识)。

在这两者之间有一个操作系统。您不能执行任何中断处理程序。要执行中断处理程序,您需要修改操作系统内核或编写自己的操作系统内核。您需要操作系统是错误的。然而,机器相当复杂。有一个中断“控制器”分层,每个控制器都有启用/挂起标志。至少有三层,一个中断堆栈,cp15寄存器和irq汇编程序。大约2-10k更模糊的机器代码。