如何使应用程序在RAM里面跑起来。对于IAR编译器,其使很简单,只要稍做修改即可。下面这一段代码,是截取LM3S.icf配置文件的某一段,
//
// Define a memory region that covers the entire 4 GB addressible space of the
// processor.
//
define memory mem with size = 4G;                 //  指定CPU的寻址范围
//
// Define a region for the on-chip flash.
//
define region FLASH = mem:[from 0x00000000 to 0x0003ffff];     //  指定片内Flash的范围
//
// Define a region for the on-chip SRAM.
//
define region SRAM = mem:[from 0x20000000 to 0x2000ffff];    //  指定片内SRAM的范围
//
// Define a block for the heap.  The size should be set to something other
// than zero if things in the C library that require the heap are used.
//
define block HEAP with alignment = 8, size = 0x00000000 { };     //  定义堆空间的大小
//
// Indicate that the read/write values should be initialized by copying from
// flash.
//
initialize by copy { readwrite };   //  指示read/write数据在初始化过程中要从Flash中拷贝出来
//
// Indicate that the noinit values should be left alone.  This includes the
// stack, which if initialized will destroy the return address from the
// initialization code, causing the processor to branch to zero and fault.
//
do not initialize { section .noinit }; //  预留一个段不拷贝到RAM,这部分通常是包含着中断//向量表的段
//
// Place the interrupt vectors at the start of flash.
//
place at start of SRAM { readonly section .intvec };     //  将中断向量表放在SRAM的起始地址处
//
// Place the remainder of the read-only items into flash.
//
place in SRAM { readonly };      //  将剩余的read-only项放入SRAM
//
// Place all read/write items into SRAM.
//
place in SRAM { readwrite, block HEAP };      //  将所有的read/write项及堆空间放入SRAM
 
代码中红色单词就是被改之后的,没有改之前,这些红色的单词是FLASH,程序在FLASH中运行。