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.

[参考译文] TDA4AL-Q1:[FreeRTOS]等待线程 SP_RESPONSE 填充超时

Guru**** 2393995 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482530/tda4al-q1-freertos-timeout-waiting-for-thread-sp_response-to-fill

器件型号:TDA4AL-Q1

工具与软件:

尊敬的专家  

我想在 MCU 域(而不是主域 MCU)的 MCU 内核上运行 FreeRTOS  

我构建  FreeRTOS 任务开关测试示例

https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/10_00_00_05/exports/docs/pdk_j721s2_10_00_00_27/docs/userguide/j721s2/modules/freertos.html

并将其放置到  meta-ti-bsp/recips-bsp/ti-dm-fw/ti-dm-fw.bb 的路径以运行 MCU RTOS

但是、我得到了以下方日志

 e2e.ti.com/.../1524.error_5F00_log.txt

注意:BL31:v2.10.0 (发布):v2.10.0-367-g00f1ec6b87-dirty
通知:BL31:创建时间:2024年2月9日16:09:05
错误:等待填充线程 SP_RESPONSE 超时
错误:线程 SP_RESPONSE 验证失败(-60)
错误:消息接收失败(-60)
错误:无法获取响应(-60)
错误:传输发送失败(-60)

你有什么评论吗?

