转自http://blog.163.com/gcs_gcs/blog/static/17448606620121193113914/
在最近的工程中,需要用到PS/2键盘和鼠标作为控制输入,所以在网上找了一些相关的资料,内容很丰富,看来已经有很多人做过了这方面的编程。本篇Blog算是实践总结,为以后的开发积累一些基础知识。
MicroBlaze支持重启(reset),中断( interrupt), 暂停(break)和异常(
exception)。这里粗略的介绍:
reset当外部按键发出reset信号或者XMD通过MDM(MicroBlaze
Debug
module)发出reset信号,这些信号都会被proc_sys_reset模块接收,然后该模块产生一个16周期长的高电平信号至MicroBlaze的MB_RESET管脚。MicroBlaze响应reset,
PC 寄存器指向0x0地址,依照向量表中代码执行。
exception异常是MicroBlaze对内部运行发生错误的情况发做出的响应,这些情况包括:非法指令,指令和数据总线错误和未对齐的访问(unaligned
access)。如除0操作,非法操作码异常,数据总线异常等。
breakbreak分为software break和hardware
break。hardware
break,这时MDM模块的输出端口Ext_BRK和Ext_NM_BRK跟MicroBlaze对应的输入端口相连。一旦break响应,暂停返回地址(break
return address)自动装入R16寄存器中。而software
break通过brk和brki指令来完成。
inte