请教DSP里面memcpy()是复制多少函数到RAM里面?
memcpy((uint16_t *)&RamfuncsRunStart,(uint16_t *)&RamfuncsLoadStart, (unsigned long)&RamfuncsLoadSize);InitFlash();//初始化Flash();
说说程序烧到FLASH里面后,需要用这个函数将重要的函数复制到RAM里面运行以加快速度;
但是我不知道这样写是到底是把整个FLASH里面的程序复制到RAM里面呢,还是只复制某几个函数? 如果是全部复制的话,RAM也没有FLASH容量大啊··
CMD文件里有:
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
LOAD_SIZE(_RamfuncsLoadSize),
这是整个FLASH里的内容吗?不解
百度里面的,我也是这么理解的
LOAD_START(_RamfuncsLoadStart) 指ramfuncs这段代码的加载开始地址
LOAD_END(_RamfuncsLoadEnd),指ramfuncs这段代码的加载结束地址
意思是ramfuncs存储在哪,一般是FLASH
RUN_START(_RamfuncsRunStart),指ramfuncs这段代码的运行开始地址
意思是运行把ramfuncs拷到哪里执行~~~一般是RAM sleet1986 发表于 2013-6-28 15:04 static/image/common/back.gif
百度里面的,我也是这么理解的
LOAD_START(_RamfuncsLoadStart) 指ramfuncs这段代码的加载开始地址
LOAD_ ...
但是还是没有说明是 哪一个函数或者是哪几个函数倍拷贝到RAM里面了。。 只拷申明为__ramfunc的函数,速度能提高的 shuxmpx123 发表于 2013-6-28 15:08 static/image/common/back.gif
但是还是没有说明是 哪一个函数或者是哪几个函数倍拷贝到RAM里面了。。
CODE_SECTION(函数, "ramfuncs");把需要提高速度的代码放到ramfuncs段.
.def _DSP28x_usDelay
.sect "ramfuncs"
.global__DSP28x_usDelay
_DSP28x_usDelay:
明白了,谢谢两位,像这个函数就会被拷贝
SUB ACC,#1
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR 只要你明白了LoadStart LoadEnd RunStart LoadSize是怎么来的,就明白是什么意思了
页:
[1]