我想知道怎么让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:
你好 你对那个多核启动的程序启动还有印象吗