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:在 MCU1、MCU3、MCU4上集成 Autosar

Guru**** 2458720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1470397/tda4vm-integrate-autosar-on-mcu1-mcu3-mcu4

器件型号:TDA4VM

工具与软件:

您好!

我目前正在 为 MCU1、MCU3和 MCU4配置经典 Autosar 堆栈、
单个二进制输出包括所有 Autosar 配置、OS 和启动代码。
MCU1由 SBL 初始化、而 MCU3和 MCU4由 MCU1初始化。

要继续进行此设置、我需要说明以下几点:

  1. 启动/复位 MCU3和 MCU4:

    • 启动或复位 MCU3和 MCU4所需的说明是什么?
    • 如何使用一个 可执行文件来刷写三个内核 ?
  2. 矢量表规范:

    • 我们是否需要为每个 MCU 定义单独的矢量表?
    • 如果是、每个内核各自的地址是什么?
  3. 多核图像与链接器文件:

    • 我们应该创建一个多核映像、还是可以依靠链接器文件中指定的地址来正确执行?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     所有三个内核上的单个二进制是什么意思? 您能详细说明一下吗?

    此致、

    Brijesh

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

    单个二进制文件>>在构建过程中生成的一个可执行文件,因为 autosar 配置是针对三个内核捆绑在一起的  

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

    如果您使用 SciClient、UDMA 驱动程序、则无法在所有三个内核上运行单个二进制。 此外 mcu1_0需要集成 SciServer、因此我真的怀疑这是否可能。

    此致、

    Brijesh

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

    一般而言,我们可以从 MCU1启动 MCU3 ,而 MCU1从 SBL 启动。
    请分享示例以启动 MCU3  

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

    您好!

    mcu1_0运行 SBL、SBL 可以在 mcu3_0上加载另一个固件。 如果您正在寻找该解决方案、这是可能的。  您能确认一下吗?

    此致、

    Brijesh

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

    我们不打算使用 SBL 将固件加载到 MCU ,您能告诉我替代加载 MCU3 ( Linux , sciserver ,..)吗?  

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

    MCU1将如何发布内核(MCU3/4)?

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

    很抱歉、没有。  释放磁芯意味着什么? 如果您是要为这些内核上电、则 mcu1_0可以为这些内核上电。  

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

    是否需要设置 u list 接口或寄存器以便从 MCU1为 R5内核加电?  

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

    您好、Walid、

    而不是寄存器、我们需要使用 Sciclient API 接口加电甚至设置起点。 请参阅 SBL 中的现有示例以了解该流程。  

    此致、

    Brijesh

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

    在由 SBL 加载后、当前无法从 MCU1启动 MCU2。

    请查找用于启动 MCU2的程序:  

    /*步骤一:从 SYSFW 请求内核*/
    状态= Sciclient_procBootRequestProcessor (SCICLIENT_PROC_ID_R5FSS0_CORE0、SCICLIENT_SERVICE_WAIT_FOREVER);
    while (status!= Board_SOK)

    /*第二步:设置进程配置*/
    状态= Sciclient_procBootSetProcessorCfg (&proc_set_config_req、SCICLIENT_SERVICE_WAIT_FOREVER);
    while (status!= Board_SOK)

    /*第三步:设置 CLK 配置*/
    Sciclient_pmSetModuleClkFreq (TISCI_DEV_R5FSS0_CORE0、
    TISCI_DEV_R5FSS0_CORE0_CPU_CLK、
    (1000000000)、
    TISCI_MSG_FLAG_AOP、
    SCICLIENT_SERVICE_WAIT_FOREVER);

    // Step five:Un-Halt Cores
    Status = Sciclient_procBootSetSequenceCtrl (
    SCICLIENT_PROC_ID_R5FSS0_CORE0、
    0、
    TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_CORE_HALT、
    TISCI_MSG_FLAG_AOP、
    SCICLIENT_SERVICE_WAIT_FOREVER);
    while (status!= Board_SOK)

    //第六步:从 SYSFW 撤回控制权
    STATUS = Sciclient_procBootReleaseProcessor (SCICLIENT_PROC_ID_R5FSS0_CORE0、0、SCICLIENT_SERVICE_WAIT_FOREVER);
    while (status!= Board_SOK)

    您能建议我们在这里遗漏了什么吗? 主域需要初始化的模块列表是什么?  

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

    您的意思是 您正在使用自己的代码吗? 是否可以使用 SBL 现有的 API 来启动这些模块并为其加电? 这些 API 在所有平台上都受到支持和验证、因此我建议 使用现有的 API。  

    此致、

    Brijesh

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

    我希望在 SBL 上下文之外从 MCU1启动 MCU3  

    您能确认我共享的顺序 吗?  

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

    您好、Walid、

    您是指将此代码移植到某个不同的操作系统吗? 那么、您能否使用 SBL 中定义的函数?  

    此致、

    Brijesh