DSP28335通过CCS6.0下载到片内Flash中,并将片内FLASH程序搬运到RAM中运行,是为了加快运算速度,有两种不同的方法:
第一种是将必要代码或函数搬运至RAM运行,适合代码量大的工程;
第二种是将所有代码搬运到RAM中运行,适合小工程项目。下面对第二种方法进行了描述。
1、添加DSP28xxx_SectionCopy_nonBIOS.asm到工程目录下;
2、添加启动文件DSP2833x_CodeStartBranch.asm,并修改;
注:程序运行后,从FLASH启动,会调用code_start,关闭看门狗后通过调用c_int00,来调用main()函数,所以程序从FLASH拷贝到RAM需要在c_int00之前完成。
3、修改DSP2833x_SysCtrl.c文件;
4、修改DSP2833x_usDelay.asm文件,如下所示:
5、将程序所用CMD文件换成F28335.cmd文件,并对文件内容做修改(主要是SECTIONS修改,MEMORY可以不用动);
1)在SECTIONS中删除或注释掉Ramfuncs,由于amfuncs段是之前在FLASH中运行时需要把部分程序搬移到RAM中定义的段, _DSP28x_usDelay函数就定义在该段,现在要把所有程序都搬到RAM中,故不再需要,此外,添加以下部分:
2)修改.stack栈、.ebss全局数据、静态数据.esysmem堆;
可以修改存储大小与位置,但必须在低64K地址中即(M0,M1,L4-L7)中,(L1 -L3受保护的,放代码段的)
3)修改代码存储位置与运行位置,具体如下:
以上即修改好了,编译生成.out文件,下载到DSP中,运行时即可将FLASH中程序完全复制到 RAM中运行了。