DSP TMS320FF28335程序从FLASH中拷贝到RAM中的两种方法及FLASH烧写方法

程序从FLASH中拷贝到RAM中执行的方法

DSP的程序下载执行方式有两种:一种是下载到RAM中在线执行,一种是下载到FLASH中执行。在RAM中执行时,具有执行速度快,可以无限次下载的特点,但是RAM的特点是掉电丢失数据。FLASH具有掉电不丢失数据的特点,但是同时存在执行速度慢和擦写次数有限的缺点。因此综合两者的特点,在DSP的开发过程中一般会结合使用两者。在前期程序调试过程,由于需要频繁的擦写,所以一般选择在RAM中进行。而程序调试完成后,由于需要脱离下载器而独立执行,因此需要烧写到掉电不丢失数据的FLASH中。下面将以利用CCS5.2对TMS320F28335进行程序在FLASH中的烧写为例,介绍一下将程序烧写到FLASH中的操作过程。

程序从在RAM中执行改为下载到FLASH中需要对工程文件做一些修改。而程序烧写到FLASH中后,又根据程序执行时的存储区间的不同,分为程序部分拷贝到RAM中执行和程序整体拷贝到RAM中执行两种,两种执行需要对工程作不同的修改和设置。

 

 一、程序部分拷贝到RAM中执行

  一般当程序过大,大于DSP的RAM空间或者对程序执行的速率要求不高时,一般将程序下载到FLASH中执行,并且上电后程序在FLASH中执行,仅仅将个别对时间要求比较高的程序拷贝到RAM中去执行。此时需要作如下修改 :

1、首先删除掉工程文件中的28335_RAM_link.cmd文件,改为F28335.cmd文件。如果在自己原来的工程中有对28335_RAM_link.cmd的存储区有特殊修改,可以在F28335.cmd中作同样的修改(仅限于不包括FLASH存储区的部分)。

2、在工程文件中加入文件DSP2833x_MemCopy.c,该文件提供代码赋值的函数。

3、在SECTION中定义ramfuncs段如下所示。段中定义程序下载的区间LOAD(自己指定)、执行的区间RUN(自己指定)、下载开始地址、下载结束地址、执行开始地址(不用改)。

                         ramfuncs            : LOAD = FLASHD,

                                   RUN = RAML123,

                                    LOAD_START(_RamfuncsLoadStart),

                                      LOAD_END(_RamfuncsLoadEnd),

                                       RUN_START(_RamfuncsRunStart),

                                 PAGE = 0   

该段定义的作用在于将需要从FLASH中拷贝到RAM的程序归入到该段中从而实现程序从下载地址到执行地址的拷贝。

4、在主程序的main之前定义需要拷贝到RAM中的函数,定义语句如下所示

           #pragma CODE_SECTION(cpu_timer1_isr,"ramfuncs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值