ZYNQ 双核运行并交互,一个linux,一个裸核

zynq 7000 一般有2个cpu (arm A9),我们一般都用一个cpu0,本实验让2个cpu 都运行起来,cpu0 运行操作系统petalinux 2018.2, cpu1: 裸机流水灯。同时通过共享内存的方式,实现2个核之间的交互。

关于zynq 双核运行的官方文档有如下3篇:

xapp1078-amp-linux-bare-metal.pdf

xapp1079-amp-bare-metal-cortex-a9.pdf

ug1186-zynq-openamp-gsg.pdf

我们这个实验对应xapp1078, 但文档对应petalinux2014 的版本,有点太老了,而我的实验是在petalinux2018.2 上完成的。

前提条件

1:会做petalinux 2018.2 或其他版本的启动制作。如果不会请看:petalinux 2018.2 在ubuntu 16 下的工程制作并启动实验

2:熟悉 zynq 7000 AMP模式 双裸核CPU同时运行,因为这个比较简单,可以作为本实验的热身。

硬件平台的建立

硬件工程的建立是在Vivado2018.2 上完成的。其实要求很简单,符合linux下流水灯实验的要求即可,当然还需要挂接上SD卡。我的硬件就用的那个流水灯实验的工程,若有不清楚,请参考:

zynq 7000 petalinux 2018.2下的流水灯实验

裸机流水灯工程的准备和验证

这个流水灯工程是建立运行在cpu1上的,存放地址在0x1e00_0000,工程的建立请看:zynq 7000 AMP模式 双裸核CPU同时运行。链接里的工程建立的存放地址是0x1000_0000,但我们这里cpu0 要运行petalinux2018.2 ,所以设置得比较高。

程序的代码做了适当修改如下:

cpu1的led.c

#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xparameters.h"
#include "xil_io.h"
#include "sleep.h"
#define MY_IP 0x41200000

#include "xil_mmu.h"
#define COM_VAL (*(volatile unsigned int*)(0xffff0000))
#define COM_VAL1 (*(volatile unsigned int*)(0xffff0004))
#define COM_VAL2 (*(volatile unsigned int*)(0xffff0008))

i
  • 12
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: Zynq是一种可编程的处理器,它集成了一个双核的 ARM Cortex-A9 处理器和一个 FPGA(可编程逻辑阵列)。因此,它可以作为一个裸机(也称为硬件)运行,也可以运行基于Linux的操作系统。 在裸机模式下,Zynq的硬件直接与外部设备通信,不需要任何操作系统的支持。这种模式通常用于实时系统,因为它具有高效和确定性。 在Linux模式下,Zynq运行一个基于Linux的操作系统,该操作系统管理设备驱动程序和中间件,以支持应用程序的运行。这种模式通常用于开发高级应用程序,如图像处理,机器学习和视频处理。 ### 回答2: Zynq是一款由Xilinx公司推出的基于ARM处理器和可编程逻辑(FPGA)集成在一起的芯片。它结合了裸机Linux系统的两种运行模式。 在裸机模式下,Zynq芯片可以直接运行用户编写的裸机程序,而不需要操作系统的介入。这种模式下,用户可以直接控制硬件资源,编写实时性要求高的应用程序。例如,可以利用可编程逻辑部分和ARM处理器的协同工作,实现同步数据交换、硬件加速等功能。 另一种运行模式是使用Linux操作系统。在这种模式下,用户可以借助丰富的Linux软件生态系统提供的开发工具和库函数,快速开发复杂的应用程序。Linux操作系统提供了丰富的功能,如多任务处理、文件系统支持、网络功能、设备驱动等,极大地方便了应用程序的开发和部署。 使用Linux操作系统的优势在于可以快速有效地利用现有软件资源和开发工具,提高开发效率,降低系统设计的复杂性。而在裸机模式下,用户可以更加精细地控制硬件资源,实现高效的实时性能。 综上所述,Zynq芯片既支持裸机模式,又支持Linux系统模式,用户可以根据具体应用需求选择合适的运行模式。裸机模式适用于实时性要求高的场景,而Linux模式则适合复杂应用程序的开发和快速迭代。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值