#//author : jeffasd
# linker.Lcf - C*Core CS320D系列连接器命令文件
MEMORY
{
//VECTORS (R) : ORIGIN = 0x00803C00, LENGTH = 0x00000200
TEXT (RX) : ORIGIN = 0x00002000, LENGTH = 0x00000000
ROMDATA (R) : ORIGIN = AFTER(TEXT), LENGTH = 0x00000000
DATA (RW) : ORIGIN = 0x00800000, LENGTH = 0x00000000
BSS (RW) : ORIGIN = AFTER(DATA), LENGTH = 0x00000000
}
SECTIONS
{
//. vectormap : //定义向量表,放在最前面。
//{
// .=ALIGN(Ox400); //向量表1KB对界。
// __exception_table_begin= . ;
// vector_table.c(.rodata) // 向量表文件。
// __exception_table_end= . ;
//} > VECTORS //向量表空间映像, 偏移地址0x000 ~ 0x1FF
.main_application : // 定义程序代码段
{
Startup.c (.text) //复位起始程序
//standalone.c (.text) //主程序
//isr_PIT.c (.text) // PIT中断服务程序
* (.text) //所有的代码段
} > TEXT //代码段空间映像,偏移起始地址0x2000
__data_begin = 0x00800000;
.main_application_data : //定义数据段,
{ //需要复制到RAM的已初始化变量
* (.rodata) //保存在ROM中的常数
. = ALIGN(0x1);
__data_ROM_begin= . ; //记录数据复制起始地址
* (.data) //所有模块中的数据
__data_ROM_end= . ; //记录数据复制终止地址
//* (.vtables)
//* (.exception)
//__sinit_= . ; //仅用于C++程序
//STATICINIT
} > ROMDATA
//该连接命令文件中没有提及"DATA"的内容安排,由MEMORY指示保证其存在并对应SRAM空间
.main_app_bss : //未初始化数据,被startup.c赋0值
{
__bss_begin= . ;
* (.bss)
__bss_end= . ;
} > BSS
// Calculations and assignments of section sizes
__stack_end = (. + 7) & ~7; // 定义程序栈空间
__stack_begin = __stack_end + 0x1500;
__alt_stack_end = __stack_begin; //定义交换栈空间
__alt_stack_begin = __alt_stack_end + 0x0200;
__heap_addr = __alt_stack_begin; //定义堆空间
__heap_end = __heap_addr + 0x0600;
__heap_size = __heap_end - __heap_addr;
// Comment out next line to do a copy of the __data_ROM data from ROM to RAM
__data_size = __data_ROM_end - __data_ROM_begin; //定义RAM实际运行空间
//__exception_table_size=__exception_table_end - __exception_table_begin;
}
阅读(521) | 评论(0) | 转发(0) |