最近在研究28335的自升级问题,没想到自升级没结局,倒有了个新收获。
之前一直认为,程序在Flash中运行和在SRAM运行的主要不同点就在于以下的代码:
MemCopy(
&RamfuncsLoadStart,
&RamfuncsLoadEnd,
&RamfuncsRunStart);
InitFlash();
由于当初理解的并不全面,囫囵吞枣,看程序能在FLASH中启动了也就没有再审追究。直到今天才有了新的认识。Σ( ° △ °|||)︴
先来看看在RAM中运行的CMD文件是什么样子的:
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAML0, PAGE = 0
.text : > RAML1, PAGE = 0
.cinit : > RAML0, PAGE = 0
.pinit : > RAML0, PAGE = 0
.switch : > RAML0, PAGE = 0
.stack