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

DSP中CMD空间分配

发布时间:2020-12-15 07:10:27 所属栏目:百科 来源:网络整理
导读:在DSP的CMD文件中,分配的空间大小计算:如RAMH : origin=0x3f900,length=0x000400 他对应的函数意义是,初始地址为0x3f900 ,大小为0x000400=4*16*16=1K 如果长度为0x001000=1*16*16*16=4K 在CMD文件中,PAGE0代表程序空间,PAGE1代表数据空间 在开发DSP时

在DSP的CMD文件中,分配的空间大小计算:如RAMH : origin=0x3f900,length=0x000400

他对应的函数意义是,初始地址为0x3f900 ,大小为0x000400=4*16*16=1K

如果长度为0x001000=1*16*16*16=4K

在CMD文件中,PAGE0代表程序空间,PAGE1代表数据空间

在开发DSP时,平时都是在调试程序,是把程序下载到RAM中,而当开发完成后,需要烧写到flash中,但是当程序烧写到flash中后,运行速度要慢,大概降到原来的RAM中的70%~80%。如果对时间敏感的可以复制到RAM中运行,程序如下:

SECTIONS{

? ?RamFuncs ? ? ? ? ? ?: ? LOAD = FLASHC,PAGE = 0 ? ? ? ? ? ? ? ?/* Should be Flash */?
? ? ? ? ? ? ? ? ? ? ? ? ?RUN = RAML1,? ? ?PAGE = 0 ? ? ? ? ? ? ? ?/* Must be CSM secured RAM */
? ? ? ? ? ? ? ? ? ? ? ? ?LOAD_START(_RamFuncs_loadstart),
? ? ? ? ? ? ? ? ? ? ? ? ?LOAD_END(_RamFuncs_loadend),

? ? ? ? ? ? ? ? ? ? ? ? ?RUN_START(_RamFuncs_runstart)

? ? ? ? }

// RAM,在头文件DSP28335_GlobalPrototypes.h中定义变量
extern Uint16 RamFuncs_loadstart;
extern Uint16 RamFuncs_loadend;
extern Uint16 RamFuncs_runstart;


还需要调用将flash内容复制到ram中的函数memcpy(),这个函数在rts2800_ml.lib库中,把memcpy()放在main()函数的系统初始化函数后面就可以了

? memcpy(&RamFuncs_runstart,&RamFuncs_loadstart,&RamFuncs_loadend - &RamFuncs_loadstart);

(编辑:李大同)

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

    推荐文章
      热点阅读