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.

[参考译文] RTOS:通过 IPL 引导加载程序引导 SYSBIS-M4内核映像所需的配置

Guru**** 2554970 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615126/rtos-required-configurations-for-booting-sysbios-m4-core-image-via-ipl-bootloader

Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

大家好、

我们需要从 IPL 引导 VisionSDK - VPS 应用程序 M4内核映像。

我们能够通过 CCS- JTAG 仿真器测试相同的映像。  

从 IPL (引导加载程序)到引导 M4内核映像所需的最低配置是什么?  

此致

Gokul

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

    我已将您的问题转交给 VisionSDK 专家。

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

    您使用的 SoC 和软件包是什么?

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

    让我们通过 e2e 而不是邮件继续提供支持。
    如果您希望直接连接到 M4而不运行多核启用脚本、则可以为添加调用 在中的 OnTargetConnect() API 中的_multicore_EnableAllCores() _startup_common.gel。
    如果要加载 SBL、则需要创建应用程序映像。 中提到了执行此操作的步骤 /bootloader/SBL_UserGuide.pdf

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

    您好、Rishabh、

    我们没有使用 SBL。  我们拥有专有 IPL。

    在此 IPL 中、已完成加载和引导 M4内核的基本初始化。

    我们已通过从 IPL 读取存储器位置(0x40500000U)验证 IPL 已引导 M4内核映像。

    但在某些时候,它已经崩溃。

      在通过 CCS 加载和运行 M4内核映像时,我们会得到以下例外情况。 是否可以调试此异常? (这没有 GEL 初始化、只需加载 M4内核映像并开始运行。 我们正在 从引导加载程序 IPL 执行 GEL 初始化)

    来自 CCS 的日志:

    [Cortex_M4_IPU1_C0] DISP_DSS_APP:示例应用-启动!!!

    src/vpsdrv_init.c @第212行:vps: vpsInitTda2xxPlatData!

    src/vpsdrv_init.c @第214行:vps: vpsInitTda2xxPlatData Done!

    TI.SYSBIOS.family.ARM.m3/Hwi:第1095行:E_hardFault:Forced

    TI.SYSBIOS.family.ARM.m3/Hwi:第1172行:E_BUSFault:IMPRECISERR:延迟总线故障、确切的地址未知、地址:e000ed38

    在 PC = 0x900be8a4的后台线程中发生异常。

    内核0:ThreadType_Task 中发生异常。

    任务名称:{unknown-instance-name}、句柄:0x907578e0。

    任务堆栈基地址:0x90788b00。

    任务堆栈大小:0x7800。

    R0 = 0x90b4cacc R8 = 0x90b4cad4

    R1 = 0x00000004 R9 = 0x90b4cb28

    R2 = 0x000000fc R10 = 0x90b4cb78

    R3 = 0x00000190 R11 = 0x90b4cae4

    R4 = 0x00000000 R12 = 0x00000010

    R5 = 0x00000000 SP (R13)= 0x9078fff8

    R6 = 0x48975800 LR (R14)= 0x900b01eb

    R7 = 0x90790014 PC (R15)= 0x900be8a4

    PSR = 0x21000000

    ICSR = 0x0440f803

    MMFSR = 0x00

    BFSR = 0x04

    UFSR = 0x0000

    HFSR = 0x40000000

    DFSR = 0x00000001

    MMAR = 0xe000ed34

    BFAR = 0xe000ed38

    AFSR = 0x00000000

    正在终止执行...

    此致

    Gokul

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

    IPL 为 M4执行的 Ammu 配置是什么?

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

    请按以下方式查找配置。
    /*---------- 设置 UNICACHE MMU --- *
    /*大页面翻译*/
    /*逻辑地址*/
    WR_MEM_32 (regAddr + 0x800、0x40000000);
    WR_MEM_32 (regAddr + 0x804、0x8000000);
    WR_MEM_32 (regAddr + 0x808、0xA0000000);
    WR_MEM_32 (regAddr + 0x80C、0x60000000);

    /*物理地址*/
    WR_MEM_32 (regAddr + 0x820、0x40000000);
    WR_MEM_32 (regAddr + 0x824、0x8000000);
    WR_MEM_32 (regAddr + 0x828、0xA0000000);
    WR_MEM_32 (regAddr + 0x82C、0x40000000);

    /*策略寄存器*/
    WR_MEM_32 (regAddr + 0x840、0x00000007);
    WR_MEM_32 (regAddr + 0x844、0x000B0007);
    WR_MEM_32 (regAddr + 0x848、0x00020007);
    WR_MEM_32 (regAddr + 0x84C、0x00000007);

    /*中页*/
    WR_MEM_32 (regAddr + 0x860、0x80300000);
    WR_MEM_32 (regAddr + 0x864、0x00400000);

    WR_MEM_32 (regAddr + 0x8A0、0x40300000);
    WR_MEM_32 (regAddr + 0x8A4、0x40400000);

    WR_MEM_32 (regAddr + 0x8E0、0x00000007);
    WR_MEM_32 (regAddr + 0x8E4、0x00020007);

    /*小页*/
    WR_MEM_32 (regAddr + 0x920、0x00000000);
    WR_MEM_32 (regAddr + 0x924、0x40000000);
    WR_MEM_32 (regAddr + 0x928、0x00004000);
    WR_MEM_32 (regAddr + 0x92C、0x00008000);
    WR_MEM_32 (regAddr + 0x930、0x20000000);

    WR_MEM_32 (regAddr + 0x9A0、0x55020000);
    WR_MEM_32 (regAddr + 0x9A4、0x55080000);
    WR_MEM_32 (regAddr + 0x9A8、0x55024000);
    WR_MEM_32 (regAddr + 0x9AC、0x55028000);
    WR_MEM_32 (regAddr + 0x9B0、0x55020000);

    WR_MEM_32 (regAddr + 0xA20、0x0001000B);
    WR_MEM_32 (regAddr + 0xA24、0x0000000B);
    WR_MEM_32 (regAddr + 0xA28、0x00010007);
    WR_MEM_32 (regAddr + 0xA2C、0x00000007);
    WR_MEM_32 (regAddr + 0xA30、0x00000007);


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

    观察问题语句、可以看到 M4应用程序也在设置 AMMu、这与 GEL 设置的 AMMu 冲突。
    作为第一步、您可以尝试使用 SBL 在不使用 GEL 的情况下引导 M4映像。 这将验证根本原因、因为 TDA2xx SBL 未为 IPU 设置 Ammu。
    然后、您可以查看应用程序 cfg 文件并删除冲突配置。
    理想情况下、AMmu 编程只能执行一次。 因此、您可以将其移至 IPL 并从 GEL/应用程序中删除。

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

    您好、Rishabh、

    我们使用的是 VPS DSS 应用。
    我们需要查看该应用程序的哪些配置文件?

    此致、
    Gokul

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

    要引用 cfg 文件、请查看 displayDss.cfg。 它加载 utility/bspCommonBIOS.cfg。
    然后、它包含一个 Ammu cfg 文件、具体取决于平台。 中也存在这些文件 \examples\utility。

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

    您好、Rishabh、

    附加文件、IPL 组使用该文件在 IPL 中进行初始化以进行 M4引导。

    是否可以支持查找缺少的 IPL 初始化 ?

    我们使用的是 dra7xx 平台。 那么 我们的 cfg 文件将是 bspCommon_AMMU.cfg。我对吗?

    e2e.ti.com/.../7183.board.c

    此致、

    Gokul

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

    从引导加载程序加载 M4后发生崩溃的典型原因是 M4所需的一些外设时钟未开启。 对于 VISION SDK、我们通常使用下面显示的补丁来开启外设时钟。

    review.omapzoom.org/38438 spl:dra7xx:Early boot:Enable peripherals for VISION SDK

    根据 M4应用使用的外设、许多应用需要进行更多更改。

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

    我们能够通过引导加载程序加载 M4内核映像。
    感谢您共享所需的配置。
    review.omapzoom.org/38438。

    此致、
    Gokul