This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM623:使用 AM623 CPU (MCU)为 Linux 上的远程内核开发固件应用

Guru**** 2483345 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442182/am623-developing-an-firmware-application-for-remote-core-on-linux-using-am623-cpu-mcu

器件型号:AM623

工具与软件:

您好、TI 团队:

我目前正在开发一个基于 AM62x 芯片的项目。

扼要重述一下。 AM62x 包含:
A53内核(应用内核)         -运行 Linux
M4F 内核(MCUSS 实时协处理器)-/sys/class/remoteproc/remoteproc0
R5F 内核(MCUSS 系统管理内核)-/sys/class/remoteproc/remoteproc1
     
我将一个 CAN 连接到 MCUSS 域、并且我应该尽可能使用 RTOS 构建一个应用(固件)、以便在 A53处于深度睡眠状态时唤醒 Linux 内核、以防 CAN 总线上开始一些通信。 稍后我会添加更多逻辑(RPMSG、以便它可以与 Linux - A53、用于唤醒的计时器、检查 PCB 电池状态、防护加速计/陀螺仪/湿度)等交换数据...

据我所知、在 A53处于睡眠状态的超低功耗状态下、R5内核是唯一保持活动状态的内核。 根据 AM62 Academy M4内核和 A53在深度睡眠模式下处于睡眠状态的文档、有大量的示例表明 R5F 与 RTOS 搭配使用、M4F 仅与 NOS 搭配使用-我在项目中更喜欢使用 RTOS。

我安装了 mcu_plus_sdk_am62x_10_00_00_14、CCS Theia、env sdk_install_path=C:\TI\mcu_plus_sdk_am62x_10_00_00_14在操作系统中...
   
M4F 内核已启动并正在运行、我可以停止/启动固件、检查当前选择的固件:


echo "start">/sys/class/remoteproc/remoteproc0/state
CAT /sys/class/remoteproc/remoteproc0/state
附件
echo "stop">/sys/class/remoteproc/remoteproc0/state
该维护周期
CAT /sys/class/remoteproc/remoteproc0/firmware
am62-mcu-m4f0_0-FW

但是、当我使用 R5F 内核尝试相同的过程时、情况不是很好。

echo "start">/sys/class/remoteproc/remoteproc1/state
CAT /sys/class/remoteproc/remoteproc1/state
附件
echo "stop">/sys/class/remoteproc/remoteproc1/state
附件
CAT /sys/class/remoteproc/remoteproc1/firmware
未知

在 DTB/DTS 中、我有:

r5fss@78000000

compatible ="ti、am62-r5fss";
范围=<0x78000000 0x00 0x78000000 0x8000 0x78100000 0x00 0x78100000 0x8000 0x8000>;
电源域=<0x03 0x77 0x01>;
phandle =<0x58>;

   r5f@78000000
   {
       兼容="ti、am62-r5f";
       REG =<0x78000000 0x8000 0x78100000 0x8000>;
       reg-names ="ATCM 0btcm";
       ti、sci =<0x08>;
       ti、sci-dev_id =<0x79>;
       ti、sci-proc-ids =<0x01 0xff>;
       RESET =<0x0a 0x79 0x01>;
       firmware-name ="ti-sysfw/ti-fs-stub-firmware-am62x-gp-signed.bin";
       TI、ATCM =<0x01>;
       TI、btcm-enable =<0x01>;
       ti、loczrama =<0x01>;
       MAYS =<0x0B 0x11>;
       memory-region =<0x12 0x13>;
       phandle =<0x59>;
   };
};

/lib/firmware 中、我可以找到 am62-mcu-m4f0_0-fw、但我找不到 ti-sysfw/am62-mcu-r5f0_0-fw ti-fs-stub-firmware-am62x-gp-signed.bin


我是不是漏掉了什么东西、是不是只是误解了一切、而 M4F 应该是可以使用的"我的"内核、但 M4F 没有 RTOS?

请提前提供建议、解释、建议和感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Robert:

    感谢您的提问。

    您使用的是哪个版本的 MCU+SDK?

    您使用的是哪个版本的 Processor SDK?

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robert:

    [报价 userid="581129" url="~/support/processors-group/processors/f/processors-forum/1442182/am623-developing-an-firmware-application-for-remote-core-on-linux-using-am623-cpu-mcu "]但是当我尝试使用 R5F 内核执行同样的程序时、情况并不好。

    您无法禁用设备管理器内核。  DM R5F 内核必须继续运行、因为 DM R5F 会运行所有其他内核的资源管理器。 如果器件管理 R5F 停止运行、处理器将停止工作

    请参阅  禁用远程 Core 以了解详情。

    请参阅下图。

    希望上述内容得到澄清。

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答 Tushar ,但这让我提出了更多的问题:)

    在我的项目中、我将 AM6231用作唯一包含1个 A53、1个 M4F、1个 R5F 内核的 MPU。
    在 A53上运行 Linux、并且在引导中启用 M4/R5。

    我需要编写一个固件(应用)、该固件具有以下特点:
    -将在低功耗状态下运行(当内核处于深度休眠状态时)
    -将唤醒 Linux 在深度睡眠和 CAN 总线接收一些数据
    -如果加速计/陀螺超出某些值,将在深度睡眠时唤醒 Linux
    -将唤醒 Linux 在深度睡眠的计时器(例如,每5分钟)
    -当 Linux 启动并运行时,所有这些状态都应该通过 IPC(RPMsg)与 Linux 交换(例如 CAN 数据, accel/gyro )。

    您说 WKUP 是在 R5F 上完成的、因此:

    -只有 R5F 还是 M4F 也可以使用 WKUP、M4F 是否会在 A53进入深度睡眠时保持活动状态?
    - M4F 的例子大多是作为 Noos ,但我想 RTOS 更容易编程

    据我所知、通过 DTB 进行配置并向 Linux (一个内核)提供控制权的器件不建议这样做
    直接通过 R 或 M 内核访问这些器件、因此我应该将这些器件排除在 DTS 之外(因此 Linux 什么也不知道
    (关于它们)、并将它们用于 M 或 R 内核、我可以直接访问、例如读取/写入 CAN 或读取热加速陀螺仪
    传感器和电压监视器来查看电池状态。

    您能给我建议还是指导我如何处理这一问题?
    我真的需要一个简单的指南从某个地方开始、因为所有不同的内核都过于复杂、为什么无法有单一类型的 CPU 能够扩展其速度以降低功耗、这种器件的贡献会使开发变得复杂。

    提前感谢、此致、
      Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Robert:

    只有 R5F 还是 M4F 也可以使用 WKUP 吗?M4F 是否在 A53进入深度睡眠模式时保持活动状态?

    Linux 会在远程内核(DM R5F 除外)进入低功耗状态之前将其置于暂停模式。

    请参阅下面的屏幕截图。

    适用于 M4F 的示例大多是 NOS、但我希望 RTOS 更易于编程

    SDK 中提供了一个适用于 M4F 内核的空 FreeRTOS 示例、您可以参考创建自己的 M4F FreeRTOS 示例。  

    您能给我建议还是指导我如何处理这个问题吗?

    在远程内核 R5F 和 Linux 上开发应用。 请参阅  在 DM R5上开发

    此致、

    Tushar