XILINX的INTC软核使用

本文详细解析了INTC软核的功能及其在系统中断管理中的作用,特别是当CPU中断接口不足时如何通过级联支持更多外设中断。同时,文章也提到了Xilinx SDK中INTC例程的不足之处,以及正确使用INTC与GIC配合的方法,包括初始化、使能和中断服务函数的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、有啥用

    INTC是一个软核,可以捕捉PL端外设的多个中断,并输出一个中断至CPU。INTC支持支持级联,能在系统中有非常多的外设而CPU中断接口不足时发挥作用。

二、SDK例程吐槽

    在xilinx的SDK中有相关外设、IP的例程,加快了开发速度。然而不得不吐槽的是INTC的例程不够完善。INTC例程中并未提及GIC的初始化,并且SDK不会自动生成INTC在GIC上的中断号,需要自己通过手册(例如UG1085)获得该中断号,此部分对开发的误导较大,让人误以为不需要设置GIC中断。并且PL串口的中断例程也很糟糕,在接收到特定个数的数据发生中断后,如果再接收到新的数据,那程序会不停地进入中断。

三、怎么用

  1. INTC的中断输出连接到CPU的GIC上,并初始化GIC,使能GIC相应中断号的中断,并将中断函数设置为INTC本体的服务函数XIntc_DeviceInterruptHandler
  2. 将PL外设中断信号连接入INTC,初始化INTC,并将相应INTC的输入接口编号使能中断,设置外设所需的中断服务函数
  3. 初始化外设,设置好外设的中断功能。
  4. 中断发生后GIC会调用相应的INTC中断服务函数,函数内会根据INTC内部寄存器自动识别是哪个外设产生中断,并调用相应的中断函数。
  5. GIC和INTC不需要手动清中断,而外设的可能需要自己在中断服务中清中断
  6. 参考设计,PL(GIC)中断:http://xilinx.eetrend.com/blog/2019/100043419.html
  7. 参考文章,INTC:http://blog.sina.com.cn/s/blog_98740ded0102uyzo.html
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值