ZYNQ7020_双核例程

一、目标

1、掌握软件中断进行核间通信的原理及方法。
2、使用共享内存进行数据交互。
3、双核协同工作的基本模式。

二、基本功能


软中断
软中断
TCP_Client
CPU0
CPU1
串口
共享内存

三、SGI\共享内存

1、软件中断(SGI)

CPU可以通过SGI中断自己,或者被其他CPU中断。ZYNQ7000有16个SGI;使能SGI需要写中断号到ICDSGIR寄存器并指明目标CPU。清中断可以读ICCIAR(Interrupt Acknowledge)或者往ICDICPR寄存器相应位写1。
ZYNQ7020_双核例程_第1张图片

2、共享内存

共享内存:CPU0和CPU1在内存中约定好的一块内存区域。在ZYNQ中存在Snoop Control Unit用于维护L1 DCache 和L2 DCache一致性。当DDR中的数据被更改,从DCache中读到的是旧数据。维护DCache一致性的方法:写入数据时将残留在DCHache中的数据全部刷入DDR;读取时将DCache invalid,再通过DCache从DDR中读取最新数据。

四、结果

ZYNQ7020_双核例程_第2张图片

五、注意

1、cpu1的bsp要添加-DUSE_AMP=1编译条件。
2、lscript.l文件中的内存配置

你可能感兴趣的:(FPGA,ZYNQ)