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

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

3天内不再提示

Xilinx ZYNQ双核ARM通信开发实例

Tronlong创龙科技 2021-12-27 13:48 次阅读

前 言:本文主要介绍基于OpenAMP框架的双核ARM通信案例的使用说明,CPU0(Master)运行Linux系统,CPU1(Remote)运行裸机或FreeRTOS程序。CPU0使用remoteproc加载CPU1程序,并对CPU1进行配置。


图 1

OpenAMP详细开发说明可查阅官方文档。

本文基于Xilinx Zynq-7010/7020平台进行案例测试。

图2

1、echo_test案例

1.1 案例功能

案例功能:CPU0使用RPMsg向CPU1发送数据,CPU1接收到数据后再使用RPMsg向CPU0回传数据。CPU0对回传的数据进行验证,并输出验证结果。

1.2 操作说明

将CPU1裸机或FreeRTOS可执行文件复制到评估板文件系统“/lib/firmware/”目录下,并执行如下命令加载CPU1程序。

Target# echo echo_test.elf > /sys/class/remoteproc/remoteproc0/firmware
Target# echo start > /sys/class/remoteproc/remoteproc0/state


图 3

执行如下命令加载RPMsg驱动,并在“/dev/”目录下生成RPMsg设备节点。
Target# modprobe rpmsg_user_dev_driver


图 4

将CPU0应用程序可执行文件复制到评估板文件系统,并执行如下命令通过RPMsg与CPU1进行通信。

Target# ./echo_test


图 5

输入1,并按回车键进行测试。

图 6


图 7

输入2,并按回车键退出测试。


图 8

执行如下命令,停止CPU1程序。

Target# echo stop > /sys/class/remoteproc/remoteproc0/state


图 9

2、matrix_multiply案例

2.1 案例功能

案例功能:CPU0随机生成两个矩阵并使用RPMsg向CPU1发送数据,CPU1接收到数据后进行矩阵乘法运算,再使用RPMsg向CPU0回传运算结果,然后CPU0通过串口终端输出运算结果。

2.2 操作说明

将CPU1裸机或FreeRTOS可执行文件复制到评估板文件系统“/lib/firmware/”目录下,并执行如下命令加载CPU1程序。

Target# echo matrix_multiply.elf > /sys/class/remoteproc/remoteproc0/firmware

Target# echo start > /sys/class/remoteproc/remoteproc0/state


图 10

执行如下命令加载RPMsg驱动,并在“/dev/”目录下生成RPMsg设备节点。

Target# modprobe rpmsg_user_dev_driver


图 11

将CPU0应用程序可执行文件复制到评估板文件系统,并执行如下命令通过RPMsg与CPU1进行通信。

Target# ./mat_mul_demo


图 12

输入1,并按回车键进行测试。


图 13

输入2,并按回车键退出测试。


图 14

执行如下命令,停止CPU1程序。

Target# echo stop > /sys/class/remoteproc/remoteproc0/state


图 15

3、内存分配说明

512MByte DDR容量版本核心板的内存地址分配如下:

表 1



1GByte DDR容量版本核心板的内存地址分配如下:

表 2



如需修改CPU1程序(OpenAMP-remote app)内存地址空间范围,可通过更改设备树文件tlz7x-easyevm-s.dts、资源表rsc_table.c及链接文件lscript.ld对内存地址空间进行重新分配。三者需同步修改并保持一致,以确保固件程序链接地址与设备树配置的elf_ddr_0对应。所使用的资源(内存和virtio设备资源)不能超出设备树文件配置的内存范围。


图 16设备树文件tlz7x-easyevm-s.dts配置


图 17设备树文件tlz7x-easyevm-s.dts配置


图 18 CPU1程序资源表rsc_table.c配置


图 19 CPU1程序链接文件lscript.ld配置

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

    关注

    4975

    文章

    18228

    浏览量

    287667
  • 开发板
    +关注

    关注

    25

    文章

    4394

    浏览量

    93704
  • Zynq-7000
    +关注

    关注

    3

    文章

    144

    浏览量

    36594
  • 核心板
    +关注

    关注

    5

    文章

    835

    浏览量

    29105
  • 工控板
    +关注

    关注

    0

    文章

    164

    浏览量

    12866
