赞
踩
对于硬中而言,需要设置将中断映射到哪个cpu上,其函数为
XScuGic_InterruptMaptoCpu(&ScuGic,1,F2P_INTR1_ID);
同时需要设置硬中断的触发类型及其触发优先级,同样优先级会先执行中断号小的,其函数为:
XScuGic_SetPriTrigTypeByDistAddr(DIS_ADDR,F2P_INTR1_ID,0x20,0x03);
- int initSwIntr(){
- int status;
- Xil_ExceptionInit();
- GicPtr=XScuGic_LookupConfig(GIC_VEC_ID);
-
- status=XScuGic_CfgInitialize(&ScuGic,GicPtr,GicPtr->CpuBaseAddress);
- if(status!=XST_SUCCESS){
- return XST_FAILURE;
- }
-
- Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,(void *)&ScuGic);
-
- status=XScuGic_Connect(&ScuGic,F2P_INTR1_ID,(Xil_ExceptionHandler)f2pintrhandler1,(void *)&ScuGic);
- if(status!=XST_SUCCESS){
- return XST_FAILURE;
- }
- XScuGic_InterruptMaptoCpu(&ScuGic,1,F2P_INTR1_ID);
- XScuGic_SetPriTrigTypeByDistAddr(DIS_ADDR,F2P_INTR1_ID,0x20,0x03);
- XScuGic_Enable(&ScuGic,F2P_INTR1_ID);
-
- Xil_ExceptionEnable();
-
- return XST_SUCCESS;
-
- }
注:对于GIC而言,需要有顺序,不能同时初始化两个cpu。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。