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.

[参考译文] TDA4VM:[SDK 10.01]如何使用 FreeRTOS 为 MCU3_0 内核 (MCAN0/MCU_MCAN0) 选择 CAN 驱动器示例

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1527035/tda4vm-sdk-10-01-how-to-select-can-driver-example-for-mcu3_0-core-mcan0-mcu_mcan0-with-freertos

器件型号:TDA4VM

工具/软件:


【需要紧急支持】我们正在将 TDA4VM MCU3_0 内核上的 CAN 驱动程序与 vision_apps (vx_app_rtos_linux_mcu3_0) 集成、
RTOS 10.01 的单个示例工程。 当前在驱动程序选择和集成路径上被阻止。


尊敬的 TI 支持团队:

我们目前正在 TDA4VM EVM (PROC112A1) 平台上进行开发。

开发环境:

   目标:TDA4VM EVM
   SDK:TI-PROCESSOR-SDK-RTOS-j721e-EVM-10_01_00_04
   App:vision_apps
   内核:MCU3_0 R5F、带 FreeRTOS(Linux 在具有 SPL 的 A72 上运行)


目标:

我们希望在 MCU3_0 内核上通过任一方法启用和使用 CAN 通信
MCU_MCAN0 或主 MCAN0 外设。


当前应用:

   位置:vision_apps/platform/j721e/rtos/mcu3_0/main.cpp
   构建目标:vx_app_rtos_linux_mcu3_0


我们找到的参考资料:
我们在 SDK 中探讨了以下与 CAN 相关的示例代码:

   pdk_jacinto_10_01_00_25/packages/ti/csl/example/mcanEvmLoopback/*
   mcusw/mcal_drv/mcal/examples/can/*
   mcusw/mcal_drv/mcal/can/ src /*


问题/问题:
目前、我们不确定:

   这些驱动程序/示例(CSL 与 MCUSW CAN 驱动程序)之间有何差异?
   对于我们的用例(非 AUTOSAR 应用+ FreeRTOS + MCU3_0 内核)、建议使用哪些 CAN 驱动程序和示例?
   是否有官方文档/用户指南介绍如何将 CAN 与 MCU3_0 内核上的 vision_apps 应用程序 (vx_app_rtos_linux_mcu3_0) 集成?
   在这种情况下、CAN 时钟/pinmux/MCAN 实例的任何建议初始化流程?


摘要:
我们希望找到一条清晰正确的路径来为当前的应用设置启用 CAN 通信:

   MCU3_0 内核
   MCAN0 或 MCU_MCAN0 外设
   非 AUTOSAR + FreeRTOS
   Vision_apps 集成

请您指导我们如何继续、从哪个文档开始?
非常感谢您的支持。

BR
墨菲

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

    您好:

    [引述 userid=“625101" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1527035/tda4vm-sdk-10-01-how-to-select-can-driver-example-for-mcu3_0-core-mcan0-mcu_mcan0-with-freertos
    我们希望在 MCU3_0 内核上通过任一方法启用和使用 CAN 通信
    MCU_MCAN0 或主 MCAN0 外设。[/报价]

    由于要使用 MCU3_0 中的 CAN、最好从 Linux 中禁用相应的 CAN 节点、因为在运行 MCU3_0 期间、Linux 可能会更改 CAN 配置。

     这些驱动程序/示例(CSL 与 MCUSW CAN 驱动程序)之间有何差异?

    MCUSW CAN 驱动程序是根据 AUTOSAR 标准编写的、其中 CSL 是低级驱动程序。

    [引述 userid=“625101" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1527035/tda4vm-sdk-10-01-how-to-select-can-driver-example-for-mcu3_0-core-mcan0-mcu_mcan0-with-freertos
       pdk_jacinto_10_01_00_25/packages/ti/csl/example/mcanEvmLoopback/*[/quot]

    mcan_evm_loopback_app_main_k3.c 示例是根据 CSL LLD 编写的

    测试支持实例:适用于 mcu1_0
    * 1.发送器测试: MCU_MCAN0
    * 2.接收器测试: MCU_MCAN1.
    * 3.内部回送:MCU_MCAN0
    * 4.外部环回:MCU_MCAN0、MCU_MCAN1
    *对于 MCU2_1
    * 1.发送器测试: MAIN_MCAN4.
    * 2.接收器测试: main_MCAN4.
    * 3.内部环回: MAIN_MCAN4.
    * 4.外部环回:MAIN_MCAN4、MAIN_MCAN5
    您可以通过 MCAN0 将其扩展到 MCU3_0。
    此致
    Tarun Mukehs
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Tarun:

    非常感谢您的答复! 它是非常有帮助的。

    我有一个后续问题:

    由于我想使用 MCU3_0 内核+ MCAN0、并根据您的建议、我可以扩展 mcan_evm_loopback_app_main_k3.c 示例、
    请告知:

    1 在 MCU3_0 上运行时、中断路由器配置需要进行哪些更改? (是否有任何推荐的示例?)
    2 要在 MCU3_0 上启用 MCAN0、需要对引脚多路复用和时钟配置进行哪些更改?
    3 是否有任何参考示例或文档说明如何将 MCUSW CAN 驱动程序 (Can.c) 正确集成到 FreeRTOS + vision_apps 应用程序(非 AUTOSAR)中?

    这将有助于我们逐步进行。

    再次感谢您的评分


    BR
    墨菲

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

    您好、Murphy、

    在 MCU3_0 上运行时、中断路由器配置需要进行哪些更改? (是否有任何推荐的示例?)

    我们没有任何直接的示例来展示 MCU3_0 的用例、但您可以按照以前为 MCU2_1 所做的相同操作、仅使用 MCU3_1 相关中断。 由于您使用的是 MCAN0、因此不需要中断路由、只需注册就足够了。

    是否有任何参考示例或文档说明如何将 MCUSW CAN 驱动程序 (Can.c) 正确集成到 FreeRTOS + vision_apps 应用(非 AUTOSAR)中?
    [/报价]

    在该示例中、还可以参阅用于 FreeRTOS 的 MCUSW CAN 驱动程序

    /mcusw/mcuss_demos/profiling/can((soc 英语)/j721e/MCU2_1/Can App_Startup

    要在 MCU3_0 上启用 MCAN0、需要对引脚多路复用和时钟配置进行哪些更改?

    上述示例中完成了该引脚多路复用

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    感谢您之前的指导。 根据您的建议以及查看 MCUSW CAN 示例(例如 Can MCAN.c、CanApp.c 和生成的 CAN_PBcfg.c)后、我想确认我们现在正在尝试将 CAN 驱动器集成到我们的 vision_apps RTOS 应用程序、该应用程序在 MCU3_0 内核上运行、带有 App_Startup(或主域中的任何 MCANx)

    为了继续、我们计划遵循这种方法:
    【整合计划】
    1.提取并重复使用初始化逻辑 (\ti\processor-sdk-rtos-j721e-evm-10_01_00_04\mcusw\mcal_drv\mcal\examples\can\j721e\MCU2_1\can soc App_Startup)
    在 Can App_Startup () 和 App_Platform Init () 中,我们计划将以下内容隔离并移动到一个新的 Board_can_Init () 函数中:
    MCAN0 模块时钟启用
    MCAN0 TX/RX 引脚多路复用配置
    任何所需的 MCAN 存储器初始化或外设设置

    2.仅直接使用 MCUSW Can.c 驱动程序 API (\ti\processor-sdk-rtos-j721e-evm-10_01_00_04\mcusw\mcal_drv\mcal\can\include\can.h)
    我们将直接在应用程序中调用以下函数:
    Can_Init (& Can_Config Set);
    Can_Write (CanTxPduId、&CanPdu);

    我们将通过以下方式管理 Rx 处理:
    Can If_Rx Indication() 用于基于中断的接收(通过回调注册)、或
    如果需要轮询、则为 pollow_read () Can_Main。

    3.创建包装层 (can_driver.c/h)
    该模块将公开一些简单的功能、例如:
    Can Drv_Init ()
    Can Drv_Send (id、data、len)
    Can Drv_Register RxCallback (...)
    因此、我们 vision_apps 应用中的 FreeRTOS 任务可以清晰地调用它们、而无需与完整的 MCAL / AUTOSAR 结构交互。

    4.我们计划不使用 CanIf.c 或任何较高的 AUTOSAR 堆栈。
    我们的集成基于 FreeRTOS 且非常少。

    【需要确认的问题】
    请确认:
    a.这种方法是否正确、是否与在非 AUTOSAR、FreeRTOS 系统中使用 MCUSW CAN 驱动程序的预期方式一致?
    b.在移植到 MCU3_0 时、我们是否应该注意任何关键详细信息(例如中断注册或消息对象设置)?
    c.重复使用 mcu1_0 或 MCU2_1 中的 can_PBcfg.c 作为模板并仅保留 MCAN0 相关配置是否安全?
    d.您建议在任务中定期使用 Can_Main Write/Read (),还是基于中断的接收足够了?

    再次感谢您的支持。 我们希望在继续进行完全集成之前、确保我们走在正确的道路上。

    此致、
    Murphy OU

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“547969" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1527035/tda4vm-sdk-10-01-how-to-select-can-driver-example-for-mcu3_0-core-mcan0-mcu_mcan0-with-freertos/5871174 #5871174“]

    由于要使用 MCU3_0 中的 CAN、最好从 Linux 中禁用相应的 CAN 节点、因为在运行 MCU3_0 期间、Linux 可能会更改 CAN 配置。

    [/报价]

    1.您能告诉我在哪里/如何在 Linux 端禁用 CAN 节点吗? (设备树或内核构建配置相关文件)
    2.换言之、TDA4 能够在 Linux 端使用 CAN 接口、
    您能否指导我、TDA4 SDK 中是否有任何使用 CAN Linux API 的参考示例代码?

    非常感谢

    BR
    墨菲

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

    您好、Murphy、

    请确认:
    a.这种方法是否正确、是否与在非 AUTOSAR、FreeRTOS 系统中使用 MCUSW CAN 驱动程序的预期方式一致?
    b.在移植到 MCU3_0 时、我们是否应该注意任何关键详细信息(例如中断注册或消息对象设置)?
    c.重复使用 mcu1_0 或 MCU2_1 中的 can_PBcfg.c 作为模板并仅保留 MCAN0 相关配置是否安全?
    d.您建议在任务中定期使用 Can_Main Write/Read ()、还是基于中断的接收足够?

    a.是的、您可以在非 AUTOSAR 和 FreeRTOS 的系统中使用 MCUSW CAN 驱动程序、这与我们在前面提到的 MCUSS 演示可以配置文件示例中的操作方式类似。

    B.由于您将使用 MCAN0、因此 MCU3_0 不需要中断路由。中断注册应该就足够了。

    c.是的、您可以这样做、但在删除其他节点时需要小心、确保不删除所需的信息。  

    d.由客户自行决定此步骤。

    1. 您能告诉我在 Linux 端的哪里/如何禁用 CAN 节点吗? (设备树或内核构建配置相关文件)
    2.换言之、TDA4 能够在 Linux 端使用 CAN 接口、
    您能否指导我、TDA4 SDK 中是否有任何使用 CAN Linux API 的参考示例代码?
    [/报价]

    Linux SDK 中有 dts 文件,如果您在各自的 CAN 节点中设置“status =disabled“。 则将被禁用。

    有关 Linux 方面的更多使用、请提交另一个 E2E、CAN Linux 专家将为其解答。

    此致

    Tarun Mukesh