ZYNQ-CPU-Intrrupt

一.简介

ZYNQ有两颗Cortex-A9核心,每颗CPU可以自己中断自己也能CPU0中断CPU1,反之一样,上一章讲解了通过访问变量的方式让两颗CPU交互起来,虽然能够交互,但是不够方便,所以本文所介绍的是如何使用软件中断。下图为软件中断序号 。
ZYNQ-CPU-Intrrupt

二.硬件搭建

本章节和上一篇文章的硬件环境是一样的没有任何改动。

三.软件设计

CPU自我中断参考程序 。
ZYNQ-CPU-Intrrupt
ZYNQ-CPU-Intrrupt
CPU核间中断,要让两颗CPU同时运行起来要创建FSBL文件并修改主程序参考Double-CPU章节,以及设置DDR内存,设置内存不允许有冲突这点请注意。
CPU0参考程序
ZYNQ-CPU-Intrrupt
ZYNQ-CPU-Intrrupt
CPU1参考程序
ZYNQ-CPU-Intrrupt
ZYNQ-CPU-Intrrupt
以上程序均测试ok;

四.总结

本章节是将中断与双CPU结合在一起,中断注册可以参考我之前写的ZYNQ-GPIO-Interrupt,双CPU如何运行可以参考ZYNQ-Double-CPU两篇文章。
API讲解;XScuGic_SoftwareIntr()此函数是启动软件中断,需要传入的参数为指向scugic指针,所要中断的ID(软件中断的ID),所要中断的CPU;
参考以下:
ZYNQ-CPU-Intrrupt

希望对你有益!

谢谢~

相关文章: