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

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/51331.aspx


您好!
       我用的芯片是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才有效?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值