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:SBL+XIP 引导错误。

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error

器件型号:TDA4VM

工具与软件:

SDK 版本0806 0902

板:tda4vm_evm 
您好、TI 专家!
我目前遇到问题:我想让 mcu1_0在 ospi 上执行(我们不使用 DDR)、我引用了在 BareMetal 上运行的两个项目[sblMcXipEntryApp 和 k3MulticoreApp (sbl_amp_multicore.c)并成功运行它们。 

 
这两个工程会告诉我、我需要按如下方式映射0x501c0000中的"entry_point": 

和 map_file:

我还看到系统初始化代码实际上位于0x501c0000:

但实际上、我们需要运行 FreeRTOS、、所以我还试着修改我们项目的链接器文件、并参考相关文档。 

以下是我的链接文件修改点(与 SDK 不同): 




 将数据段、堆栈、堆和全局变量放在 OCMC 中
另一个在 ospi (0x501c0000)上运行、我使用 cmd 将其转换为 bin: 

gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf-objcopy vx_app_rtos_linux_mcu1_0.out -O binary --only section .freertosrstvectors --only section .text --only section .text --section .rodata vx_app_rtos_linux_mcu1_0.bin

并 在0x1c0000 (ospi flash)处刷写 vx_app_rtos_linux_mcu1_0.bin、但 mcu1_0无法引导。   然后我查看了映射文件、只有 _freertosresetvectors 位于0x501c0000 、 、而_c_int00位于0x501f056c、因此、当 sblMcXipEntryApp 跳转至0x501c0000 ->(((void *)(void)) 0x501c0000)()时、无法执行_c_int00;

因此、TI 能否提供一个演示、以便在 opsi (XIP)上使用 FreeRTOS 完全运行演示? 
我还提到了 CAN_PROFILE_XIP 演示、但我无法完全理解它的工作原理:我查看了它的链接文件。程序的入口地址不是在0x501c0000、而是在0x41010000、 

当 sblMcXipEntryApp 跳转至0x501c0000 ->(((void *)(void)) 0x501c0000)();  当我 在0x1c0000 (ospi 闪存)刷写 can_profile_xip 时、如何运行 can_profile_xip?


谢谢


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

    您好!

    [报价 userid="555442" url="~/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error ] TI 能否提供一个可在 opsi (xip)上使用 FreeRTOS 完全运行演示的演示?

    TI SDK 不支持通过 OSPI 闪存运行示例。

    TI SDK 应用程序将 DDR 和内部存储器用于应用程序。

    从 OSPI 闪存运行应用程序的用例是什么。

    此致、
    Sudheer

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

    嗨、Sudheer
    想要 在 OSPI 闪存上运行应用程序的原因是:

    我们希望快速启动:从上电到发送第一条 CAN 消息所需的时间不到100ms。   、的代码大小至少达到1M μ s 、因此 can_early_response 演示、不再适用于我们、 、因此我们不需要在 SBL 中初始化 DDR (在 SBL 中初始化 DDR 需要超过30ms)、并直接让 mcu1_0在 ospi 闪存中运行。   您对此有什么建议吗?   我还提到 can_profile_xip demo、但我无法完全理解它的工作原理:我查看了它的链接文件、程序的入口地址不是在0x501c0000处、而是在0x41010000    处。当 sblMcXipEntryApp 跳转到0x501c0000 ->(((void *))) 0x501c0000)();当 sblMcIP_exsp_profile_0x1cip 在0x1c0000处运行时、如何刷写?

    此致、
    伊森

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

    嗨、Sudheer

    我用例 mcu1_0应用是  sbl_amp_multicore.c

    此致、

    伊森

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

    您好!
    对此有什么建议吗?


    此致、

    伊森

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

    您好、
    现在、我使用 CAN_PROFILE_XIP_APP 进行测试、但它不能用。 我  是参考文档。


    创建 can_profile_app:

    make -s can_profile_xip_app CORE=mcu1_0 BOARD=j721e_evm BUILD_PROFILE=release BUILD_OS_TYPE=freertos

    生成 sbl_ospI_img:

    make  sbl_ospi_img BOARD=j721e_evm

    我获取图像:


    sbl_ospi_img_mcu1_0_release.tiimage、将其命名为--> ospi_tiboot3.bin


    can_profile_xip_app_freertos_mcu1_0_release.appimage -> ospi_app1

    can_profile_xip_app_freertos_mcu1_0_release.appimage_xip  -> ospi_App2

    nor_spi_patterns.bin

    我使用将 BOOTMODE 更改为 MMCSD、并使用 uboot 刷写所有映像:
    SF 探针
    fatload MMC 1 ${loadaddr}ospi_tiboot3.bin
    SF 更新${loadaddr}0x0 0x${fileSize}
    fatload MMC 1 ${loadaddr}ospi_app1
    SF 更新${loadaddr}0x100000 0x${fileSize}
    fatload MMC 1 ${loadaddr}ospi_App2
    SF 更新${loadaddr}0x1c0000 0x${filesize}
    fatload MMC 1 ${loadaddr} nor_spi_patterns.bin
    SF 更新${loadaddr}0x3FE0000 0x${fileSize}

    然后将 bootmode 从 mmcsd 更改为 ospi

    但我只能看到 SBL 引导日志、无法看到任何 mcu1_0日志(两个六个端口都看不到)

    SBL Revision: 01.00.10.01 (Nov 27 2024 - 12:48:38)
    TIFS  ver: 9.2.4--v09.02.04 (Kool Koala)
    SCISERVER Board Configuration header population... PASSED
    Sciclient_setBoardConfigHeader... PASSED
    Initlialzing PLLs ...done.
    InitlialzingClocks ...done.
    Initializing GTC ...Begin parsing user application
    Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    OSPI RCLK running at 166666666 MHz. 
    Ospi Read speed for 0x4 bytes from offset 0x100000 = 0 Mbytes per sec
    Searching for X509 certificate ...not found
    Ospi Read speed for 0x10 bytes from offset 0x100000 = 0 Mbytes per sec
    Ospi Read speed for 0x8 bytes from offset 0x100010 = 0 Mbytes per sec
    Ospi Read speed for 0x8 bytes from offset 0x100018 = 0 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100020 = 0 Mbytes per sec
    Switching core id 8, proc_id 0x1 to split mode... 
    Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    Sciclient_procBootSetProcessorCfg, ProcId 0x1, enabling split mode...
    Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    Enabling MCU TCMs after reset for core 8
    Sciclient_procBootSetProcessorCfg update TCM enable/disable settings...
    Ospi Read speed for 0x14 bytes from offset 0x100034 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010000 to SoC MCU BTCM addr 0x41010000
    Copying 0x40 bytes to 0x41010000
    Ospi Read speed for 0x40 bytes from offset 0x100048 = 1 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100088 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010100 to SoC MCU BTCM addr 0x41010100
    Copying 0x518 bytes to 0x41010100
    Ospi Read speed for 0x518 bytes from offset 0x10009c = 26 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x1005b4 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010618 to SoC MCU BTCM addr 0x41010618
    Copying 0x358 bytes to 0x41010618
    Ospi Read speed for 0x358 bytes from offset 0x1005c8 = 19 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100920 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010970 to SoC MCU BTCM addr 0x41010970
    Copying 0x2c0 bytes to 0x41010970
    Ospi Read speed for 0x2c0 bytes from offset 0x100934 = 16 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100bf4 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010c30 to SoC MCU BTCM addr 0x41010c30
    Copying 0x120 bytes to 0x41010c30
    Ospi Read speed for 0x120 bytes from offset 0x100c08 = 7 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100d28 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010d50 to SoC MCU BTCM addr 0x41010d50
    Copying 0x58 bytes to 0x41010d50
    Ospi Read speed for 0x58 bytes from offset 0x100d3c = 2 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100d94 = 0 Mbytes per sec
    Copying 0x618 bytes to 0x41ca2528
    Ospi Read speed for 0x618 bytes from offset 0x100da8 = 30 Mbytes per sec
    Setting entry point for core 8 @0x41010000
    SBL_ospiClose called
    Sciclient_procBootReleaseProcessor, ProcId 0x1...
    Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    Sciclient_procBootSetProcessorCfg, ProcId 0x1, EntryPoint 0x41010000...
    Sciclient_pmSetModuleClkFreq, DevId 0xfa @ 1000000000Hz... 
    Copying first 128 bytes from app to MCU ATCM @ 0x0 for core 8
    Calling Sciclient_procBootRequestProcessor, ProcId 0x2... 
    Skipping Sciclient_procBootSetProcessorCfg for ProcId 0x2, EntryPoint 0xfffffffe...
    Sciclient_procBootReleaseProcessor, ProcId 0x2...
    Sciclient_procBootReleaseProcessor, ProcId 0x1...
    SBL Revision: 01.00.10.01 (Nov 27 2024 - 12:48:38)
    TIFS  ver: 9.2.4--v09.02.04 (Kool Koala)
    SCISERVER Board Configuration header population... PASSED
    Sciclient_setBoardConfigHeader... PASSED
    Initlialzing PLLs ...done.
    InitlialzingClocks ...done.
    Initializing GTC ...Begin parsing user application
    Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    OSPI RCLK running at 166666666 MHz. 
    Ospi Read speed for 0x4 bytes from offset 0x100000 = 0 Mbytes per sec
    Searching for X509 certificate ...not found
    Ospi Read speed for 0x10 bytes from offset 0x100000 = 0 Mbytes per sec
    Ospi Read speed for 0x8 bytes from offset 0x100010 = 0 Mbytes per sec
    Ospi Read speed for 0x8 bytes from offset 0x100018 = 0 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100020 = 0 Mbytes per sec
    Switching core id 8, proc_id 0x1 to split mode... 
    Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    Sciclient_procBootSetProcessorCfg, ProcId 0x1, enabling split mode...
    Calling Sciclient_procBootGetProcessorState, ProcId 0x1... 
    Enabling MCU TCMs after reset for core 8
    Sciclient_procBootSetProcessorCfg update TCM enable/disable settings...
    Ospi Read speed for 0x14 bytes from offset 0x100034 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010000 to SoC MCU BTCM addr 0x41010000
    Copying 0x40 bytes to 0x41010000
    Ospi Read speed for 0x40 bytes from offset 0x100048 = 1 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100088 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010100 to SoC MCU BTCM addr 0x41010100
    Copying 0x518 bytes to 0x41010100
    Ospi Read speed for 0x518 bytes from offset 0x10009c = 26 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x1005b4 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010618 to SoC MCU BTCM addr 0x41010618
    Copying 0x358 bytes to 0x41010618
    Ospi Read speed for 0x358 bytes from offset 0x1005c8 = 19 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100920 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010970 to SoC MCU BTCM addr 0x41010970
    Copying 0x2c0 bytes to 0x41010970
    Ospi Read speed for 0x2c0 bytes from offset 0x100934 = 16 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100bf4 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010c30 to SoC MCU BTCM addr 0x41010c30
    Copying 0x120 bytes to 0x41010c30
    Ospi Read speed for 0x120 bytes from offset 0x100c08 = 7 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100d28 = 0 Mbytes per sec
    Translating coreid 8 local BTCM addr 0x41010d50 to SoC MCU BTCM addr 0x41010d50
    Copying 0x58 bytes to 0x41010d50
    Ospi Read speed for 0x58 bytes from offset 0x100d3c = 2 Mbytes per sec
    Ospi Read speed for 0x14 bytes from offset 0x100d94 = 0 Mbytes per sec
    Copying 0x618 bytes to 0x41ca2528
    Ospi Read speed for 0x618 bytes from offset 0x100da8 = 30 Mbytes per sec
    Setting entry point for core 8 @0x41010000
    SBL_ospiClose called
    Sciclient_procBootReleaseProcessor, ProcId 0x1...
    Calling Sciclient_procBootRequestProcessor, ProcId 0x1... 
    Sciclient_procBootSetProcessorCfg, ProcId 0x1, EntryPoint 0x41010000...
    Sciclient_pmSetModuleClkFreq, DevId 0xfa @ 1000000000Hz... 
    Copying first 128 bytes from app to MCU ATCM @ 0x0 for core 8
    Calling Sciclient_procBootRequestProcessor, ProcId 0x2... 
    Skipping Sciclient_procBootSetProcessorCfg for ProcId 0x2, EntryPoint 0xfffffffe...
    Sciclient_procBootReleaseProcessor, ProcId 0x2...
    Sciclient_procBootReleaseProcessor, ProcId 0x1...

    是否有 TI 专家在默认 SDK 中验证了 CAN_PROFILE_XIP_APP? 您是如何验证的?

    谢谢!

    伊森

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

    尊敬的 EASON

    [报价 userid="555442" url="~/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error/5539314 #5539314"]但我只能看到 SBL 引导日志、看不到任何 mcu1_0日志(两个六端口都看不到)
    [报价]

    您能否在 CCS 中尝试在无引导模式下进行测试。

    此致、
    Karthik

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

    嗨、Karthik
    当然、我已经在 CCS 上对其进行了调试。但一切似乎正常。
    TI 专家可以提供一些 can_profile_app_xip 的参考固件、并且 TI 专家已对其进行了测试。 我将在这里进行验证。
    同时、如果您可以提供电子邮件、、我会向您发送 can_profile_app_xip 的映射文件和链接文件、帮助您进行检查。

    谢谢!
    伊森

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

    您好!
    1、您能否 提供一些 can_profile_app_xip 的参考固件并对其进行测试? 我将在这里进行验证。
    2、您可以帮助我让 CAN_PROFILE_APP_XIP 成功运行吗? 它 对我们的项目非常重要。

    谢谢!
    伊森

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

    您好、
    任何人都可以帮助我解决这个问题?

    谢谢!
    伊森

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

    您好、
    可以不可以让  TI   专家 帮我检查一下这个问题?   它 对我们的项目非常重要。

    谢谢!
    伊森

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

    您好!

    "对不起,我不能接受。"

    [报价 userid="555442" url="~/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error/5539314 #5539314"]现在、我使用 can_profile_xip_app 进行测试、但它无法正常工作。 我  指的是文档。

    此应用程序已过时、将在下一个版本中从 SDK 中删除。 我们不支持 CAN XIP 应用、也不对其进行测试。

    [报价 userid="555442" url="~/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error/5548041 #5548041"]

    正如我在开始时所说的那样、我可以成功使用[sblMcXipEntryApp 和 k3MulticoreApp (sbl_amp_multicore.c)]这两个演示来运行 XIP、

    这两个演示使用文档中的"XIP Using Dummy App"。 在 裸机上运行的这两个演示。

    [报价]

    目前、我们在 PDK 中只有裸机应用程序、在 FreeRTOS 上运行的 MCAL 中没有演示。

    此致

    Tarun Mukesh

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

    嗨、Tarun Mukesh

    但现在我们需要让该应用在 ospi(XIP 上运行并且想要运行 FreeRTOS、我们应该怎么做?

    谢谢!
    伊森

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

    嗨、Tarun Mukesh
    我们还有一个问题、即如何在 opsi(uboot XIP)中运行 uboot、我需要在 uboot 中修改什么以及如何编译它?

    谢谢!
    伊森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="555442" url="~/support/processors-group/processors/f/processors-forum/1444117/tda4vm-sbl-xip-boot-error/5548106 #5548106"]但是现在我们需要让应用程序在 ospi(XIP 上运行并且想要运行 FreeRTOS、我们该怎么办?
    [报价]

    这是定制的特定要求、您需要在最后加以注意 我们不能对此作进一步评论。

    我们还有一个问题、如何在 opsi(uboot XIP 中运行 uboot)我需要在 uboot 中修改什么、如何编译它?

    请针对 uboot 相关问题提出另一个 E2E。

    此致

    Tarun Mukesh

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

    你(们)好
    谢谢!

    此致
    伊森