TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 多核启动的问题

我想知道怎么让dsp启动的时候多核启动,debug的时候可以选择下载到那个核,然后运行,选择的核就会开始运行。

如果我把程序写到eeprom那么boot起来后就只有core0,运行,怎么让所有的核都运行呢?通过代码控制还是哪里配置呢?

我想让每个core都动起来,让他们自己读写自己的内存就可以了。我只想让他们都运行起来。

dc jia:

回复 dennis wu:

你好  非常感谢你的回答,我现在才接触6678不久,项目很急时间很紧。

》》》将程序入口地址(_c_int00)写入到其他core的MAGIC_ADDR(C6678上是LL2的最后32bit,局部地址为0x0087fffc)上,然后向该core发送IPC唤醒;

》》》2是编写一个CMD文件,注意必须将text段、cinit段、switch段和const段放入SL2中。其他段可放入LL2。

这两个功能能否提供一个简单的sample。我对的DSP不熟悉,项目时间紧迫,拜托了!

dc jia:

回复 dennis wu:

-c-heap  0x4000-stack 0x4000MEMORY{    SHRAM:           o = 0x0C000000 l = 0x00400000   /* 4MB Multicore shared Memmory */      CORE0_L2_SRAM:   o = 0x10800000 l = 0x00080000   /* 512kB CORE0 L2/SRAM */    CORE0_L1P_SRAM:  o = 0x10E00000 l = 0x00008000   /* 32kB CORE0 L1P/SRAM */    CORE0_L1D_SRAM:  o = 0x10F00000 l = 0x00008000   /* 32kB CORE0 L1D/SRAM */  } SECTIONS{    .text          >  SHRAM    .stack         >  SHRAM    .bss           >  SHRAM    .cio           >  SHRAM    .const         >  SHRAM    .data          >  SHRAM    .switch        >  SHRAM    .sysmem        >  SHRAM    .far           >  SHRAM    .args          >  SHRAM    .ppinfo        >  SHRAM    .ppdata        >  SHRAM      /* COFF sections */    .pinit         >  SHRAM    .cinit         >  SHRAM      /* EABI sections */    .binit         >  CORE0_L2_SRAM    .init_array    >  CORE0_L2_SRAM    .neardata      >  CORE0_L2_SRAM    .fardata       >  CORE0_L2_SRAM    .rodata        >  CORE0_L2_SRAM    .c6xabi.exidx  >  CORE0_L2_SRAM    .c6xabi.extab  >  CORE0_L2_SRAM}

我写的cmd文件,能帮我检查一下吗?看看有什么问题吗

dennis wu:

回复 dc jia:

1.除了上述建议的4个段外,不建议将其他段放入SL2中。SL2的资源是珍贵而有限的。所以应慎用。

2.你上述的CMD文件编译后,所有的core程序 的“EABI sections”都会被放入到core0的L2中。这是你想要的结果吗?

 

这是我写的比较通用的CMD文件,仅供参考:

-stack 0x2000-heap 0x8000

MEMORY{  LOCAL_L2_SRAM:  origin = 0x00800000 length = 0x00080000   /* 512kB LOCAL L2/SRAM */  LOCAL_L1P_SRAM: origin = 0x00E00000 length = 0x00008000   /* 32kB LOCAL L1P/SRAM */  LOCAL_L1D_SRAM: origin = 0x00F00000 length = 0x00008000   /* 32kB LOCAL L1D/SRAM */  SHRAM:          origin = 0x0C000000 length = 0x00400000   /* 4MB Multicore shared Memmory */    EMIF16_CS2:     origin = 0x70000000 length = 0x04000000   /* 64MB EMIF16 CS2 Data Memory */  EMIF16_CS3:     origin = 0x74000000 length = 0x04000000   /* 64MB EMIF16 CS3 Data Memory */  EMIF16_CS4:     origin = 0x78000000 length = 0x04000000   /* 64MB EMIF16 CS4 Data Memory */  EMIF16_CS5:     origin = 0x7C000000 length = 0x04000000   /* 64MB EMIF16 CS5 Data Memory */

  DDR3:           origin = 0x80000000 length = 0x20000000   /* 512MB DDR3 SDRAM */} SECTIONS{ .text          >  SHRAM .const         >  SHRAM .switch        >  SHRAM .cinit         >  SHRAM  .stack         >  LOCAL_L2_SRAM .bss           >  LOCAL_L2_SRAM .data          >  LOCAL_L2_SRAM .neardata      >  LOCAL_L2_SRAM .fardata       >  LOCAL_L2_SRAM .rodata        >  LOCAL_L2_SRAM  .far           >  LOCAL_L2_SRAM .cio     >  LOCAL_L2_SRAM .sysmem        >  LOCAL_L2_SRAM }

 

