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-Q1:构建 MCUSW CAN_PROFILE_APP_FreeRTOS 应用程序后观察到引导问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1648416/tda4vm-q1-boot-issue-observed-after-building-mcusw-can_profile_app_freertos-application

器件型号: TDA4VM-Q1

尊敬的团队:

我们在 J721E 平台上构建和刷写 MCUSW“can_profile_app_freertos“应用程序后观察到引导问题。

问题摘要:

将生成的“can_profile_app_freertos“二进制文件集成到 U-Boot 构建中并引导电路板后、系统在 SPL/U-Boot 阶段停止、不再继续。

更改已完成:

我们更新了 makefile_uboot.mak 并附加了 snip 以供参考。

还连接了引导日志快照、 在此之后、电路板不会继续引导。

请求:

请帮助我们回顾以下内容:

  1. 生成的 MCU R5F 二进制格式/路径集成是否正确
  2. 集成 CAN_PROFILE_APP_FreeRTOS 时所需的任何额外步骤
  3. 如果此应用程序有已知的依赖项或引导配置要求

如果需要其他日志或二进制文件进行进一步分析、请告知我们。

环境详细信息:

  • SDK 版本:TI-PROCESSOR-SDK-RTOS-j721e-EVM-11_02_00_06
  • 应用程序: can_profile_app_fretos
  • 平台:J721E
  • 使用的 MCU 固件二进制文件:can_profile_app_freertos_mcu1_0_release.xer5f 和 can_profile_app_freertos_mcu1_0_release_strip.xer5f

Minicom_Terminal_MCan.pngMakeFile.png此致、

