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.

多核程序共用一个工程文件问题

Other Parts Discussed in Thread: SYSBIOS

各位前辈,我现在做6678的开发,想八个核同时用,每个核跑独立的工程。

现在的办法是创建了八个工程,将DDR分为8个部分,将每个核的代码放在不同的DDR区域中运行。

这样做的明显缺点就是每次要编译八个工程文件,调试起来非常不方便,

现在是想有没有什么办法,用一个工程、一个CFG文件 编译一次就能编译出8个核的代码

谢谢

  • 你现在的 需求是,8个核的代码不同,但想采用1个工程进行编译?

  • 是的 就是判断核号 然后执行不同的任务  各个核的工程代码都差不多 所以不想编译八次 就是担心每个工程的代码会覆盖掉上一个,所以想在cfg文件里直接将每个核的代码段放到不同的位置 这样就不覆盖了 但是这个cfg该怎么配置… 求指点啦 谢谢

  • 如果通过判断核号就可以满足功能需求的话,一般就用一个工程即可。按照你的说法,我是否可以理解为,你想在一个工程中将8个核的代码分别进行存储?还是8个工程?

  •  在platform中对memory进行划分,在cfg中将每个core私有的数据及代码放到各自memory section,sysbios user guide memory章节有指导。

  • 嗯 1个工程有八个核的代码 想用这个工程生成的.out文件加载到8个核中

    我理解是这样的:

    1.一般来说,用判断核号的方式,只需要将代码加载到核0中,其他核心不用加载代码只需要等着核0通过核间中断分配任务就可以了 是吗?

    2.如果假设我每个核都有不同的任务要做,我做了8个工程,每个工程生成一个.out文件,分别加载到0~7号核里。这样看起来出了0核做一些初始化工作外,8个核是相互独立的。但是问题也来了,假如这8个核的配置文件都是将代码段/数据段/switch等等这些段放在共享内存中,那么这样8个核加载结束后,是不是就乱了,所以现在采取了每个工程的cfg文件里,单独为该核分配了一段DDR空间,即DDR0,DDR1...DDR7 每个核在各自的空间里存放自己的代码,这样就不会引起冲突。

    但是这样做就必须用8个工程了,现在是想能不能有个办法,只用一个工程,编译结束后加载到任意核里都可以执行自己的程序……

  • 呃 那“私有数据和代码” 这些需要单独定义成一个段的意思吗? 

    我的理解是 比如 .text段的话 就是代码的意思 那是不是说我要把这个段拆开成八个 比如说text0, .text1~.text 7 这个意思…

    然后把每个段 load到不同的section里?

    谢谢

  • 这里请教一下: 如果系统有2G内存,其中前面1G作为ARM采用,后面1G分配给8个DSP core,比如0x40000000 ~ 0x80000000 的DDR 空间分配给8个DSP,每个dsp128MB,如果每个core的私有数据和代码放在L2SRAM,如果配置cfg,让系统的栈放在DDR中,也就是每个核动态分配的存储空间放在DDR中!