使用的库文件:
MACSDK:2.0.9.21, 6678PDK:1.0.0.21 NDK:2.21.0.32, SYS/BIOS:6.33.4.39
1.在Available Products->ndk core stack->global下,welcome界面勾选add NDK/GLOBAL to my configuration之后,出现一些列错误:
unresolved symbol Osal_platformFree,first reference in c:\ti\pdk_6678_1_0_0_21\packages\ti\platform\evmc6678l\platform..
unresolved symbol Osal_platformMalloc,first reference in c:\ti\pdk_6678_1_0_0_21\packages\ti\platform\evmc6678l\platform..
…
unresolved symbol QMSS_QPOP,first reference in c:\ti\pdk_6678_1_0_0_21\packages\ti\transport\ndk\nimu\lib\ti……
…..
这是属于include文件设置错误还是少安装了NSP?
2.将Program.sectMap["systemHeap"] = "L2SRAM";修改为Program.sectMap["systemHeap"] = "DDR_Heap";
DDR_Heap在platform设置为起始地址0x8000_0000,长度为32MB,该段为虚拟地址?
在xdcReset Function处将0x8000_0000,长度为32MB的地址映射到DDR3物理空间,每个核分配32MB,总共256MB。
多核使用单镜像工程,固化时systemHeap在L2SRAM通过以下方式启动其他核,将systemHeap修改为DDR时怎么启动其他核?
int *pBootMagicAddCore0;
int *ENTRY=NULL;
int *IpcGr0;
int i;
for(i=1;i<8;i++)
{
memcpy((int *)(0x10800000+i*0x1000000),(int *)0x10800000,0x72e00);
}
//while(i>1);
/*write Boot Magic add of other cores and send IPC interrupt*/
ENTRY=(int*)0x70000400;
pBootMagicAddCore0 = (int*)0x1087FFFC;
(*pBootMagicAddCore0)=*ENTRY;
//pBootMagicAddCore0 = (int*)0x70000400;
//(*pBootMagicAddCore0)+= 0x10000000;// translate to global address
for(i = 1;i < 8; i++)//write the other cores' boot magic address
{
//*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;
*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = *ENTRY;
}
IpcGr0 = (int*)0x02620240;
/*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/
for(i = 1;i < 8;i++)//core0 sent ipc interrupt to
{
*(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001;
}
Nancy Wang:
1、看一下提示的函数是在哪个文件中定义的?再具体看是哪部分没有添加。
2、不是虚拟地址,DDR3 EMIF data 地址范围:80000000~FFFFFFFF
3、修改存放的地址应该不影响启动的,代码就是写了BootMagic地址值以及ipc中断触发
,
user4192203:
1.注释.cfg文件中的Startup.lastFxns.$add('&EVM_init');可以添加NDK Core Stack