收藏 人收藏

    评论

    相关推荐

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

    的PowerPC硬核集成在V5系列的FPGA中,后来将ARM公司的Cortex-A9硬核集成在ZYNQ 7000系列的SoC芯片中 软
    发表于 04-10 16:00

    AD9683的引脚如何与zynq 7015芯片中的JESD204 ip端口对应相连?

    目前,我在设计中想使用ZYNQ 7015系列的FPGA,利用JESD204 IP接收A/D转换器AD9683转换完成后的数据。但是JESD204 IP的端口很多,我不知道应该如何将AD9683
    发表于 12-15 07:14

    Xilinx Zynq产品极限边缘分析

    电子发烧友网站提供《Xilinx Zynq产品极限边缘分析.pdf》资料免费下载
    发表于 09-18 10:30 0次下载
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b>产品极限边缘分析

    适用于Xilinx Zynq UltraScale+ MPSoC应用的电源参考设计

    电子发烧友网站提供《适用于Xilinx Zynq UltraScale+ MPSoC应用的电源参考设计.pdf》资料免费下载
    发表于 09-13 09:55 1次下载
    适用于<b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b> UltraScale+ MPSoC应用的电源参考设计

    嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(4)

    产品上市时间。 HLS 基本开发流程如下:(1) HLS 工程新建/工程导入(2) 编译与仿真(3) 综合(4) IP 封装(5) IP 测试测试板卡是基于创龙科技Xilinx
    发表于 08-24 14:54

    嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(1)

    目 录前 言 31 HLS 开发流程说明 51.1 HLS 工程导入 51.2 编译与仿真 61.3 综合 81.4 IP 封装 101.5 IP 测试 14 前 言本文主要介绍 HLS
    发表于 08-24 14:40

    xilinx ZYNQ7000系列基本开发流程之PS端

    ZYNQ 芯片分为 PL 和 PS, PS 端的 IO 分配相对是固定的,不能任意分配,虽然 PS 端的 ARM 是硬核,但是在 ZYNQ 当中也要将 ARM 硬核添加到工程当中才能使
    的头像 发表于 08-11 09:36 5213次阅读
    <b class='flag-5'>xilinx</b> <b class='flag-5'>ZYNQ</b>7000系列基本<b class='flag-5'>开发</b>流程之PS端

    Xilinx Zynq7035算力指标

    本文介绍广州星嵌DSP C6657+Xilinx Zynq7035平台下Xilinx Zynq7035算力指标。
    的头像 发表于 07-07 14:15 811次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b>7035算力指标

    【资料分享】Xilinx Zynq-7010/7020工业核心板规格书(ARM Cortex-A9 + FPGA,主频766MHz)

    /FreeRTOSARM通信开发案例 基于PS(裸机) + PL的实时中断响应案例 基于PL端的HDL、HLS
    发表于 06-25 09:56

    【资料分享】Zynq-7010/7020工业评估板规格书(ARM Cortex-A9 + FPGA,主频766MHz)

    1 评估板简介创龙科技TLZ7x-EasyEVM是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC评估板,处理器集成PS端
    发表于 06-21 17:18

    【资料分享】Xilinx XCZU7EV工业核心板规格书(四ARM Cortex-A53 + ARM Cortex-R5 + FPGA,主频1.5GHz)

    XCZU7EV高性能处理器设计的高端异构多核SoC工业核心板,处理器集成PS端(四ARM Cortex-A53 + ARM Corte
    发表于 06-21 15:27

    【资料分享】Zynq-7010/7020工业核心板规格书(ARM Cortex-A9 + FPGA,主频766MHz)

    1 核心板简介创龙科技SOM-TLZ7x是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC工业核心板,处理器集成PS端
    发表于 06-21 15:19

    ZYNQ(FPGA)与DSP之间GPIO通信实现

    本文主要介绍说明XQ6657Z35-EVM 高速数据处理评估板ZYNQ(FPGA)与DSP之间GPIO通信的功能、使用步骤以及各个例程的运行效果。1.1 ZYNQ与DSP之间GPIO通信
    发表于 06-16 16:02

    Xilinx ZYNQ UltraScale+系列产品介绍

    Zynq UltraScale+MPSoC是Xilinx推出的第二代多处理SoC系统,它在第一代Zynq-7000的基础上进行了全面升级。
    的头像 发表于 06-09 10:07 1737次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>ZYNQ</b> UltraScale+系列产品介绍

    请问之间如何通信

    请问之间如何通信? 怎么处理核对外设资源出现竞争的问题?
    发表于 05-26 06:37