在操作系统下中断的执行过程(软件 操作系统)

      在wince或linux下,产生了某个中断,首先进入中断异常---->汇编的处理代码,保存中断环境,关中断,等等,(c代码)查询中断号---->利用中断号作为偏移量,得到一个指针,可能是函数指针也可能包含函数指针的结构---->执行和中断源相关的中断处理程序(user)---->中断返回。

      需要说明的是也可能早就中断返回了,把剩余的事情用IST来实现。

      用户的中断函数都要注册,注册的作用就是把其函数指针放到固定的中断向量表里或者指向的数据结构里(linux)

 

 

      不同ARM对于中断的处理不太相同(硬件实现),Philips ARM7会把函数指针放到专门的寄存器里,三星的2440就不会,所以软件实现的方法也不一样,一般而言要设置一块RAM来放置中断向量表,在操作系统的OEM层的中断处理程序会读中断号,作为偏移量找到对应的中断函数,而我们也要在某个时候把中断函数地址放到这个向量中,这个也就是所谓的中断函数的注册。

你可能感兴趣的:(在操作系统下中断的执行过程(软件 操作系统))