TI工程师,你好:
我最近在调试自制信号处理板的C6678程序时遇到了一个问题,由于代码较多,所以我把.text段从各核的Local L2挪到了共享内存中,cmd文件附在后面了。在.text段移动之后,SPI boot就无法正常启动了。load symbol进行观察,发现零核在对SRIO进行初始化的时候,gpSRIO_regs本来应该被
CSL_SrioRegs * gpSRIO_regs = (CSL_SrioRegs *)CSL_SRIO_CONFIG_REGS;
赋值为0x02900000,但是在初始化失败的过程中发现存储于.neardata区的该变量以及其它很多变量都没有被正确初始化,而是保持了上电后的随机值,想了解一下出现该状况的原因。
期待您的回复,祝您新春快乐。
////////////////////////////c6678.cmd/////////////////////////////
-heap 0x8000
-stack 0x19500
MEMORY
{
BOOT_CORE: o = 0x10800000 , l = 0x000000C0(origin地址随DNUM改变,此处只写core0)
LL2: o = 0x108000C0 , l = 0x00040000(同上)
LL2_prog: o = 0x108400C0 , l = 0x00030000(同上)
SL2_prog: o = 0x0C3868C0 , l = 0x00079740
DDR3: o = 0xA0000000 , l = 0x10000000
}
SECTIONS
{
.myboot
{
*.*<boot.obj>(.text)
} > BOOT_CORE
.text > SL2_prog
.cinit > LL2_prog
.const > LL2_prog
.switch > LL2_prog
GROUP
{
.neardata
.rodata
.bss
} > LL2_prog
.far > LL2_prog
.csl_vect > LL2_prog
.stack > LL2_prog
.far_data > LL2_prog
.cio > LL2_prog
.system > LL2_prog
Platform_lib > LL2_prog
.data_ddr3 > DDR3
}
///////////////////End of c6678.cmd///////////////////