flash 源文件_DSP 28335 烧写FLASH程序 可以在线仿真 无法离线运行56

本文介绍了将DSP程序从RAM移植到FLASH的过程,包括替换CMD文件、添加特定源文件、初始化函数等步骤。在实际操作中,作者遇到程序能在线仿真运行但无法离线运行的问题,通过排查发现DSP2833x_usDelay.asm文件段分配与CMD文件不匹配。解决方法是修改文件段为CMD文件中存在的Section。该问题的关键在于CMD文件与源文件的配套性,本文旨在提供一种错误排查思路。
摘要由CSDN通过智能技术生成

fbafdd017bd6d1f527aae4dc352ce642.gif

一般来说,把一个在RAM里正常运行的程序移植到FLASH里(运行时将FLASH中的程序拷贝到RAM中运行)的步骤如下:

1.需要将适合RAM运行环境的CMD文件移出工程,替换成FLASH专用的的F28335.cmd

2.将另一个文件DSP2833x_CodeStartBranch.asm添加到工程中,如果工程内本来就有这个文件,就不用再添加了

3.在DSP28_SysCtrl.c文件中添加如下代码,如果工程里已有InitFlash函数,则不用再添加,检查下函数内容即可

cb08afadd2d42128b76219a79e8a764d.png

 1 #pragma CODE_SECTION(InitFlash, "RamFuncs"); 2  3 void InitFlash(void) 4 {
     5    EALLOW; 6    //Enable Flash Pipeline mode to improve performance10  7    //of code executed from Flash.  8    FlashRegs.FOPT.bit.ENPIPE = 1; 9 10    //CAUTION11    //Minimum waitstates required for the flash operating12    //at a given CPU rate must be characterized by TI.13    //Refer to the datasheet for the latest information.14    //Set the Paged Waitstate for the Flash 15    FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;16 17    //Set the Random Waitstate for the Flash18    FlashRegs.FBANKWAIT.bit.RANDWAIT = 5; 
19 //Set the Waitstate for the OTP

20 FlashRegs.FOTPWAIT.bit.OTPWAIT = 8;

21 //CAUTION
22 //ONLY THE DEFAULT VALUE FOR THESE 2 REGISTERS SHOULD BE USED23 FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;
24 FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;25 EDIS;26 //Force a pipe
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值