查看: 5329|回复: 0

[分享] iMX8QXP:使用 RPMSG 唤醒 M4 和 A35

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3868

    主题

    7472

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39232
    最后登录
    2025-7-18
    发表于 2020-4-26 09:55:28 | 显示全部楼层 |阅读模式
    iMX8QXP:使用 RPMSG 唤醒 M4 和 A35


    参考代码基于 L4.14.78 GA1.0.0 BSP 和 M4 SDK 2.5.1。它已在 iMX8QXP MEK 板上经过测试,并且也适用于 iMX8QM 板。


    在 L4.14.78 GA1.0.0 BSP 中,MU_5 用于 M4 FreeRTOS 和 A35 Linux 之间的 RPMSG,SC_R_MU_5B 是 M4 端,而SC_R_MU_5A 是 A35 端。在 Linux 端,我们使用“ imx_rpmsg_tty.ko”进行测试,该驱动程序已构建为 BSP 中的默认模块。


    情况 1:M4 唤醒 A35。
    将“ L4.14.78_rpmsg_wakeup.patch”应用于 Linux 内核,该补丁将启用 RPMSG 唤醒功能。
    “rpmsg_lite_pingpong_rtos.tar.bz2”是 M4 端的测试代码。在使用 Linux + M4 rpmsg 软件引导板子后,运行以下测试指令:


    1. 在 A35 UART 端,运行以下指令:
    # echo enabled > /sys/bus/platform/devices/90000000.rpmsg/power/wakeup
    # insmod ./imx_rpmsg_tty.ko
    # /unit_tests/Remote_Processor_Messaging/mxc_mcc_tty_test.out /dev/
    ttyRPMSG30 115200 R 100 1000 &
    # echo deadbeaf > /dev/ttyRPMSG30
    # echo mem > /sys/power/state


    2. M4 UART 端:
    在 Linux 端运行“echo deadbeaf> / dev / ttyRPMSG30”之后,它将显示“ Got ping ...”。请
    稍候,直到运行 A35 暂停命令“ echo mem> / sys / power / state”,Linux 暂停运行。然
    后从 M4 UART 端,按 “c” 键,它会把 RPMSG 发送到 A35 并唤醒 A35 Linux。


    情况 2:A35 唤醒 M4。
    “power_mode_switch_rpmsg_wakeup.tar.bz2”是M4端的测试代码,在使用Linux + M4 rpmsg
    软件引导该板后,M4 UART 将等候 A35 RPMSG 驱动程序准备。测试指令:


    1. 在 A35 UART 端,运行以下指令用以配置 RPMSG 驱动程序:
          # insmod ./imx_rpmsg_tty.ko
          # /unit_tests/Remote_Processor_Messaging/mxc_mcc_tty_test.out
          /dev/ttyRPMSG30 115200 R 100 1000 &
          # echo deadbeaf > /dev/ttyRPMSG30


    2. 现在,M4 UART 显示 ping pong 信息,以确保 RPMSG 准备就绪。现在 M4 位于电源转换菜单,在 M4 UART 中选择 VLLS 电源模式:
          按 H 键输入:VLLS
          ... ...
          按 R 键获取 RPMSG。
          在 M4 UART 中按“R”键之后,M4 将打印“Send a RPMSG message to wake up”并进入暂停模式。


    3. 从 A35 端唤醒 M4,将数据发送到 RPMSG:
          # echo deadbeaf > /dev/ttyRPMSG30
          M4 重启并再次返回。


    用于编译两个 M4 示例代码的 SDK 文件夹:
          SDK/boards/mekmimx8qx/multicore_examples/rpmsg_lite_pingpong_rtos
          SDK/boards/mekmimx8qx/demo_apps/power_mode_switch

    未完>>>

    点击查看完整版

    qiandao qiandao
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 04:00 , Processed in 0.078750 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表