Nios II中断简述及中断调试技巧

Nios II中断简述及中断调试技巧Nios II中断处理方式带有典型的RISC处理器的特征,所有的中断处理都从同一入口进入,然后由软件加以分配。系统ISR维护着一个中断向量表,表中的每一项代表着一个专项处理程序的入口。所有的专项处理程序都是由用户定义然后注册到中断向量表中的,叫做用户ISR。 Nios II中断处理过程如下: 1.拷贝一份程序状态字到ctl1; 2.清除全局中断允许位PIE,禁止中断; 3.将下一条将执行的指令的地址存入R29,以便中断返回之用; 4.跳转到中断入口地址,进入系统ISR; 5.系统ISR保护现场; 6.系统ISR检测ctl1的PIE位,如为0则进入软中断处理程序,从11继续,否则由7继续; 7.系统ISR检测Ctl4,如果有中断申请,则转到硬中断处理和序,否则进入软中断处理程序; 8.硬中断处理程序将检测中断申请号,并检索中断向量表,跳转到用户中断处理程序; 9.用户中断处理程序做出具体的处理,最后返回系统ISR; 10.系统ISR恢复现场,并返回; 11.软中断处理程序进行陷井指令、模拟指令判断,并做相应处理,然后返回系统ISR; 12.系统ISR恢复现场并返回。软中断处理程序是用来处理由软件发起的中断事件的,包括调试指令引起的中断及未定义指令引起的中断。与用户编程相关API函数有: 1. alt_irq_register():向系统ISR注册用户ISR的API函数。 2. alt_irq_disable():禁止某个中断服务。 3. alt_irq_enable():与alt_irq_disable()对应,用来开启某个中断服务。 4. alt_irq_disable_all():关闭全局中断。 5. alt_irq_enable_all():开启全局中断。用户定义的用户ISR程序要符合统一的原形定义。
doc 文件大小:106.5KB