linux中断程序
发布时间: 2024-07-20 21:17:54
① linux中,中断注册和中断服务程序只能写在驱动层还是能写在应用层
我也不完全理解,但是比你知道的多点。
Linux中,分内核态和用户态。
你写的所有的驱动,都是出于内核态->可以直接使用内核相关资源;
应用层,都是用户态->无法直接操作底层的东西 -> 想要操作,比如获得权限,切换到内核态,然后才能操作。
你这里的需求,我的理解是:
对应你这句
“在中断服务程序中操作另一个外设”
不知道你的目的和打算用的手段是啥
一般的,ISR中,操作别的设备,常见的是:
设置对应的(比如该硬件本身,或者别的设备B的)寄存器的对应的位,以便通知其某种事情发送或状态变化了。
然后设备B会:
要么是由于(被修改了寄存器而)发生了中断,然后可以接着处理其所要做的事情;
要么是一直轮训,检测对应的某种资源释放变化,比如上面被改的寄存器的对应的位,发现变化了,再去调用你的函数,做对应的处理。
注意:
中断,不论是哪个设备的中断,都不应该占用(CPU)太长时间
-> 导致别的中断或服务无法及时运行
仅供参考。
热点内容