Zynq ucosiii axitimer中断实现过程

2015-07-06 20:43 阅读 3,539 次 评论 0 条

AxiTimer是PL中定制的timer属于arm的外设部分,那么axitimer计时产生的定时器中断是如何中断arm的呢?

Vivado SDK下基于µC/OS "Hello World"工程中已经添加了Concat模块将定时器的中断输出连接到了zynq的 IRQ_F2P中断源上。也就是axitimer是通过PL到PS的中断使arm中断的。下面的AxiTimer_config代码也说明了AXItimer使用中断源61,,正式f2p中断。

这也给我了一个提示,可以将外部设备的数据完成需要处理的中断映射到f2p中断。以前接触过的PL DMA在数据传输完毕后,产生的中断就是使用f2p中断。

axitimer中断源编号

下面是AXITimer_Init()函数关于中断映射的过程函数,并且使能中断。此时中断callback函数还是空函数,相当于中断不会执行任何操作。

axitimer中断映射设置与使能

最后通过AXITimer_CallbackSet(Timer0, 0, Timer0ISR);将callback函数与中断服务函数联系起来。

上面的中断处理与xilin standalone driver基本是相同的,内部的使用的函数是一致的,如下

UCOS_IntVectSet(62, 0, DEF_BIT_00, Timer1ISR, &Timer1);

UCOS_IntSrcEn(62);

所以教程中的第二个axitimer的例子就不再做了,基本是一样的。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:Zynq ucosiii axitimer中断实现过程 | 起点博客
分类:应用笔记 标签:, , , , ,

发表评论


表情