发新话题
打印

关于中断服务程序与进程的关系的问题!

关于中断服务程序与进程的关系的问题!

请问,小弟在写中断服务程序时碰到一个问题,以前在51上开发因为不牵扯操作系统,所以中断服务程序比较好写,所有代码都在一起,需要数据传递的话用个全 局变量即可,在linux上我看到的是“处理程序不能向用户空间发送或接收数据,因为它不是在任何进程的上下文中执行的”(linux设备驱动中文第二版 第286页第5行),也就是在产生中断时无法访问当前进程中的变量,不管是全局还是局部变量,因为是在用户空间,而中断服务在内核空间运行。
    现在问题是如果在用户程序中调用request_irq函数申请中断,注册中断服务程序,如果我在该中断服务程序中调用了用户程序中的一个全局变量,执行 时还能访问到么?另外这种在用户空间申请中断的方式能否行的通?没看到有资料说可以在用户程序中申请中断的,都是在驱动中。
   BTW:我有个同事在DOS上开发过中断,他说可以用上面的方式,在用户程序中申请中断,注册中断服务程序,然后访问用户程序中的全局变量进行数据传递,不知道DOS系统是怎么实现这种方式的?感觉这样好像有问题!
谢谢      

TOP

怎么没有人回答啊?希望有明白的高手给予指点!      

TOP

在Linux中,不可能在中断服务程序中访问用户程序的全局变量。request_irq()也不是在用户程序中调用,而是在内核模块(一般都是由驱动程序提供模块的实现代码)中调用的!      
依然记得从你口中说出再见坚决如铁,昏暗中有种烈日灼身的错觉; 依然记得从你眼中滑落的泪伤心欲绝,混乱中有种热泪烧伤的错觉....

TOP

都操作系统完全没有了解,request_irq不能再用户空间调用      

TOP

发新话题