0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ZYNQ学习要点:双核通信

454398 来源:csdn 作者:crazyMadKing 2020-11-26 13:47 次阅读

今天,我们聊聊双核通信。双核通信的基础是已经建立好了双核工程,且配置完成。两个CPU之间传递数据,采用了共享内存,共享内存设置在OCM(On Chip Memory)内。

在没有做其他设置的情况下,ZYNQ上电后地址空间分别如下图所示:


OCM共256KB按照64KB分为4块,其中前三块在SDK中表述为RAM0占192KB处于地址空间的最开头和DDR共用地址空间,最后一块64KB处于地址空间的最后。ZYNQ的DDR固定占地址空间的最开头1GB字节因而ZYNQ的DDR最大容量就只有1GB。

为了避开OCM从上图可知实际使用的DDR只有1023MB(最开头的1MB被保留避开OCM的前三块)。从0x40000000到0xDFFFFFFF的2GB空间留给了自定义IP或者其他IP的寄存器,从BSP的xparameters.h可以看出在PL部分添加的IP其基址都是从0x40000000开始的,而ZYNQ自己的寄存器则从0xE0000000开始编制,具体寄存器内容请查阅UG585的附录B Register Details。

其实Standalone作为基础的BSP所作的工作都是在通过指针访问各个寄存器而已,在不考虑安全性的前提下可以完全不用BSP直接操作寄存器对ZYNQ进行操作。
需要在SDK中进行双核通信的设置,主要是程序的设置。

1、CPU1需要被CPU0启动

CPU0的配置

设置共享内存区域:

#define Send_CPU1_Status (*(volatile unsigned int *)(0xFFFF0000))

在主函数中添加:

Xil_SetTlbAttributes(0xFFFF0000,0x14de2);// CPU0中禁止OCM的Cache属性

2、CPU1通信配置

CPU1的配置

设置共享内存区域:

#define Send_CPU1_Status (*(volatile unsigned int *)(0xFFFF0000))

在主函数中添加:

Xil_SetTlbAttributes(0xFFFF0000,0x14de2);// CPU0中禁止OCM的Cache属性

3. 设置完成

双核之间通过对该内存区域进行读写操作完成通信功能。

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10882

    浏览量

    212271
  • Zynq
    +关注

    关注

    10

    文章

    610

    浏览量

    47219
收藏 人收藏

    评论

    相关推荐

    AMD/Xilinx Zynq® UltraScale+ ™ MPSoC ZCU102 评估套件

    Zynq UltraScale+ MPSoC 器件,具有四 Arm® Cortex-A53、 Cortex-R5 实时处理器和基于 AMD/Xilinx 16nm FinFET
    的头像 发表于 11-20 15:32 457次阅读
    AMD/Xilinx <b class='flag-5'>Zynq</b>® UltraScale+ ™ MPSoC ZCU102 评估套件

    全志T113异构处理器的使用基于Tina Linux5.0——异构通信验证

    6、通信验证 6.1、C906小创建通讯节点 在C906小串口终端建立两个通讯节点用于监听数据,输入eptdev_bind test
    发表于 11-20 09:47

    ZYNQ核心板学习笔记

    此款开发板使用的是 Xilinx 公司的 Zynq7000 系列的芯片,型号为 XC7Z020-2CLG484I,484 个引脚的 FBGA 封装。
    的头像 发表于 10-24 18:08 878次阅读
    <b class='flag-5'>ZYNQ</b>核心板<b class='flag-5'>学习</b>笔记

    dsp和单核dsp的区别

    DSP(Digital Signal Processor,数字信号处理器)与单核DSP在多个方面存在显著差异,这些差异主要体现在处理能力、任务分配、资源利用以及适用场景等方面。 一、处理能力
    的头像 发表于 09-24 16:14 903次阅读

    正点原子ZYNQ7015开发板!ZYNQ 7000系列、ARM、PCIe2.0、SFPX2,性能强悍,资料丰富!

    本帖最后由 jf_85110202 于 2024-9-14 10:33 编辑 正点原子ZYNQ7015开发板!ZYNQ 7000系列、ARM、PCIe2.0、SFPX2,性能
    发表于 09-14 10:12

    TI基于ConcertoMCU的PRIME电力线通信数据集中器方案应用说明

    电子发烧友网站提供《TI基于ConcertoMCU的PRIME电力线通信数据集中器方案应用说明.pdf》资料免费下载
    发表于 09-10 11:10 0次下载
    TI基于Concerto<b class='flag-5'>双</b><b class='flag-5'>核</b>MCU的PRIME电力线<b class='flag-5'>通信</b>数据集中器方案应用说明

    [XILINX] 正点原子ZYNQ7035/7045/7100开发板发布、ZYNQ 7000系列、ARM、PCIe2.0、SFPX2!

    正点原子FPGA新品ZYNQ7035/7045/7100开发板,ZYNQ 7000系列、ARM、PCIe2.0、SFPX2! 正点原子Z100
    发表于 09-02 17:18

    FPGA的IP软使用技巧

    的工作原理、使用方法和限制条件。 参数化配置 : 如果IP软提供了参数化配置选项,可以根据项目需求进行配置。例如,对于RAM IP软,可以选择单端口RAM、简单端口RAM或真正
    发表于 05-27 16:13

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    的处理器可以分为软和硬核处理器。 硬核处理器:早期Xilinx将IBM公司的PowerPC硬核集成在V5系列的FPGA中,后来将ARM公司的Cortex-A9硬核集成在ZYNQ
    发表于 05-08 16:23

    Xilinx ZYNQ 动手实操演练

    ZYNQ=processor Zynq-7000嵌入式处理平台系列的每款产品均采用带有NEON及精度浮点引擎的ARMCortex
    发表于 05-03 19:28

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    的PowerPC硬核集成在V5系列的FPGA中,后来将ARM公司的Cortex-A9硬核集成在ZYNQ 7000系列的SoC芯片中 软处理器:对于一些对处理器性能要求不是很高的
    发表于 04-10 16:00

    STM32H745ZGTx芯片使用内部FLASH,挂载FATFS为什么打不开文件?

    STM32H745ZGTx芯片使用内部FLASH,挂载FATFS为何打不开文件?
    发表于 04-07 07:11

    STM32H747如何用JLINK调试?

    1.我之前是在STM32H747的官方开发板discover上进行调试,板子上自带了STlink调试器,按照官方文档配置可以进行调试 2.目前自己设计的板子上是调试接口是SWD接口,手上只有
    发表于 03-28 08:58

    stm32H747的IAP升级要怎么做?

    H747我看有2个Hex文件,生成的Bin文件也有2个。Bootloader要怎么处理呢?也是2个Bootloader程序吗?那我要IAP升级程序的话要怎么处理了?
    发表于 03-28 08:50

    PSoC架构中都可以访问全部外设吗?

    你好!如标题:PSoC 架构中两个内核对芯片的全部外设都有直接访问能力嘛?如果都可以直接访问,那IPC模块的主要应用场景是哪些呢?
    发表于 02-02 11:44