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.

#ifdefine 指令在 C6678.cmd中使用的问题



在CCS提供的C6678.cmd文件中有一段代码

#ifdef CORE0
.text > CORE0_L2_SRAM
.stack > CORE0_L2_SRAM
.bss > CORE0_L2_SRAM
.cio > CORE0_L2_SRAM
......
#endif

意思是针对不同的core分配不同的LL2空间,但是为什么使用的时候程序还是分配在msm中。

请问#ifdef CORE0是如何生效的?编译器又是如何识别CORE0的?

  • 在cmd中不能使用#ifdef区分core,你这是在哪个例程中看到的

  • 不好意思,回复晚了。

    这段代码是在编译器设置中自带的6678.cmd文件中看到的。就像您说的一样,在cmd文件中#ifdef不生效,因而默认的吧代码和数据存放在msm中。实际调试板子的时候,总是把#ifdef和对应的#endif屏蔽掉,才能使代码和数据加载到L2中。

    请问在多核同时需要运行的情况下,该如何规定每个核内存空间的分配呢?