裸机调试----中断

学过一些非ARM的芯片,感觉通常的中断只要知道中断向量,然后往中断向量所指向的地址里面写中断服务程序(IRS)就行了,但是感觉ARM11在这方面有些不同,先给一个浅析中断的博文吧http://blog.csdn.net/yin138/article/details/6738917 ,但是这个博文中所给的中断服务程序我并没有看懂是怎么进入的,而且用这个程序我也没有运行成功,等会儿再仔细看看吧。
后来在网上找了一个中断程序,下载地址http://115.com/folder/fdmcdq1p#VIC_Interrupt,这儿对这个程序进行总结一下:
1、首先是如果要使用IRQ或者FIQ中断的话,必须在汇编程序中将CPSR中的第7位或者第6位相应地设置为0;
2、查阅6410芯片手册可以知道,6410的外部中断共有10组(0~9);其中第0组共有28个外部中断(EINT0~EINT27)。而6410将它所支持的64位中断源分为了2组(VIC0,VIC1);外部中断0~3属于VIC0中的0号中断INT_ EINT0,外部中断4~11属于VIC0中的1号中断INT_ EINT1。
2、中断设置,首先是中断使能位打开,VICINTENABLE。然后对于外部中断,应关闭其屏蔽位EINTMASK。
3、中断服务程序的入口地址,将该地址写入相应的VICVECTADDR即可。

你可能感兴趣的:(arm+linux)