📄 linker.lcf
字号:
#/*
# * 文件: linker.lcf
# * 目的: M52235EVB的连接文件
# *
# 说明: 调试器使用非法指令向量停止运行。
# 一段小程序被写入到地址VBR+0x408-VBR+0x40B来响应异常。
# 非法指令向量在向量表的VBR+0x10然后指向它。当调试器遇到非法指令时,
# 程序执行这段小程序, 以RTE结尾,然后退出。
# 不要重写存储器的这段区域,否则调试器可能不会正确退出
# */
MEMORY
{
flash (RX) : ORIGIN = 0x00000000, LENGTH = 0x00040000
sram (RWX) : ORIGIN = 0x20000000, LENGTH = 0x00007C00
ipsbar (RWX) : ORIGIN = 0x40000000, LENGTH = 0x0
}
SECTIONS
{
.ipsbar : {} > ipsbar
.flash :
{
vectors.s (.text)
. = ALIGN(0x10);
*(.text)
. = ALIGN(0x10);
*(.rodata)
___DATA_ROM = .;
} > flash
.data : AT(___DATA_ROM)
{
___DATA_RAM = . ;
*(.exception)
. = ALIGN(0x10);
__exception_table_start__ = .;
EXCEPTION
__exception_table_end__ = .;
___sinit__ = .;
STATICINIT
*(.data)
. = ALIGN (0x10);
___DATA_END = .;
__START_SDATA = .;
*(.sdata)
. = ALIGN (0x10);
__END_SDATA = .;
__SDA_BASE = .;
. = ALIGN(0x10);
} > sram
.bss :
{
. = ALIGN(0x10);
__START_SBSS = .;
*(.sbss)
*(SCOMMON)
__END_SBSS = .;
. = ALIGN(0x10);
__START_BSS = .;
*(.bss)
*(COMMON)
__END_BSS = .;
___BSS_START = __START_SBSS;
___BSS_END = __END_BSS;
. = ALIGN(0x10);
} >> sram
___FLASH = ADDR(.flash);
___FLASH_SIZE = 0x00040000;
___SRAM = 0x20000000;
___SRAM_SIZE = 0x00008000;
___VECTOR_RAM = 0x20000000;
___IPSBAR = ADDR(.ipsbar);
__S_romp = 0;
___SP_SIZE = 0x1000;
___HEAP_START = .;
___HEAP_END = ___SRAM + ___SRAM_SIZE - ___SP_SIZE;
___SP_END = ___HEAP_END;
___SP_INIT = ___SP_END + ___SP_SIZE;
___heap_addr = ___HEAP_START;
___heap_size = ___HEAP_END - ___HEAP_START ;
__SP_INIT = ___SP_INIT;
___STACK_SIZE = ___SP_INIT - ___SP_END;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -