我这边用的是C6748 LCDK板子(TI官方板子)。
我这边两个工程,都能硬仿成功,得到预期的结果,两个工程只有cmd文件不同。工程A使用的是ddr,工程B使用的是内部空间L2
工程A可以正常的烧写运行,工程B烧写之后好像没有运行。这个问题可能出现的原因是什么?
工程B的cmd文件如下:
-heap 0x00019000
-stack 0x1000
MEMORY
{
#ifdef DSP_CORE
DSPL2ROM o = 0x00700000 l = 0x00100000
DSPL2RAM o = 0x00800000 l = 0x00040000
DSPL1PRAM o = 0x00E00000 l = 0x00008000
DSPL1DRAM o = 0x000F00000 l = 0x00008000
#endif
SHDSPL2ROM o = 0x11700000 l = 0x00100000
SHDSPL2RAM o = 0x11800000 l = 0x00040000
SHDSPL1PROM o = 0x11E01000 l = 0x00007000
SHDSPL1DROM o = 0x11F00000 l = 0x00008000
EMIFACS0 o = 0x40000000 l = 0x20000000
EMIFACS2 o = 0x60000000 l = 0x02000000
EMIFACS3 o = 0x62000000 l = 0x02000000
EMIFACS4 o = 0x64000000 l = 0x02000000
EMIFACS5 o = 0x66000000 l = 0x02000000
SHRAM o = 0x80000000 l = 0x00020000
DDR2 o = 0xC0001000 l = 0x08000000
EntryPoint o = 0x11E01000 l = 0x00000800
Vector o = 0x11E00800 l = 0x00000800
SYSCFG0 o = 0x01C14000 l = 0x00001000
uPP o = 0x01E16000 l = 0x00001000
GPIO o = 0x01E26000 l = 0x00001000
McBSP1 o = 0x01D11000 l = 0x00000800
#ifndef DSP_CORE
ARMROM o = 0xFFFD0000 l = 0x00010000
ARMRAM o = 0xFFFF0000 l = 0x00002000
#endif
}
SECTIONS
{
.text:_c_int00 > EntryPoint
.text > SHDSPL2RAM
.stack > SHDSPL1DRAM
.cio > SHDSPL2RAM
".vectors" > Vector
.const > SHDSPL2RAM
.data > SHDSPL2RAM
.switch > SHDSPL2RAM
.sysmem > SHDSPL2RAM
.far > SHDSPL2RAM
.args > SHDSPL2RAM
.ppinfo > SHDSPL2RAM
.ppdata > SHDSPL2RAM
.fb_SECTION > SHDSPL2RAM
.fb_SECTION1 > SHDSPL1PRAM
.fb_SECTION2 > SHDSPL1DRAM
.pinit > SHDSPL2RAM
.cinit > SHDSPL2RAM
.binit > SHDSPL1DRAM
.init_array > SHDSPL1DRAM
.fardata > SHDSPL1DRAM
.c6xabi.exidx > SHDSPL1DRAM
.c6xabi.extab > SHDSPL1DRAM
GROUP(NEARDP_DATA)
{
.neardata
.rodata
.bss
} > SHDSPL1DRAM
.buffer > SHDSPL1DRAM
.Reg_SYSCFG0 > SYSCFG0
.Reg_uPP > uPP
.Reg_GPIO > GPIO
.Reg_McBSP1 > McBSP1
}
out文件转换AIS文件的配置使用的是AISgen for D800K008文件下的C6748_LCDK_AISGen_Config.cfg文件
请问可能的原因是什么?我实在是没查找出来
Shine:
建议用仿真器跟一下boot过程,先看一下代码有没有正确加载进来,如果正确加载了,再跟踪一下代码,看运行到哪里出错了,这样比较好定义问题。