中断驱动AT91rm9200和AT9260差别不大,主要要修改的地方是个别的中断向量号,另外就是最大中断向量号。

我所作的修改:

c/src/lib/libcpu/arm/at91sam9260/irq/irq.h

删除了相关的9200的定义,定义了AT9260中断的最大数量。

 

c/src/lib/libcpu/arm/at91sam9260/irq/irq.c中主要修改isValidInterrupt函数。

还有相关寄存器的引用。

 

 

另外修改c/src/lib/libcpu/arm/at91sam9260/irq/bsp_irq_init.c

主要是修改一些寄存器的引用。

 

至此,中断的驱动也完成了。

这里要特别的注意一下:RTEMS要求所有的中断处理程序都是有参数的,参数为中断的向量号。由于这个BSP是我学习之初做的,也并没有顾及这个问题。具体代码在 c/src/lib/libcpu/arm/at91sam9260/irq/bsp_irq_asm.S中。只要中断处理程序中不使用这个参数,还是没有多大问题的。本身AT9260的中断就是设备分开的,也不是太需要,但是需要的朋友还是要做一些修改。