另外,CCS安装完后,你可以在目录中搜索一些自带的CMD文件。一般都是比较标准和通用的。

dc jia:

回复 dennis wu:

我这样写,总是报错

-c-heap  0x2000-stack 0x8000MEMORY{

    LOCAL_L2_SRAM:   o = 0x00800000 l = 0x00080000   /* 512kB CORE0 L2/SRAM */    LOCAL_L1P_SRAM:  o = 0x00E00000 l = 0x00008000   /* 32kB CORE0 L1P/SRAM */    LOCAL_L1D_SRAM:  o = 0x00F00000 l = 0x00008000   /* 32kB CORE0 L1D/SRAM */    SHRAM:           o = 0x0C000000 l = 0x00400000   /* 4MB Multicore shared Memmory */

   EMIF16_CS2:     o = 0x70000000 l = 0x04000000   /* 64MB EMIF16 CS2 Data Memory */   EMIF16_CS3:     o = 0x74000000 l = 0x04000000   /* 64MB EMIF16 CS3 Data Memory */   EMIF16_CS4:     o = 0x78000000 l = 0x04000000   /* 64MB EMIF16 CS4 Data Memory */   EMIF16_CS5:     o = 0x7C000000 l = 0x04000000   /* 64MB EMIF16 CS5 Data Memory */

   DDR3:           o = 0x80000000 l = 0x10000000   /* 512MB DDR3 SDRAM */

} SECTIONS{    .text          >  SHRAM    .stack         >  LOCAL_L2_SRAM    .bss           >  LOCAL_L2_SRAM    .cio           >  LOCAL_L2_SRAM    .const         >  SHRAM    .data          >  LOCAL_L2_SRAM    .switch        >  SHRAM    .sysmem        >  LOCAL_L2_SRAM    .far           >  LOCAL_L2_SRAM    .args          >  LOCAL_L2_SRAM    .ppinfo        >  LOCAL_L2_SRAM    .ppdata        >  LOCAL_L2_SRAM      /* COFF sections */    .pinit         >  LOCAL_L2_SRAM    .cinit         >  SHRAM      /* EABI sections */    .binit         >  LOCAL_L2_SRAM    .init_array    >  LOCAL_L2_SRAM    .neardata      >  LOCAL_L2_SRAM    .fardata       >  LOCAL_L2_SRAM    .rodata        >  LOCAL_L2_SRAM    .c6xabi.exidx  >  LOCAL_L2_SRAM    .c6xabi.extab  >  LOCAL_L2_SRAM}

 

错误信息:

"../MyC6678.cmd", line 25: error #10264: LOCAL_L2_SRAM memory range overlaps

   existing memory range L2SRAM"../MyC6678.cmd", line 28: error #10264: SHRAM memory range overlaps existing   memory range MSMCSRAM"../MyC6678.cmd", line 31: error #10263: DDR3 memory range has already been"../MyC6678.cmd", line 31: error #10264: DDR3 memory range overlaps existing   memory range DDR3

fengchen shen:

回复 dennis wu:

“CCS安装完后,你可以在目录中搜索一些自带的CMD文件。”

您好,请问如何在ccs里搜索自带的CMD文件啊?

新手,求详细步骤!

haotian chang:

回复 dc jia:

你好 你对那个多核启动的程序启动还有印象吗

赞(0)
未经允许不得转载:TI中文支持网 » C6678 多核启动的问题
分享到: 更多 (0)