DSP28335通过CCS将程序从Flash复制到RAM里的方法

DSP28335通过CCS6.0下载到片内Flash中,并将片内FLASH程序搬运到RAM中运行,是为了加快运算速度,有两种不同的方法:

第一种是将必要代码或函数搬运至RAM运行,适合代码量大的工程;

第二种是将所有代码搬运到RAM中运行,适合小工程项目。下面对第二种方法进行了描述。

1、添加DSP28xxx_SectionCopy_nonBIOS.asm到工程目录下;

DSP28335通过CCS将程序从Flash复制到RAM里的方法

2、添加启动文件DSP2833x_CodeStartBranch.asm,并修改;

注:程序运行后,从FLASH启动,会调用code_start,关闭看门狗后通过调用c_int00,来调用main()函数,所以程序从FLASH拷贝到RAM需要在c_int00之前完成。

DSP28335通过CCS将程序从Flash复制到RAM里的方法

3、修改DSP2833x_SysCtrl.c文件;

DSP28335通过CCS将程序从Flash复制到RAM里的方法

4、修改DSP2833x_usDelay.asm文件,如下所示:

DSP28335通过CCS将程序从Flash复制到RAM里的方法

 5、将程序所用CMD文件换成F28335.cmd文件,并对文件内容做修改(主要是SECTIONS修改,MEMORY可以不用动);

1)在SECTIONS中删除或注释掉Ramfuncs,由于amfuncs段是之前在FLASH中运行时需要把部分程序搬移到RAM中定义的段,  _DSP28x_usDelay函数就定义在该段,现在要把所有程序都搬到RAM中,故不再需要,此外,添加以下部分:

DSP28335通过CCS将程序从Flash复制到RAM里的方法

 2)修改.stack栈、.ebss全局数据、静态数据.esysmem堆;

可以修改存储大小与位置,但必须在低64K地址中即(M0,M1,L4-L7)中,(L1 -L3受保护的,放代码段的)

DSP28335通过CCS将程序从Flash复制到RAM里的方法

 3)修改代码存储位置与运行位置,具体如下:DSP28335通过CCS将程序从Flash复制到RAM里的方法

DSP28335通过CCS将程序从Flash复制到RAM里的方法 

 以上即修改好了,编译生成.out文件,下载到DSP中,运行时即可将FLASH中程序完全复制到 RAM中运行了。

上一篇:解决OpenOCD烧录STM32失败, 无法通过SWD连接的问题


下一篇:使用Electron开发基于Node.js的桌面应用