欣欣工作室——带你走进单片机世界

         
累计访问4190907
当前在线103
首   页 | 常用器件 | 问答集萃 | 技术文摘 | 在线学习 | 共享工程 | 资料下载 | 网友交流

 
Web xinworks
 预览
 系统架构
 寻址空间
 CPU 寄存器
 中断处理
 指令集对比


XW51 软核MCU

中断处理


版权声明:“XW51软核MCU”软件及其说明文档由 欣欣工作室 版主 Stoneway Qi 编写,作者保留其版权。任何人可以免费在其产品设计或著作中使用或引用该软件及其说明文档,但要求保留原作品当中的版权声明,并注明引用段落的出处。 -- Stoneway Qi 主页: http://www.xinworks.com 邮箱: Stonewayqi@hotmail.com

XW51 CPU的中断分为两种,一种是指令异常中断,另一种是外设请求中断。当XW51 CPU遇到不可识别指令时,会发生指令异常中断。该中断是不可屏蔽的,即不受中断允许位的限制。当有外设发出中断请求且该请求被允许时,XW51 CPU会发生外设请求中断,该中断受中断允许逻辑的控制,是可屏蔽的。两种中断的分别有不同的入口地址,指令异常中断的入口地址为0x0008,外设请求中断的入口地址为了0x0003。XW51 CPU支持8路外设请求中断,它们具有相同的优先级,当有多个中断源同时发出中断请求时,由中断处理程序(ISR)决定优先处理哪一个。XW51 CPU在响中断时会自动清除全局中断允许位(PSW.1),使得中断嵌套被禁止,如果中断处理程序重新置位该控制位,则当前中断可以嵌套另一中断。与MCS51不同,XW51 CPU在响应中断时,会自动保存程序状态字(PSW)。当中断发生时,程序状态字(PSW)及返回地址自动入栈;在中断返回时程序状态字自动从栈中弹出,XW51 CPU则跳转到返回地址处继续执行。

指令异常中断是一种很有用的处理机制,利用这种机制,可以将某些复杂的指令(如:MUL,DIV等)改由软件模拟实现,从而减少对FPGA逻辑资源的占用,为解决资源和性能的折中提供了一种手段。这种机制也可以用来方便的实现软件的断点调试功能。

XW51 CPU的中断处理流程见下图:

外设请求中断的系统中断处理程序(已加到编译器的库中)从0x0003处开始执行,完成中断源及处理次序的判定,并跳转到用户中断处理程序。用户中断处理程序的入口地址分别为0x000b,0x0013, 0x001b, 0x0023, 0x002b, 0x0033, 0x003b, 0x0043, 分别对应外设请求中断0-外设请求中断7。用户中断处理程的书写格与在MCS51下的书写格式相同,如外设请求中断0的处理程序可写成:

                void isr0(void) interrupt 1
                {
                  .
                  .
                  .             
                }

建设中...





粤ICP备06035157号