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

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

3天内不再提示

非对称的ARM双系统,如何实现工业产品的低延时——基于ZYNQ

Tronlong创龙科技 2022-04-29 17:10 次阅读

现代工业设备系统要求越来越复杂,既要强大的多任务的事务处理能力,又需要低延时实时任务处理能力的需求,特别是工业自动化控制领域(如数控机床、机械臂)、电力监测领域(如DTU、继保设备、一二次融合设备)等应用场景尤为迫切。为了满足日益复杂的系统要求,创龙科技推出了基于Xilinx Zynq-7020/7010实现的双系统解决方案。

Xilinx Zynq-7020/7010是一款集成双核ARM Cortex-A9 + Artix-7 FPGA架构的单芯片SoC,它的OpenAMP框架可实现双核ARM Cortex-A9非对称使用方案,从而使双核ARM实现分别跑两个系统:一个ARM Cortex-A9跑Linux,一个ARM Cortex-A9作为实时核跑RTOSFreeRTOS)或者裸机。实时核与FPGA端进行低延时的高速数据交换与实时通讯控制,从而满足低延时的实时任务要求。而跑Linux的 ARM核作为更上层应用,处理更复杂的业务事务。

Xilinx Zynq-7020/7010单芯片SoC方案配合双系统的应用为工业控制、电力一二次融合设备、医疗电子测试测量汽车电子通信等应用提供了更灵活、更具成本优势的解决方案。

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配置

上述推文中的案例是在创龙科技(Tronlong)基于Zynq-7010/7020处理器设计的两款工业评估板——TLZ7x-EasyEVM、TLZ7x-EasyEVM-S上实现的,它由核心板+底板构成,用户使用核心板进行二次开发时,仅需专注上层运用,降低了开发难度和时间成本,可快速进行产品方案评估与技术预研。

图 1 TLZ7x-EasyEVM硬件资源框图

图 2 TLZ7x-EasyEVM硬件资源框图

图 3 TLZ7x-EasyEVM-S硬件资源框图

图 4 TLZ7x-EasyEVM-S硬件资源框图

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

    关注

    1602

    文章

    21320

    浏览量

    593173
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8651

    浏览量

    361777
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288402
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206733
收藏 人收藏

    评论

    相关推荐

    单相降压转换器双非对称BG评估板数据手册

    电子发烧友网站提供《单相降压转换器双非对称BG评估板数据手册.rar》资料免费下载
    发表于 04-14 17:10 0次下载
    单相降压转换器双<b class='flag-5'>非对称</b>BG评估板数据手册

    单相降压转换器双非对称AG评估板数据手册

    电子发烧友网站提供《单相降压转换器双非对称AG评估板数据手册.rar》资料免费下载
    发表于 04-14 17:02 0次下载
    单相降压转换器双<b class='flag-5'>非对称</b>AG评估板数据手册

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

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货。 Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,
    发表于 04-10 16:00

    G473使用TIM1非对称模式做移相,用TIM8Combined PWM模式做对角的移相与门输出,为什么时序不对?

    G473使用TIM1非对称模式做移相,用TIM8Combined PWM模式做对角的移相与门输出,为啥占空比对了时序不对?
    发表于 03-14 07:49

    为什么三相短路是对称故障?单相短路是非对称故障呢?

    为什么三相短路是对称故障?单相短路是非对称故障呢? 三相短路是对称故障,而单相短路是非对称故障,其根本原因在于电网中的相量关系和电压分布。 首先,
    的头像 发表于 02-18 11:41 679次阅读

    “国产双系统”出炉,RK3568J非对称AMP:Linux+RTOS/裸机

    本帖最后由 Tronlong创龙科技 于 2023-12-1 09:36 编辑 “非对称AMP”双系统是什么 AMP(Asymmetric Multi-Processing),即非对称
    发表于 12-01 09:35

    linux双系统启动项设置

    在使用双系统的时候,我们需要设置启动项来选择要启动的操作系统。在Linux系统中,设置双系统启动项的方式较为灵活。本文将详细介绍在Linux系统
    的头像 发表于 11-28 15:05 505次阅读

    基于zynq7020器件来搭建Linux系统

    Zynq器件将arm和FPGA结合,利用了两者各自的优势,arm可以实现灵活的控制,而FPGA部分可以实现算法加速,这大大扩展了
    发表于 11-09 11:28 1945次阅读
    基于<b class='flag-5'>zynq</b>7020器件来搭建Linux<b class='flag-5'>系统</b>

    “国产双系统”出炉,RK3568J非对称AMP:Linux+RTOS/裸机

    非对称AMP”双系统是什么AMP(AsymmetricMulti-Processing),即非对称多处理架构。“非对称AMP”双系统是指多
    的头像 发表于 09-13 08:07 823次阅读
    “国产<b class='flag-5'>双系统</b>”出炉,RK3568J<b class='flag-5'>非对称</b>AMP:Linux+RTOS/裸机

    工业产品表面缺陷检测方法研究

    、形状特征三个方面总结了传统机器视觉表面缺陷检测方法在工业产品表面缺陷检测中的应用。其次,从监督法、无监督法、弱监督法三个方面论述了近年来基于深度学习技术的工业产品表面缺陷检测的研究现状。然后,系统总结
    的头像 发表于 08-17 11:23 585次阅读
    <b class='flag-5'>工业产品</b>表面缺陷检测方法研究

    意法半导体用于运动控制和自动化的工业产品

    电子发烧友网站提供《意法半导体用于运动控制和自动化的工业产品.pdf》资料免费下载
    发表于 07-31 15:46 0次下载
    意法半导体用于运动控制和自动化的<b class='flag-5'>工业产品</b>

    中国首颗ARM+RISC-V异构多核MCU伴随IAR在上海国际嵌入式展亮相

    的HK32U3009(ARM + RISC-V)属于异构多核。 对称多处理(SMP)vs 非对称多处理(AMP) 从软件设计上,多核可以分为对称多处理(SMP)和
    发表于 06-15 18:32

    非对称非均匀的3dB定向耦合器

    实现了一种基于非均匀非对称定向耦合器的新型宽带波长平坦3dB光耦合器。在1300-1600nm波长范围内,实现了3 dB± 0.3 dB的分束比。
    的头像 发表于 05-30 17:04 1106次阅读
    <b class='flag-5'>非对称</b>非均匀的3dB定向耦合器

    99元国产ARM平台+实时系统,给工业带来何种意义?

    为何工业应用需要“实时操作系统”在工业应用场景中,从信号输入到任务处理的时间确定性一般都需要满足一定的要求,且越来越多的设备需要更低的任务延时和更小的抖动要求。例如,在一个机械臂进行加
    发表于 05-03 23:39

    求分享使用Crypto模块导入非对称密钥的示例

    我想知道 NXP 是否提供了使用加密模块实现非对称密钥导入(RSA 或 ECC)的示例? RTD 中的示例仅实现对称密钥导入 (AES)。
    发表于 04-28 06:54