非常感谢

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

    您好!

    [报价 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1482530/tda4al-q1-freertos-timeout-waiting-for-thread-sp_response-to-fill "]

    并将其放置到  meta-ti-bsp/recips-bsp/ti-dm-fw/ti-dm-fw.bb 的路径以运行 MCU RTOS

    [报价]

    这是 Yocto 路径吗?  您能否确认您使用的是 PROCESSOR-SDK-LINUX-J721s2还是 PROCESSOR-SDK-RTOS-J721s2?

    您是否遇到任何构建错误? 您想在此处使用哪个免费的 RTO 示例?

    3.您使用的引导流程是什么?

    此致、

    Karthik

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

    尊敬的 Karthik

    是的、它是 Yocto 路径、使用 SDK Linux、但我在 SDK-RTOS 下构建固件、并将其作为预编译固件放在 Yocto 源代码中

    2.没有任何构建错误

    3、引导流程的含义是什么?

    您是指 SPL/SBL 吗?  

    对于 Yocto Arch、我认为它是以 SPL 模式引导的

    谢谢你  

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

    Daniel、您好!

    MCU1_0上似乎没有运行 DM 固件、这就是您看到此类日志的原因。

    注意:BL31:v2.10.0 (发布):v2.10.0-367-g00f1ec6b87-dirty
    通知:BL31:创建时间:2024年2月9日16:09:05
    错误:等待填充线程 SP_RESPONSE 超时
    错误:线程 SP_RESPONSE 验证失败(-60)
    错误:消息接收失败(-60)
    错误:无法获取响应(-60)
    错误:传输发送失败(-60)
    错误:等待填充线程 SP_RESPONSE 超时
    错误:线程 SP_RESPONSE 验证失败(-60)
    错误:消息接收失败(-60)
    错误:无法获取响应(-60)
    错误:传输发送失败(-60)
    错误:无法查询固件功能(-60)

    制造商确保 DM 在 MCU1_O 内核上运行。

    此致
    Diwakar

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

    尊敬的  Diwakar

    我使用 ipc_rtos_echo_test_freertos 的示例应用

    在 pdk_j721s2_10_01_00_25\packages\ti\drv\ipc\examples\RTOS 下

    如果我使用 ipc_rtos_echo_testb_freertos、则不会有这个问题。  

    为什么有这两个结果?

    非常感谢

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

    Daniel、您好!

    SPL 将不会初始化 R5的 ATCM 、因为这是初始化 BTCM、我们将 保留到 BTCM 的复位矢量。

    因此、必须使用  ipc_rtos_echo_testb_freertOS DM 二进制文件、而不是 ipc_rtos_echo_test_freertOS

    此致
    Diwakar

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

    尊敬的  Diwakar

    我找到了另一个示例、其中包含"Timeout waiting..." 发行

    例如 UART_TestApp_freertOS

    是否意味着这些示例具有相同的情况?

    如何检查示例  是否使用 ATCM?

    非常感谢

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

    尊敬的 Diwakar

    另一个问题、

    关于"初始化 BTCM、我们将 保留 BTCM 的复位矢量"、您的意思是什么

    如果我们使用 SPL 模式、您的意思是我们需要初始化 BTCM?

    如何执行"初始化 BTCM ..."?

    有什么关于它的采样码?

    非常感谢

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

    尊敬的  Diwakar

    我搜索应用的所有 xxx_freertos_mcu1_0_release.xer5f.map 文件

    他们中的大多数显示  

    "入口点符号:"_freertosresetvectors" 地址:00000000"

    这是否意味着固件在 ATCM 下、无法在 SPL 模式下运行?

    我是否可以将其更改为 BTCM 、并在 FreeRTOS 下的真实设备上运行?

    非常感谢

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

    Daniel、您好!

    您正在 Linux 中使用一些随机 MCU1_0测试或示例应用程序映像。 您迄今为止尝试的所有映像都是独立的单元测试示例固件、可以按 SBL + MCU1_0应用固件映像等独立方式进行测试。

    使用 U-Boot 和 R5 SPL 的 Linux 引导对于 MCU1_0固件有特定的要求。 MCU R5F 内核的默认上电复位禁用 ATCM、而仅启用 BTCM。 R5 SPL 也在 MCU R5F 内核上运行、只需从 MCU1_0应用跳转到入口点。

    因此、MCU1_0应用程序固件无法使用 ATCM 中的任何内容、必须使用适当的连接器命令文件。

    此致

    Suman

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

    亲爱的 苏曼

    感谢您提供 示例固件 仅可用作 SBL + MCU1_0应用固件的信息。

    因此、   如果我要在 "Linux boot using U-Boot and R5 SPL"(使用 U-Boot 和 R5 SPL 进行 Linux 引导)下运行、我认为我需要将示例更改为 BTCM 模式。

    我对吗?

    该示例(ipc_rtos_echo_testb_freertos)的功能是否可以归因于它处于 BCTM 模式?

    为 MCU1_0开发 BCTM 模式固件(FW)的主要注意事项是什么?

    非常感谢

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

    Daniel、您好!

    因此、   如果要在 "Linux boot using U-Boot and R5 SPL"
    下运行示例、我需要将示例更改为 BTCM 模式

    这并不是唯一的要求。 MCU1_0应用程序也需要运行 SciServer。

    请参阅  9.3. 在 RTOS SDK 文档中使用 SYSFW 进行 MCU1_0应用开发部分。

    此示例(ipc_rtos_echo_testb_freertos)的功能是否可归因于它处于 BCTM 模式?

    是的、正确。

    为 MCU1_0开发 BCTM 模式固件(FW)的主要注意事项是什么?

    这主要是链接器之间的差异。

    此致

    Suman

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

    SPL 模式是否需要 SciServer 部件?

    您的意思是我需要添加  SciServer 关系代码吗?

    需要为 BCTM 添加哪些其他器件?

    您能否提供一个简单的伪代码来解释它。  

    链接器设计

    非常感谢

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

    Daniel、您好!

    SPL 模式是否需要 SciServer 部件?

    是的、任何系统级集成引导都需要 MCU1_0上的 SciServer。 它负责各种外设的所有器件管理和 SoC 范围资源的资源管理。

    需要为 BCTM 添加其它什么器件?

    我不知道你在问什么。  

    您能提供一个简单的伪代码来解释它吗?  [报价]

    请通读上述文档参考和现有的 SDK 示例。 您可以查看以下示例:

    1. sciserver_testapp: /packages/ti/drv/sciclient/examples/sciserver_testapp

    这同时使用 ATCM 和 BTCM、而仅使用 MCU1_0中的 SciServer 代码

    2. ipc_echo_test: /packages/ti/drv/ipc/examples/linux

    本示例除 SciServer 之外还包括 IPC、用于 Linux。 这里有 ATCM 和 BTCM 版本、它们可分别用于 R5 SBL 和 R5 SPL。

    本示例还演示了 Linux 的其他要求、例如 Resource Table 等

    3.  ipc_rtos_echo_test:  /packages/ti/drv/ipc/examples/rtos

    这与#2等效、但适用于仅 RTOS 环境。

    此致

    Suman

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

    亲爱的 苏曼

    "需要为 BCTM 添加什么其他部件?"

    我的意思是、我想针对 SPL 模式实施一个 BCTM 示例。

    我应该为它添加什么?

    对于 sciserver_testapp 器件、"这使用 ATCM 和 BTCM、而仅使用 MCU1_0中的 SciServer 代码"有什么含义?

    您的意思是 sciserver_testapp 可以由 ATCM 或 BTCM 运行吗?

    非常感谢

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

    Daniel、您好!

    您能说明一下您的总体动机是什么吗? 为什么要 在 Linux 中运行 FreeRTOS 任务开关测试示例?

    我是想针对 SPL 模式实施一个 BCTM 示例。

    这主要是链接器 cmd 差异。 请比较 ipc_echo_test 和 ipc_echo_testb 示例使用的两个链接器命令文件。

    对于 sciserver_testapp 器件、"这既使用 ATCM 又使用 BTCM、只是使用 MCU1_0中的 SciServer 代码"这话什么意思?

    每个 R5F 内核具有两个 L1存储器(称为紧密耦合存储器或 TCM)- ATCM 和 BTCM。 对于每个 R5F 内核、它们可以本地出现在0x0和0x41010000处。

    SoC 默认情况下禁用 ATCM、这些在处理器加载期间启用、然后释放处理器的复位。 鉴于 R5 SPL 不执行复位、ATCM 保持禁用状态。 所以、如果要使用 R5 SPL、则无法将内容链接到其中。

    R5 SBL 支持在执行复位或不执行复位的情况下加载应用程序。 在执行复位以向固件提供最大 TCM 存储器的情况下、将启用 ATCM。

    sciserver_testapp 固件依赖于启用 ATCM (也启用 BTCM)并将复位矢量链接到 ATCM。

    此致

    Suman

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

    亲爱的苏曼

    "您能说明一下您的总体动机是什么吗?"

    我会使用一些 ADAS 功能来运行 FreeRTOS、该功能可以运行 CAN/IPC/SPIflash 服务以及与 A72 (Yocto Linux)与 IPC 的通信

    因此、我需要在 SPL 模式下使用 FreeRTOS FW 是 BTCM

    您的理解是什么

    '在执行重置以向固件提供最大 TCM 存储器的情况下、ATCM 将启用。'

    您的意思是我可以在 ATCM 模式下使用最大 TCM 吗?

    在 BTCM 下会怎么样?

    非常感谢

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

    Daniel、您好!

    我将使用一些 ADAS 功能来运行 FreeRTOS、它可以运行 CAN/IPC/SPIflash 服务以及与 A72 (Yocto Linux)的 IPC

    然后、ipc_echo_testb_freertos 示例已经是您的起点。 它是一个运行 FreeRTOS 的 IPC 示例。 您需要为其他功能添加额外的驱动程序和代码。

    您是说我可以在 ATCM 模式下使用最大 TCM 吗?

    是的、正确。

    您将用于项目的最终引导加载程序是什么? 如果您希望 MCU1_0固件利用 ATCM 和 BTCM、那么我建议您使用 RTOS SBL (通常是汽车产品的首选引导加载程序)。

    此致

    Suman

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

    亲爱的 苏曼

    系统的引导加载程序是 SPL。 这似乎是 Yocto 软件架构下的默认用例。

    在这种情况下、您是说我们 不能使用 最大 TCM 吗?

    如果我想  在 Yocto SW ARCH 下使用 RTOS SBL、我该怎么办?

    为什么 建议使用 RTOS SBL?

    非常感谢

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

    Daniel、您好!

    [报价 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1482530/tda4al-q1-freertos-timeout-waiting-for-thread-sp_response-to-fill/5738816 #5738816"]我们系统的引导加载程序为 SPL。 它似乎是 Yocto 软件架构下的默认用例。

    可以、标准 Linux SDK 产品使用所有 Linux 开源组件。

    在这种情况下、您是说我们 不能使用 最大 TCM?

    正确。 R5 SPL 仅执行仅分支引导、因此 MCU R5F 上未启用 ATCM。

    [报价 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1482530/tda4al-q1-freertos-timeout-waiting-for-thread-sp_response-to-fill/5738816 #5738816"]如果我想  在 Yocto 软件架构下使用 RTOS SBL、我该怎么办?[/QUOT]

    我们支持仅使用 RTOS SDK 构建基础架构通过 SBL 引导 Linux。

    [报价 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1482530/tda4al-q1-freertos-timeout-waiting-for-thread-sp_response-to-fill/5738816 #5738816"]为什么 推荐使用 RTOS SBL?[/QUOT]

    Linux R5 SPL 是一种通用引导加载程序、支持同一引导二进制文件中的所有引导模式。 与通常作为自定义引导加载程序的 RTOS SBL 相比、这是通用的广泛引导加载程序。 这使 RTOS SBL 成为自定义对象。 您还可以根据自己的需求自定义 R5 SPL、但我们的 SDK 引导凭借 U-Boot 的上游性迎合了广泛的市场需求、标准 U-Boot 也是如此。

    您的实际产品是什么?

    此致

    Suman

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

    亲爱的苏曼

    "您的实际产品是什么?"

    我们正在开发一款 ADAS 产品

    目前,我们正在使用 FreeRTOS ,并计划在将来使用 AUTOSAR

    SPL 模式是否足以使用?

    谢谢你  

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

    亲爱的苏曼

    另一个问题是、SPL 模式是否存在何种限制(与 SBL 模式相比)

    例如、无法使用  最大 TCM。(在 SPL 模式下可以使用多少个 TCM 大小)

    ...

    如果我们要在 Yocto SW 架构下使用 SBL、

    我需要进行什么样的更改?

    使用 SDK 使用 SBL tisbl.bin 和应用程序两映像进行构建、对吗?

    它是否与 tispl.bin 的 MCU dm-FW 路径相同?

    非常感谢

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

    Daniel、您好!

    SPL 模式是否足以使用?

    是的、您仍然可以使用 R5 SPL。

    最终、这取决于您的总体项目需求/目标。

    此致

    Suman

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

    Daniel、您好!

    另一个问题、SPL 模式是否具有何种限制(与 SBL 模式相比)

    很抱歉、本次讨论确实偏离了最初的主题。  请为参考该主题的 SPL 与 SBL 讨论打开一个新主题。

    您对原始主题主题标题主题是否仍有任何未决问题?

    此致

    Suman

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

    亲爱的苏曼

    是的、我可以为 SBL/SPL 创建另一个主题

    关于 origin "SP_RESPONSE"问题、

    是 SPL +ATCM FW 导致的、对吧?

    如果要保持 SPL 模式、则需要添加 sciserver 并使用 BCTM。

    对吧?

    非常感谢

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

    Daniel、您好!

    这是 SPL +ATCM 固件造成的、对吗?

    有。

    这也是由于  FreeRTOS 任务开关测试示例(一个低级 OS 测试示例)中缺少 SciServer。

    请尝试构建您自己的 ipc_echo_testb_freertos 示例并使用该示例。

    此致

    Suman