你好,我的8个核的代码是一模一样的,现在用网上给的spi启动工具,先生成了8个.out文件,然后合成了一个.dat文件进行烧写,但是合成后的.dat文件特别大,大概在14MB左右(虽然可以实现多核启动的功能)。在我的理解里,我8个核的代码是一摸一样的,为什么要这么麻烦生成8个.out呢,最后的.dat文件也不应该是8个.out文件的线性叠加。我的代码段.text字段放在共享SL2上,大概占用了600KB的空间,不知道你们是怎么解决这个问题的。
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.
你好,我的8个核的代码是一模一样的,现在用网上给的spi启动工具,先生成了8个.out文件,然后合成了一个.dat文件进行烧写,但是合成后的.dat文件特别大,大概在14MB左右(虽然可以实现多核启动的功能)。在我的理解里,我8个核的代码是一摸一样的,为什么要这么麻烦生成8个.out呢,最后的.dat文件也不应该是8个.out文件的线性叠加。我的代码段.text字段放在共享SL2上,大概占用了600KB的空间,不知道你们是怎么解决这个问题的。
虽然你的代码一样,你在cmd中定义的memory section都是一样的吗?由于DSP有私有地址的概念0x00800000开头的地址,只有每个core自己访问,要访问其他core的时候需要使用全局地址0x1x800000,其中x分别为核号 0-7,如果你能做到所有代码和memory section都能使用相同的全局地址,那么你用只用加载1个core,其他的core手动在代码中指定启动地址,随后触发核间中断就能启动多核。
Zhan
VECTORS: origin = 0x00800000 length = 0x00000200 /* 中断向量 *////////
BOOT_CORE0: origin = 0x00800200 length = 0x000000C0 ///////
L2: origin = 0x008002C0 length = 0x00077D40 /* 512KB L2/SRAM *////////
以上是我CMD里使用的L2空间,仿真器load的时候是加载上面的空间。
目前的多核烧写的过程,是将上面的局部地址改成各个核的全局地址,从而生成8个不同的.out文件,最后通过工具生成.dat烧写文件的。我就是想问我每个核都是访问自己的局部地址,有没有什么方法可以用一个.out文件完成多核启动。