在CMD中添加一下代码
ramfuncs : LOAD = FLASHLOAD,
RUN = C0,
LOAD_START(RamfuncsLoadStart),
LOAD_SIZE(RamfuncsLoadSize),
RUN_START(RamfuncsRunStart),
PAGE = 0
在main函数前声明下面变量
extern unsigned long RamfuncsLoadStart;
extern unsigned long RamfuncsRunStart;
extern unsigned long RamfuncsLoadSize;
在主程序中添加以下代码
//FIXME initial Flash for test
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
// Call Flash Initialization to setup flash waitstates
// This function must reside in RAM
FlashInit();
// initial flash end
这么做的原因是:Flashinit()必须在RAM中初始化flash配置。所以要把这个函数放在flashload中,然后再把它copy到RAM中,再调用这个函数。
另外,下面这个语句在piccolo或delfino中是需要的,但是28M35的driverlib中已经帮你做好了。
#pragma CODE_SECTION(FlashInit, "ramfuncs");
- ERIC