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:运行时的二进制部署

Guru**** 2563960 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614722/tms320c6678-binary-deployment-at-runtime

器件型号:TMS320C6678

大家好、

我正在尝试创建一个简单的项目、其中 core0加载程序

其他内核中。 加载的程序与执行的程序相同

Core0 (_c_int00)。 我在这个论坛上找到了几个例子

几乎相同、因此我编写了代码:

Core0:

1.在每个核心魔法地址上写入_c_int00

2. KICK0和 KICK1解锁

3.在每个内核上写入 IPCGR 寄存器

该程序加载到从内核3上后、应使 LED 闪烁

GPIO 10。


似乎 未触发 IPC 中断。 我将我的代码附加到该主题。

e2e.ti.com/.../5504.main.c

可以有人帮助我吗?

谢谢

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

    我已通知软件团队。 反馈将发布在此处。

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

    可执行代码和数据放在哪里? L2RAM、MCSM?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有外部可执行文件(例如具有可引导代码的.h 文件)。 由 Core0执行、然后加载到从 Core 的程序存储在 L2RAM 中。 希望我回答了你的问题
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    L2RAM 是每个内核专用的(相同的逻辑地址、但不同的物理存储器)。 CCS 在 core0中加载的程序仅加载到 core0的 L2RAM 中。

    当您说"然后加载到从内核"时、意味着您使用 CCS 加载它、或者通过写入神奇地址并生成 IPC 中断来让您"运行"它?

    要在内核之间共享一个可执行文件、可以轻松地使用 MCSM 来共享资源、使用 L2RAM 来共享资源(作为堆栈)。 在链接器选项和命令文件中:
    1.将所有常量段放入 MCSM 中(每个内核的物理地址相同)
    2.将所有数据段(栈、BSS、far、fardata、sysmem)放入 L2RAM 中(相同逻辑地址、不同物理内存)
    3.如果您有共享数据,请将所有共享数据放在 MCSM 的特殊部分中
    4.链接为 ROM 自动初始化
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是简单地说、我"通过写入神奇的地址并生成 IPC 中断来运行它"。 这是我使用的.cmd:

    e2e.ti.com/.../project.7z

    现在一切都在 MSMCRAM 中、但它仍然不起作用

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

    您好!

    每个内核私有数据应该被放置在每个内核私有 RAM 中。 通过将所有内容都放置在 MCSM 中、每个内核的数据段会重叠。

    例如、由于 MCSM 中的".stack"是隐式共享的、因此当 core-N 使用栈时、它会破坏其他内核使用的栈。

    类似如下:

    部分
    {
    //shared
    .text> MSMCSRAM
    .switch > MSMCSRAM
    .const > MSMCSRAM
    .cinit > MSMCSRAM //ROM 自动初始化
    
    //private
    .platform_lib > L2RAM //不确定。 我不使用平台 lib
    .neardata > L2RAM
    .bss > L2RAM
    .far > L2RAM
    .fardata > L2RAM
    .cio > L2RAM
    .stack > L2RAM
    .sysmem > L2RAM
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将部分移到了 DDR3、现在它可以工作了。 非常感谢您的支持