ROM_LOAD 0x80000000 { ROM_EXEC 0x80000000 { Startup.o (vectors, +First) * (+RO) }
ERAM1 0x80002000 { Startup.o (MyStacks) }
STACKS_BOTTOM +0 UNINIT { Startup.o (StackBottom) }
STACKS 0x80004000 UNINIT { Startup.o (Stacks) }
ERAM 0x80030000 { * (+RW,+ZI) }
HEAP +0 UNINIT { Startup.o (Heap) }
HEAP_BOTTOM 0x80080000 UNINIT { Startup.o (HeapTop) }
} 分散加载函数的目的是把使用的资源全部移到外部,然后在内部的SRAM中开辟一块空间,目的是使用IAP的时候做缓存。
如下是函数一部分是使用指针开辟内部缓存的. volatile UINT32 * WriteData ; WriteData= (UINT32*)0x40004000; for(i = 0; i < 128; i++){ //清除内存 WriteData=0; } 函数执行完此段代码后函数返回时 跳到取指令终止!
|