在“BIOS MCSDK 2.0 User Guide.pdf”文档中,72页的Example 4 – Let's make it multi-core中,C6678中的四个核采用了相同的工程文件,同时也采用了相同的配置文件.cfg。在配置文件中有这样的section配置内容:
Program.sectMap[".const"] = "DDR3";
Program.sectMap[".text"] = "DDR3";Program.sectMap[".code"] = "DDR3";Program.sectMap[".data"] = "DDR3";
Program.sectMap[".sysmem"] = "DDR3";Program.sectMap[".sharedVar"] = "DDR3";
Program.sectMap["platform_lib"] = "DDR3";
这也就是说明,这四个核在.const, .text, .code, .data, .system, .sharedvar, platform_lib是在同一物理内存上的同一个数据内容。看了一下程序,在整个程序中只有一个四核均需共享的全局变量next,在工程文件中再也没有其它全局变量与静态变量了,因而程序运行不存在问题。
如果每个core工程文件中有各自的非共享的全局变量,上述.cfg的设置就存在问题了。这个理解是否正确?
或者:该工程文件的.stack段也配置在DDR3中,则四个core中的程序运行将乱套了。这个理解是否正确?
谢谢了!
chenpjh:
回复 Adam Yao94020:
谢谢
user5792666:
回复 Adam Yao94020:
你好,我需要用到很大的临时数组,所以把核1对应工程的stack段放到了DDR。核0初始化的工程可以正常load,运行;但是核1的工程就load不了了,一直提示no source available for "0x20b00000"。请问是什么原因呢?
user5792666:
回复 chenpjh:
你好,我需要用到很大的临时数组,所以把核1对应工程的stack段放到了DDR。核0初始化的工程可以正常load,运行;但是核1的工程就load不了了,一直提示no source available for "0x20b00000"。请问是什么原因呢?
user5144466:
回复 user5792666:
准确的来说是load的时候一直running,然后进不到main函数里,一点击暂停,就报错