📄 loader.lik
字号:
/* __START_ADDRESS : __END_ADDRESS
* the starting and ending address of data to load from DRAM to flash ROM
*
* __START_ADDRESS : __END_ADDR_OF_FLASH_TO_DRAM
* the starting and ending address of data to load from flash ROM to DRAM
* FLASH_BASE_ADDR : the base address of flash ROM
* __SP_LOADER : the init vlaue of SP when running "loader"
*/
MEMORY
{
vect: org = 0x000000, len = 0x400
/* loader: org = 0x2000, len = 0x60000 */
ram: org = 0x01000, len = 0x3ff000
/* rom: org = 0x800040, len = 0xd000*/
/* Your programs are put to MEMORY "ram" ,the MEMROY "loader"
include the loader program's code */
}
SECTIONS
{
.vectors : {} > vect
GROUP : {
.text (TEXT) : {
__START_ADDRESS = . ;
*(start) *(.text) *(.rodata) *(.init) *(.fini) *(.eini)
. = (.+15) & ~15;
}
/* Next take all small CONST data */
.sdata2 (TEXT) : {
. = (.+0x3) & ~0x3;
__CHECK_ADDRESS = .;
}
} > ram
GROUP : {
.data (DATA) : { }
.sdata (DATA) : { }
.text(TEXT) : {
. = (.+0x3) & ~0x3;
__END_ADDR_OF_FLASH_TO_DRAM = .;
}
.sbss (BSS) : { }
.bss (BSS) : { }
} >ram
}
__HEAP_START = ADDR(.bss)+SIZEOF(.bss);
__SP_INIT = ADDR(ram)+SIZEOF(ram);
__HEAP_END = __SP_INIT-0x10000;
__SP_END = __HEAP_END;
__DATA_RAM = ADDR(.data);
__DATA_ROM = __DATA_RAM;
__DATA_END = ADDR(.sdata)+SIZEOF(.sdata);
__BSS_START = ADDR(.sbss);
__BSS_END = ADDR(.bss)+SIZEOF(.bss);
STKTOP = __SP_END;
_sys_memory = STKTOP;
_clean1 = ADDR(.bss);
_size = SIZEOF(.bss);
__START_ADDR_OF_DATA = 0x100000;
__END_ADDR_OF_DATA = 0x300000;
/* Some targets use an extra underscore in front of identifiers
* ---------------------------------------------------------------------- */
___HEAP_START = __HEAP_START;
___HEAP_END = __HEAP_END;
___SP_INIT = __SP_INIT;
___SP_END = __SP_END;
___DATA_ROM = __DATA_ROM;
___DATA_RAM = __DATA_RAM;
___DATA_END = __DATA_END;
___BSS_START = __BSS_START;
___BSS_END = __BSS_END;
__SP_LOADER = __SP_INIT;
__FLASH_BASE_ADDR = 0x00800000;
__PROGRAM_ADDR = 0x800040;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -