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.

c6678 多核单镜像问题

各位专家:

请教一个关于多核单镜像,内存分配的问题。对于这样的工程,程序段,数据段,堆栈段一般放置在哪里合适?(L2,  MSMC, DDR), 还有没有其它特殊的要求?

  • 请参考多核编程手册single image部分。
    www.ti.com/.../sprab27b.pdf
    以下帖子也可参考看一下。
    e2echina.ti.com/.../168267
  • 您好!
    在多核编程手册中 single image部分提到下面这三条内容
    • The code must set up pointer tables for unique data sections that reside in shared
    L2 or DDR SDRAM.
    • The code must add DNUM to any data buffer addresses when programming
    DMA channels.
    • The linker command file should define the device memory map using aliased
    addresses only.

    有几个问题:
    1。 第1条内容是如果只有一个数据段共享在L2\DDR 时必须建立 这个指针表。如果这个数据段在msmcsram呢?
    2。aliased addresses 指的是什么地址,是全局地址吗?
    3。 对于多核单镜像的理解问题,是不是对于多核上加载相同的镜像,执行同一个程序,这种情况就是多核 单镜像?
  • 1、是shared L2。在共享内存中都需这样操作。
    2、指local address
    3、是的
  • 对于在共享内存中建立指针表(第一条)是否有相关的例程呢?
  • 其实目的就是区分不同核所要访问的共享内存中的数据的地址
    正如前面帖子中提到可以建立一个数组dp= bufBase+ BUF_SIZE*DNUM
    或者通过#paragma把不同核用的数据放在不同的段里
  • 如果在DDR上,是不是这样操作:
    先定义DDR3_0, DDR3_1的起始地址和长度

    再定义
    program.sectMap[".core0_ddr"] = "DDR3_0";
    program.sectMap[".core1_ddr"] = "DDR3_1";

    对不同核用的数据使用
    #paragma DATA_SECTION(a, ".core0_ddr");
    float a;

    #paragma DATA_SECTION(b, ".core1_ddr");
    float b;
x 出现错误。请重试或与管理员联系。