Indumathi M

 

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

    您好 Indumathi、

    CAN 示例是独立的示例、不能与 Linux 协调。您是否对默认设置进行了任何更改? 如果未参阅  

    【常见问题解答】TDA4VM:如何使用主域 CAN0 实例在 MCU2_1 上启用 CAN 与 Linux。 -处理器论坛 — 处理器- TI E2E 支持论坛

    此致

    Tarun Mukesh

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

    你好、Tarun、

    请说明以下几点:

    1. 以下补丁是否适用于 SDK 版本 11.02.00.06?
    2. 对于 MCU1_0、应用补丁和运行 MCU2_1 固件的说明是否可以保持不变?
    3. 在步骤 7 之后、是否可以将步骤 6 用于 MCU1_0、或者是否应该遵循提供的链接中提到的相同步骤?

    此致、

    M Indumathi

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

    您好 Indumathi、

    否、这可能不直接适用于最新版本。目的是让客户了解我们在上述补丁中所做的更改、并尝试  根据他们的要求进行移植。

    在 Linux 中、CAN 默认处于启用状态、因此您需要确保从 Linux 禁用 CAN、并且仅从 MCU1_0 使用。

    在步骤 7 之后、是否可以将步骤 6 用于 MCU1_0、或者是否应该遵循提供的链接中提到的相同步骤?

    在步骤 5 中进行更改后、需要构建 uboot spl 等。  对于 MCU1_0、可能不需要步骤 7。

    此致

    Tarun Mukesh

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

    你好、Tarun、

    1.是否有适用于 SDK 版本 11.02.00.06 的补丁?

    2.我们参考了以下 TI E2E 论坛链接、并成功构建和启动了 IPC 固件。

    TDA4VM:更改了 MCU1_0 二进制文件,现在我有引导错误 — 处理器论坛-处理器 — TI E2E 支持论坛

    成功引导 IPC 固件后、我们能否在其之上添加 CAN 应用程序代码并验证功能? 这种方法是否可行?

    3. 为了进行调试,我们尝试使用 App_printf()UART_printf() 来打印日志消息,但没有显示任何输出。 您能否建议使用正确的方法打印调试消息、或帮助我们了解这些 API 无法正常工作的原因?

    此致、

    M Indumathi

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

    你好 indumathi、

    SDK 11.02 上没有可用的补丁

    关于使用 Linux 编译 MCU1_0 FW 的问题、您需要遵循 URL

    为了进行调试、我们尝试使用 App_printf ( ) 和 UART_printf () 来打印日志消息、但不显示任何输出。 您能否建议打印调试消息的正确方法或帮助我们了解这些 API 无法正常工作的原因?

    必须确保 UART 仅在 MCU1_0 中初始化、但 A72 不应重新初始化或更改现有映像

    此致

    Tarun Mukesh

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

    你好、Tarun、

    我们能够在网络上看到 CAN 帧;但是、我们在启动过程中遇到了问题。

    我们正在以延迟的方式定期传输 CAN 帧。 在这种情况下、一旦引导过程到达结束阶段、CAN 帧传输就会停止、引导过程也会失败。

    您能帮助我们了解引导过程失败的原因以及 CAN 帧传输在同一时刻停止的原因吗?

    请找到随附的错误日志屏幕截图以供您参考。

    此致、

    M Indumathi

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

    您好 Indumathi、

    这些迹线是 MCU1_0 上的 SciServer 没有正确响应的典型症状。

    您可以对 MCU1_0 做出响应的固件也应该对其运行 sciserver。如果失败、整个引导过程将失败、因为它是 DM 固件。

    此致

    Tarun Mukesh

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

    你好、Tarun、

    我们已经按照您建议的方式执行了修补程序中的步骤和更改。、因此 Sciserver 正在运行。 在中、我们刚刚为连续 CAN 数据传输添加了额外的 while (1/)。

    如上所述、一旦引导到达结束、引导和 CAN 通信都会失败。

    请像调试它一样提供帮助

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

    你好、Nirmal、

    您能将完整日志分享给我吗?

    如果在 FreeRTOS 中无法执行任务切换、则添加 while 1 将是问题。 Sciserver 必须具有最高优先级。 错误屏幕截图表明 sciserver 已停止

    此致

    Tarun Mukesh  

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

    你好 Tarun Mukesh Puvvada ,

    现在引导问题已清除、但引导完成后、CAN 通信停止。 我随附了引导日志和 MAIN_RTOS 文件

    e2e.ti.com/.../0513.boot_5F00_log.txte2e.ti.com/.../3326.main_5F00_rtos.c

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

    你好、Nirmal、

    Mem abort info:                                              
    [   16.105589]   ESR = 0x0000000096000006                                   
    [   16.106366] remoteproc remoteproc1: Direct firmware load for j7-main-r5f2
    [   16.109333]   EC = 0x25: DABT (current EL), IL = 32 bits                 
    [   16.109337]   SET = 0, FnV = 0                                           
    [   16.109339]   EA = 0, S1PTW = 0                                          
    [   16.109341]   FSC = 0x06: level 2 translation fault                      
    [   16.109344] Data abort info:                                             
    [   16.109346]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000               
    [   16.109349]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0                    
    [   16.109351]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0               

    我在您的日志中也看到一些内存中止问题,可能是由于内存冲突。请检查。

    CAN 通信已停止

    “你说什么? 它是否至少启动过一次、如果是这样、您可以收到多少条消息?

    我看到您的所有任务都具有比 CAN 更高的优先级。 是否能够获得任务上下文?

    #define IPC_INIT_SCISERVER_TASK_PRI (6)
    define APP_SCISERVER_INIT_TSK_STACK (32U * 1024U)
    /* SCI 服务器的高优先级 — 必须高于低优先级任务*/
    #define IPC_SETUP_SCISERVER_TASK_PRI_HIGH (5)
    /*
    * SCI 服务器的低优先级 — 必须高于 IPC 回声测试任务
    *防止在执行测试时延迟处理 Sciserver 请求
    *多核 ping/pong。
    */
    #define IPC_SETUP_SCISERVER_TASK_PRI_LOW (4)

    此致

    Tarun Mukesh

    Tarun Mukesh

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

    你好 Tarun Mukesh Puvvada ,

    感谢您的答复、

    我已添加 while (1) 以发送 CAN 消息。 我能够在 Linux 引导时通过 PEAK CAN 在总线上看到 CAN msg。 引导完成后、总线中没有 CAN msg。

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

    你好 Tarun Mukesh Puvvada ,

    调试后、我发现 can_app 固件仅用于 uboot 构建。 我与位于 Linux 文件系统中以下路径的相应固件映像不匹配:

    /lib/firmware/j7-mcu-r5f0_0-fw.

    解决此问题后、现在我看不到任何启动错误。  

    启动完成后仍会显示消息 stooping。 我遵循了补丁 v8.2 的更改。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1003429/faq-tda4vm-mcusw-demo-on-can-along-side-linux-on-a72/3729720#3729720

    e2e.ti.com/.../8304.boot_5F00_log_5F00_1.txt

      

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

    你好、Nirmal、

    在您的 Linux 引导日志中、我仍然看到 CAN。除非从 Linux dts 文件中禁用 CAN、否则它将停止、因为 Linux 也尝试再次重新配置它。  

    [ 14.280480] m_can_platform 40528000.can mcu_mcan0:重命名为 CAN0
    [ 14.305917] m_can_platform 40568000.can mcu_mcan1:重命名为 CAN1
    [ 14.350498] m_can_platform 2701000.can main_mcan0:已从 CAN2 重命名
    [ 14.388307] m_can_platform 2721000.can main_mcan2:已从 CAN3 重命名

    如果您已构建 dtb 并按照步骤操作、则引导日志中不应存在这些 mcan。 请再次检查这些步骤。

    此致

    Tarun Mukesh

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

    你好 Tarun Mukesh Puvvada ,

    感谢您的答复。

    我在 dts 文件中禁用了 CAN、也要重新编译 Linux。 请参阅以下文件。 我在这里遗漏了什么吗? 请提供支持

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

    你好、Nirmal、

    您是否在此之后构建了 Linux dtbs? 您能否分享已替换的构建 dtb 文件?

    此致

    Tarun Mukesh

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

    在启动日志中、我看到仍然可以从 Linux 进行配置

    [ 13.432625] m_can_platform 40528000.can: m_can 设备已注册 (IRQ=840、版本=32)
    [ 13.439608] platform 5c00000.r5f:分配了保留的内存节点 vision-apps-r5f-dma-memory@a2000000
    [ 13.464540] m_can_platform 40568000.can: m_can 设备已注册 (IRQ=841、版本=32)
    [13.471419] Remoteproc remoteproc0: 5c00000.r5f 可用
    [ 13.490701] m_can_platform 2701000.can: m_can 设备已注册 (IRQ=842、版本=32)
    [13.495341] Remoteproc remoteproc0:连接到 5c00000.r5f
    [ 13.507915] m_can_platform 2721000.can: m_can 设备已注册 (IRQ=843、版本=32)

    [ 14.280480] m_can_platform 40528000.can mcu_mcan0:重命名为 CAN0
    [ 14.305917] m_can_platform 40568000.can mcu_mcan1:重命名为 CAN1
    [ 14.350498] m_can_platform 2701000.can main_mcan0:已从 CAN2 重命名
    [ 14.388307] m_can_platform 2721000.can main_mcan2:已从 CAN3 重命名

    从引导日志中、CAN 由 Linux 执行、因此从 MCU1_0 evn、尽管您对其进行配置、但它将停止。  

    此致

    Tarun Mukesh  

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

    你好 Tarun Mukesh Puvvada ,

    感谢您的答复、

    我固定将 dtb 文件移动到 SD 卡上。

    在将 DTB 移动到 SD 卡之后。 现在 CAN 通信正常工作。

    但我尝试运行视觉应用示例、收到与 IPC 相关的错误消息、  

    e2e.ti.com/.../boot_5F00_vision_5F00_app_5F00_err_5F00_log.txt

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

    你好、Nirmal、

    内存映射可能会随着重建 dtb 文件而改变,对于 MCU1_0 内核根据现在可以示例和视觉应用可能不能同时工作. 您需要注意必须运行哪些固件、并尝试相应地更改存储器映射、这将是自定义实现。

    所有固件无法并行运行、因为可能存在存储器映射差异。 由于 CAN 问题已根据说明得到解决、我正在关闭此 TT。

    尝试了解视觉应用 IPC 和其他固件并行运行所需的存储器映射。如果您需要进一步帮助、请提交有关视觉应用的另一个 TT。

    此致

    Tarun Mukesh

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

    你好 Tarun Mukesh Puvvada ,

    感谢您的支持。