加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:06:02 所属栏目:百科 来源:网络整理
导读:http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/51331.aspx 您好! ?????? 我用的芯片是TMS320F28335?,在CCS5.3版本下,Flash加载RAM有问题。请给予解决方法。 ? 主要外部表征: 1、主函数中MemCopy和InitFlash放置按照TI例程
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_ccsv4flash_f28235,在中断函数中有以下设置。
??? // Put the Flash into standby
??? FlashRegs.FPWR.bit.PWR = FLASH_STANDBY;
?? 是否CCS5.3中必须设置此项,才能激活待机模式,Flash加载RAM才有效?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读