4核cpu怎么设置双核启动,cpu的双核需要自己开吗

首页 > 实用技巧 > 作者:YD1662023-05-15 04:19:57

图 13.3.1 系统框图


本次试验的两个CPU都会使用到串口,并且CPU0会对OCM进行写操作,CPU1对OCM进行读操作,这就要求共享外设和内存不能同时访问,以免产生冲突。我们可以利用软件产生中断(SGI)的方式来规避冲突。在初始状态下,CPU0先使用串口,在接收到用户数据后,将数据写入OCM中,并产生中断来触发CPU1中断,此时CPU0不在访问串口和OCM;CPU1触发中断后,开始访问串口和OCM,先从OCM中读出数据,通过串口来输出信息,并产生中断触发CPU0中断,之后不再访问串口和OCM;CPU0接收到CPU1的中断后,此时可以重新通过串口来接收用户输入的数据,从而避免了共享外设和内存的同时访问。
首先创建一个Vivado工程,工程名为“dual_core_amp”。本次试验的硬件环境搭建和“自定义IP核-呼吸灯试验”基本相同,只不过为了将程序固化在SD卡或者Quad SPI Flash中(注意BANK1的IO电平需要改成LVCMOS 1.8V),本次试验在ZYNQ处理系统中,添加了SD卡控制器和Quad SPI Flash控制器(图 5.3.1的框图中未画出)。最终ZYNQ系统硬件搭建的框图如下图所示:

4核cpu怎么设置双核启动,cpu的双核需要自己开吗(5)

图 13.3.2 ZYNQ系统硬件框图


双核AMP的实验在硬件环境搭建上和单核CPU的使用是一致的,仅在软件设计上存在差异。
13.4软件设计
在硬件设计的最后,我们打开了SDK开发环境。
首先创建CPU0的应用工程,在菜单栏中选择File->New->Application Project,新建一个SDK应用工程。工程名命名为cpu0_uart,处理器选择ps7_cortexa9_0,如下图所示:

4核cpu怎么设置双核启动,cpu的双核需要自己开吗(6)

图 13.4.1 创建CPU0应用工程


点击“NEXT”,然后选择“Empty Application”,点击“Finish”按钮完成SDK应用工程的创建。
接下来双击lscript.ld(位于cpu0_uart→src下),设置CPU0的访问空间。由于ZYNQ-7020核心板和ZYNQ-7010核心板的DDR3存储空间不同,因此这里设置有所区别。如果大家使用的是ZYNQ-7020核心板,DDR3的存储空间为1GByte,这里将CPU0的访问空间大小设置成约为DDR3存储空间的一半,即存储空间大小为0x1FF00000(Byte),如下图所示。

4核cpu怎么设置双核启动,cpu的双核需要自己开吗(7)

图 13.4.2 ZYNQ-7020核心板设置CPU0的DDR3访问空间


如果大家使用的是ZYNQ-7010核心板,DDR3的存储空间为512MByte,这里将CPU0的访问空间大小设置成约为DDR3存储空间的一半,即存储空间大小为0xFF00000(Byte),如下图所示。

4核cpu怎么设置双核启动,cpu的双核需要自己开吗(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.