Zynq uart软件中断hook的操作过程.doc

上传人:白大夫 文档编号:3275567 上传时间:2019-08-07 格式:DOC 页数:2 大小:14KB
返回 下载 相关 举报
Zynq uart软件中断hook的操作过程.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Zynq uart软件中断hook的操作过程.doc》由会员分享,可在线阅读,更多相关《Zynq uart软件中断hook的操作过程.doc(2页珍藏版)》请在三一文库上搜索。

1、Zynq uart软件中断hook的操作过程早期运用的arm芯片规模较小,在芯片上直接有uart的中断服务函数地址寄存器,直接将中断服务函数的地址写入寄存器就搞定了。然后zynq似乎比较复杂,中断也比较复杂。在zynq中有个Scu(snoop control unit窥探控制单元,也是arm所有的)专门控制中断处理。Vivado SDK中提供了scugic驱动来处理相关的操作。下面具体说一下,中断hook的过程。XScuGic_LookupConfig / 找到scugic的定义实体;XScuGic_CfgInitialize / 初始化scugic实体;Xil_ExcepTIonInit()

2、 /异常处理初始化Xil_ExcepTIonRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT,(Xil_ExcepTIonHandler)XScuGic_InterruptHandler,pScuGic);这一步基本是固定的,中断触发之后统一由XScuGic_InterruptHandler先处理,然后在HandlerTable中查找相应的处理函数。这个HandlerTable数组的长度为95个,包含了所有的中断ID。Xil_ExceptionEnable(); /异常处理使能XScuGic_Connect( pScuGic,XPAR_PS7_UART_1_IN

3、TR, (Xil_InterruptHandler)ZUartPs_InterruptHandler , (void*)pUart1Inst);这才是将我们定义的中断服务函数地址映射到HandlerTable中。也可以使用UartPs驱动中包含的中断处理函数。XScuGic_Enable( pScuGic, XPAR_PS7_UART_1_INTR);/使能uart对应的中断ID。XUartPs_SetInterruptMask( pUart1Inst, XUARTPS_IXR_RXOVR | XUARTPS_IXR_TXEMPTY /*| XUARTPS_IXR_TNFUL*/ );这应用程序中开启接收缓冲fifo中断与发送为空中断。这时uart接收到数据,则会自动跳入中断处理函数ZUartPs_InterruptHandler中。向发送硬fifo中写入数据,在数据发空后,也会跳入中断处理函数ZUartPs_Interrupt Handler中。两者根据不同中断状态寄存器中的标识进行相应的处理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1