按照alinx的学习教程,学习了hello world,接着就是学习RTC中断了。
教程中介绍了MPSOC的各种中断基本概念,我就挑着总结了:
RTC介绍
Zynq Ultrascale+ MPSOC的RTC可以由VCC-PSBATT供电,只需要一个纽扣电池,板子断电后,它还可以继续计时。

中断介绍
Zynq Ultrascale+ MPSOC含有APU和RPU,也是就A53和R5。各自有个中断控制器,A53对应的是GICv2、R5对应的是GICv1。

RPU的中断控制器

图中可以看到有三种中断源:
PPI:私有外设中断,只能对固定的core有效;
SPI:共享外设中断,可不是flash那个spi哈,我第一眼看到就整混了;
SGI:软件中断,用于软件主动产生中断;
然后就是介绍一堆寄存器,具体去参考ug1085吧。
APU的中断控制器

GICv2将中断分成了两个组,group0和group1,其中:
group0是安全中断,由nFIQ驱动;
group1是非安全中断,由nIRQ驱动;
中断号分配如下:

然后就是描述什么中断优先级、分组什么的,好特么烧脑,先不管了。直接跟着后面学,用到再说。
Vitis工程搭建
吸取之前的教训,我们基于之前的vivado工程生成的xsa文件,重新建一个vitis工程文件夹,Launch Vitis IDE后,我们这次不建APP工程,先只建立一个hardware平台:

选择vivado工程导出的xsa文件,然后建立好后就只有platform工程:

然后直接找RTC的例子工程:


最低0.47元/天 解锁文章
1232

被折叠的 条评论
为什么被折叠?



