查看: 228|回复: 0
打印 上一主题 下一主题

[经验] 分享!基于NXP i.MX 8M Plus平台的OpenAMP核间通信方案

[复制链接]
  • TA的每日心情
    无聊
    2021-9-1 13:41
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    跳转到指定楼层
    楼主
    发表于 2025-2-26 09:23:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    分享到:
    本帖最后由 陈工-创龙科技 于 2025-2-26 09:25 编辑

    在嵌入式系统领域,随着技术不断发展,对于系统性能和功能要求日益提高。核间通信作为提升系统整体效能的关键技术,成为了关注焦点。今天,我们和大家分享一个OpenAMP非对称架构核间通信方案,基于NXP i.MX 8M Plus平台。

    OpenAMP架构
    AMP(Asymmetric   Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux  +  RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。OpenAMP框架是一个提供用于处理非对称多处理架构(AMP)系统的软件组件,为开发者提供了便捷高效的开发工具。
    随着对嵌入式系统性能需求的持续攀升,非对称AMP架构凭借其独特优势,成为一种新选择,被广泛应用于工业领域,如工业PLC、继电保护装置、小电流选线设备等场景,为工业自动化和智能化发展提供了强大的技术支持。

    图 1

    i.MX 8M Plus的OpenAMP开发方案
    本案例采用i.MX8M Plus处理器的Cortex-A53核心与Cortex-M7核心,基于RPMsg-lite框架实现高效的核间通信。
    Cortex-A53通过加载imx_rpmsg_tty驱动,向内核注册TTY终端设备。这样一来,Linux应用层只需通过访问"/dev/ttyRPMSGxx"设备节点,就能实现间接调用RPMsg-lite接口,与Cortex-M7核心建立通信连接。
    系统框图如下图所示。

    图 2

    i.MX 8M Plus的典型应用领域
    i.MX 8M Plus凭借其强大的性能和出色的兼容性,广泛应用多个领域,为行业提供了有力的硬件支撑。

    图 3

    OpenAMP开发案例演示
    为了简化描述,本文仅摘录部分方案功能描述与测试结果。
    开发环境
    Windows开发环境:Windows 7 64bit、Windows 10 64bit
    虚拟机:VMware15.5.5
    Linux开发环境:Ubuntu20.04.6 64bit
    U-Boot:U-Boot-2022.04
    Kernel:Linux-5.15.71-rt51
    SDK开发包:SDK_2_12_0_MIMX8ML8xxxKZ
    交叉编译工具链:gcc-arm-none-eabi-10.3-2021.10-x86_64-linux
    硬件平台:创龙科技TLIMX8MP-EVM工业评估板(基于NXP i.MX 8M Plus)
    案例功能
    本文案例主要通过RPMsg-lite框架演示核间通信。首先,在Cortex-A53核心发送"Tronlong"字符串到Cortex-M7核心,Cortex-M7核心接收到"Tronlong"字符串后,会将此消息回发到Cortex-A53核心,最后,Cortex-A53核心接收并校验消息,确保数据传输的准确性和完整性。
    程序原理流程图如下所示:

    图 4
    案例测试
    请使用USB串口线将评估板的USB TO UART2串口连接至PC机的USB接口,使用RS232交叉串口母母线、USB转RS232**串口线将评估板的RS232 UART4串口连接至PC机的USB接口,如下图所示。
    其中USB TO UART2作为Cortex-A53核心调试串口,RS232 UART4作为Cortex-M7核心调试串口。

    图 5
    参考产品资料进行环境搭建,启动Cortex-M7核心并加载工程镜像,Cortex-M7核心启动后将自动运行程序,加载imx_rpmsg_tty模块,启动核间通信等。
    然后将案例rpmsg_lite_str_echo文件拷贝至评估板文件系统,执行如下命令发送数据至Cortex-M7核心。
    Target#                ./rpmsg_lite_str_echo /dev/ttyRPMSG30

    图 6
    Cortex-M7核心接收到数据后,在RS232 UART4调试串口将数据进行打印,同时将数据回发至Cortex-A53。

    图 7
    在USB TO UART2调试串口可查看Cortex-M7核心回发的数据。

    图 8
    如果您还想查看更多i.MX8M Plus相关的案例演示,请通过公众号(Tronlog创龙科技)查阅,亲自上手体验吧!

    回复

    举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 1/5 下一条

    有奖活动|英飞凌智能座舱直播活动
    3月12日,英飞凌将携手大联大品佳集团,从行业痛点出发,结合最新技术发展,深入解析智能座舱的技术革新与未来趋势,现场还会有嘉宾为您提供一对一答疑服务。无论您是科技爱好者、工程师,还是投资者与行业分析师,这场直播都将为您揭开智能座舱的核心技术密码!

    查看 »



    手机版|小黑屋|与非网

    GMT+8, 2025-4-29 19:04 , Processed in 0.114910 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.5

    Copyright © 2001-2024, Tencent Cloud.