下载到flash中的程序不能仿真

2019-07-21 20:29发布

最近看别人的程序遇到一个问题,希望高手能够给出宝贵建议。程序中的结构是这样:
void main(void)
{
   InitSysCtrl();
        memcpy(        &RamfuncsRunStart,
                        &RamfuncsLoadStart,
                        &RamfuncsLoadEnd - &RamfuncsLoadStart);
   InitFlash();

   InitSpi();
。。。
}

      程序编译没有问题,下载到flash后,点击仿真开始键后发现一直没有进入到主函数中,运行InitSysCtrl()没有问题,但是运行到memcpy这里,再点击下一步过后就会出现No source available for "0x3ff8cd" 。然后点击resume继续仿真,程序又从开始继续执行InitSysCtrl(),一直循环。将断点设置在InitFlash()这里一直没有停过。
      开始怀疑是CMD文件配置有问题,主要关注了memcpy()这一点。但是也没有发现问题所在。CMD中配置如下:
   ramfuncs          : LOAD = FLASH_DCBA,                                                
                         RUN = PRAML12,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

      后来又从BOOT ROM启动分析,电路板上GPIO34/GPIO37配置都为高,默认是从flash中启动的。initflash程序也配置在RAM中运行(#pragma CODE_SECTION(InitFlash, "ramfuncs"))。DSP2803x_CodeStartBranch.asm启动程序也是TI官方给的,初始关闭看门狗(WD_DISABLE        .set        1)。都没有发现问题。
      请各位大神指点一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。