背景:自己画的两个6678芯片的板子,不带sysbios的裸跑可以正常工作和bootload(自己写的bootload程序)。
问题1:新建了一个sysbios工程,cfg文件的部分段分配如下:
Program.sectMap[".bss"] = "DDR3";
Program.sectMap[".const"] = "DDR3";
Program.sectMap[".text"] = "DDR3";
…
ccs debug时,发现都不能运行到正常指向main.c()。
问题2:将上述段分配为:
Program.sectMap[".bss"] = "L2SRAM";
Program.sectMap[".const"] = "L2SRAM";
Program.sectMap[".text"] = "L2SRAM";
…
后,debug能够正常指向main.c() (基本确定之前的问题是因为DDR3在段分配前没有正常初始化)。但再往下运行时,死在了bios_start()函数里,有时会显示:
,IRP=0x83371aa2
,SSR=0x0
,AMR=0x0
,RILC=0x0
,ILC=0x0
,Exception at 0x0
,EFR=0x2 NRP=0x0
,Internal exception: IERR=0x1
,Instruction fetch exception
,ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x00000000, sp = 0x00000058.
,To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;'
,xdc.runtime.Error.raise: terminating execution
经查找资料,基本确认是运行时HEAP段数据溢出的问题。
用mcsdk_2_01_02_06\examples\ndk\helloWorld工程debug也同样会出现上述2个问题。
1、想请问上述问题如何解决?
2、工程中,必须将["systemHeap"]等段分配在 "DDR3"中,请问如何在这些段分配使用前初始化DDR3?
麻烦各位大神了!
Denny%20Yang99373:
http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/116817.aspx