分享

DSP中CMD空间分配

 molei 2015-04-03

在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);


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多