当前位置:   article > 正文

zynq:pl-ps硬中断设置_zynq的linux系统pl至ps的中断优先等级

zynq的linux系统pl至ps的中断优先等级

对于硬中而言,需要设置将中断映射到哪个cpu上,其函数为

XScuGic_InterruptMaptoCpu(&ScuGic,1,F2P_INTR1_ID);

同时需要设置硬中断的触发类型及其触发优先级,同样优先级会先执行中断号小的,其函数为:

XScuGic_SetPriTrigTypeByDistAddr(DIS_ADDR,F2P_INTR1_ID,0x20,0x03);

  1. int initSwIntr(){
  2. int status;
  3. Xil_ExceptionInit();
  4. GicPtr=XScuGic_LookupConfig(GIC_VEC_ID);
  5. status=XScuGic_CfgInitialize(&ScuGic,GicPtr,GicPtr->CpuBaseAddress);
  6. if(status!=XST_SUCCESS){
  7. return XST_FAILURE;
  8. }
  9. Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,(void *)&ScuGic);
  10. status=XScuGic_Connect(&ScuGic,F2P_INTR1_ID,(Xil_ExceptionHandler)f2pintrhandler1,(void *)&ScuGic);
  11. if(status!=XST_SUCCESS){
  12. return XST_FAILURE;
  13. }
  14. XScuGic_InterruptMaptoCpu(&ScuGic,1,F2P_INTR1_ID);
  15. XScuGic_SetPriTrigTypeByDistAddr(DIS_ADDR,F2P_INTR1_ID,0x20,0x03);
  16. XScuGic_Enable(&ScuGic,F2P_INTR1_ID);
  17. Xil_ExceptionEnable();
  18. return XST_SUCCESS;
  19. }

注:对于GIC而言,需要有顺序,不能同时初始化两个cpu。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/892882
推荐阅读
相关标签
  

闽ICP备14008679号