打印

[转]DSP中的CMD的使用经验

[复制链接]
946|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Soraka|  楼主 | 2016-12-29 21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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)
        }

[color=rgb(51, 102, 153) !important]复制代码
// 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);

相关帖子

沙发
sanxingnote7| | 2016-12-31 17:16 | 只看该作者
如果是运行大的FFT,例如1024怎么修改cmd?

使用特权

评论回复
板凳
sanxingnote7| | 2016-12-31 17:18 | 只看该作者
修改data的数值变大,然后程序会跑飞这是什么问题?

使用特权

评论回复
地板
minzisc| | 2017-1-2 22:34 | 只看该作者
cmd的编写也不好掌握。

使用特权

评论回复
5
minzisc| | 2017-1-2 22:36 | 只看该作者
编写CMD的时候要对DSP的结构非常清楚才行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

178

主题

865

帖子

5

粉丝