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.

[参考译文] TMS320C6678:KeyStone 架构 DSP 引导加载程序第3.12.4节不显示如何操作

Guru**** 2541910 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/599662/tms320c6678-keystone-architecture-dsp-bootloader-section-3-12-4-doesn-t-show-how

器件型号:TMS320C6678

Keystone 架构 DSP 引导加载程序的第3.12.4节介绍了使用 RBL 在所有 CorePacs 上引导相同映像的方案、但未显示如何执行该操作。   那么、如何呢?

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

    请参阅以下主题:
    e2e.ti.com/.../449115
    e2e.ti.com/.../246848
    e2e.ti.com/.../358980

    还有其他讨论、在此论坛中搜索"多核启动"。

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

    使用适用于 C6678的 MCLK/处理器 SDK RTOS 中的示例、可以显示引导加载程序过程的软件特定详细信息。

    您还可以从以下维基网页文章中找到大量其他信息和软件资源:
    processors.wiki.ti.com/.../KeystoneI_Bootloader_Resources_and_FAQ

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

    我已经了解了几个示例。  对我来说似乎什么都不起作用。  我能告诉大家的是、唤醒从内核并让它们从写入魔法地址的地址运行的指令实际上并不会将它们唤醒。  在 IDLE 指令下、它们仍在引导 ROM 中休眠。   下面是我要做的事情(从示例中可以看到):

    #define boot_magic_ADDR (内核)(0x1087FFFC +(内核<< 24))

    #define IPCGR (CORE)(0x02620240 +(CORE * 4))

    KickUnlock ()

    uint32_t * Kick0 =(uint32_t *) 0x02620038;

    uint32_t * Kick1 =(uint32_t *) 0x0262003C;

    *(Kick0)= 0x83e70b13;

    *(Kick1)= 0x95a4f1e0;

    KickLock ()

    uint32_t * Kick0 =(uint32_t *) 0x02620038;

    uint32_t * Kick1 =(uint32_t *) 0x0262003C;

    *(Kick0)= 0x11111111;

    *(Kick1)= 0x11111111;

    StartCore (uint8_t CoreID、uint32_t entry_addr)

    KickUnlock();

    DEVICE_REG32_W (BOOT_MAGICA_ADDR (CoreID)、entry_addr);

    DEVICE_REG32_W (IPCGR (CoreID)、1);

    KickLock();

    UT_DELAY (10);



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

    对于任何处理此问题的人来说、就像我过去2个月一样、事实证明、我要加载到内核1-7的 L2SRAM 中的.bin 文件需要每个字进行字节交换。  我的 IPC 中断显然唤醒了内核、但当内核尝试执行代码时、它们会快速复位(在我注意到之前)。   我还必须在加载映像时实施伪引导加载程序。  因此、我的 post-build 步骤是:

    ${CG_TOOL_ROOT}/bin/strip6x MyProject.out
    ${CG_TOOL_ROOT}/bin/hex6x.exe -订购 L MyProject.RMD
    Bttbl2Hfile.exe myProject.btbl myproject.h myproject.bin

    MyProject.RMD 文件如下所示:

    MyProject.out

    -A
    -boot
    -e _c_int00

    ROM

      ROM1:org=0x0800000、len=0x080000、romwidth=32、memwidth=32
      文件={MyProject.btbl}
    }