TI中文支持网
TI专业的中文技术问题搜集分享网站

关于CCS5.3 Flash加载Ram的问题

您好!
       我用的芯片是TMS320F28335 ,在CCS5.3版本下,Flash加载RAM有问题。请给予解决方法。
 
主要外部表征:
1、主函数中MemCopy和InitFlash放置按照TI例程,子函数中未设置   FlashRegs.FPWR.bit.PWR = FLASH_STANDBY; 则程序不能有效在RAM中执行。
2、主函数中MemCopy和InitFlash放置在系统设置之后,程序第一次下载,能在RAM中执行(通过GPIO输出查看加载RAM与不加载的时间对比),如果不掉电,程序能够继续在RAM中执行,但如果DSP掉电后,重新上电,则程序执行时间明显较长,可以看出不在RAM中执行。
 
 
加载方法:
1、flash加载至ram的方法为:
      CMD文件采用的CCS3.3下的标准F28335.cmd,DSP2833x_Headers_nonBIOS.cmd
      通过查map文件,可以看到需要的程序段和变量已经加载到RAM区,并且程序运行过程中程序段已经处于RAM中。
    

      main函数初始化时加入,且在最初系统初始化以后放置:
void main(void)
   {
     InitSysCtrl();
     EALLOW;
     SysCtrlRegs.HISPCP.all = ADC_MODCLK; // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*1)   = 75.0 MHz
     SysCtrlRegs.LOSPCP.all = 1;   // LOPCLK = SYSCLKOUT/2 = 150/(2*1) = 75.0 MHz
     EDIS;
     MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
     InitFlash();
     ………….
}
 
    然后我将想要加载至RAM中的函数在定义前加入
    #pragma CODE_SECTION(函数名,"ramfuncs");
 
    通过查看例程DSP2823x_examples_ccsv4\flash_f28235\,在中断函数中有以下设置。
    // Put the Flash into standby
    FlashRegs.FPWR.bit.PWR = FLASH_STANDBY;
   是否CCS5.3中必须设置此项,才能激活待机模式,Flash加载RAM才有效?
 
赞(0)
未经允许不得转载:TI中文支持网 » 关于CCS5.3 Flash加载Ram的问题
分享到: 更多 (0)