|
【 C2000的使用经验】部分程序加载至RAM中运行
[复制链接]
本帖最后由 ltbytyn 于 2015-4-26 00:46 编辑
DSP访问flash中的数据需要多个时钟周期。而DSP在RAM中执行就比较快。受限于DSP 的flash空间远大于RAM空间,因此我们不可能将所有的函数都搬到RAM中去执行。只是将一些频繁执行的函数调到RAM中来运行,提高DSP的处理效率。
步骤:
第一步:修改CMD文件
SECTIONS{
secureRamFuncs : LOAD=FLASHAB,PAGE=0
RUN=RAML0L1,PAGE=1
RUN_START(_secureRamFuncs_runstart),
LOAD_START(_secureRamFuncs_loadstart),
LOAD_END(_secureRamFuncs_loadend)
}
第二步:修改主程序
#include
extern unsigned int secureRamFuncs_loadstart;
extern unsigned int secureRamFuncs_loadend;
extern unsigned int secureRamFuncs_runstart;
void main(void)
{
memcpy(&secureRamFuncs_runstart,&secureRamFuncs_loadstart,&secureRamFuncs_loadend-&secureRamFuncs_loadstart);
InitFlash();
/*初始化系统*/
while(1)
{
//用户程序
}
}
|
|