在VxWorks里写关于mpc862的中断程序

来源:互联网 发布:阿里云rds价格 编辑:程序博客网 时间:2024/06/04 08:56

有一点儿写一点儿:

 

关于mpc862的SIU的外部中断源

其实,程序比较简单,流程也比较简单。

在xworks里使用这些中断,只需要几个步骤:

首先,要自己编写一个中断服务程序。至于写中断服务程序有哪些限制,我在这里也不说了,windriver的参考文档里有说明。

然后,就是编写一个中断初始化程序。在这个程序里要完成的工作有:

     设置SIEL寄存器相应的中断位,选择中断触发方式;

     使用intConnect(),把写好的中断服务程序挂接到相应的中断向量上;

     使用intEnble(),使能相应的中断

 

实现这几步,中断应该是可以使用了。

 

要注意的是:

INUM_TO_IVEC()和IVEC_TO_INUM(),这两个宏定义只是在做类型转换;

中断号(interrupt number)和中断向量(vector),对于PowerPC来讲,VxWorks只是在类型上做了区别,实际值是相同的。

比如,对于外部中断IRQ7,它的中断号是(int)14,整型数值,而它的中断向量也是(FUNCPTR *)14,却是个函数指针。

 

另外,对于边沿触发的中断,SIPEND寄存器的中断响应值需要程序去复位;而

         对于电平触发的中断,SIPEND寄存器的中断响应值是SIU中断控制器自己复位的。

原创粉丝点击