📄 linker.prm
字号:
NAMES
END
SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
/* Register space */
/* IO_SEG = PAGED 0x0000 TO 0x07FF; */
/* nonpaged RAM */
RAM = READ_WRITE 0x2000 TO 0x3FFF ALIGN 2; /* aling on even boundary for objects of size greater than 1 byte */
/* note that the compiler will use top of RAM for SW XGate stack by default */
/* when changing the RAM_XGATE range, please check the Startup.cmd */
/* nonpaged EEPROM */
EEPROM = READ_ONLY 0x0C00 TO 0x0FFF;
/* paged EEPROM */
EEPROM_FC = READ_ONLY 0xFC0800 TO 0xFC0BFF;
EEPROM_FD = READ_ONLY 0xFD0800 TO 0xFD0BFF;
EEPROM_FE = READ_ONLY 0xFE0800 TO 0xFE0BFF;
/* EEPROM_FF = READ_ONLY 0xFF0800 TO 0xFF0BFF; intentionally not defined: equivalent to EEPROM */
/* paged RAM */
//RAM_FB = READ_WRITE 0xFB1000 TO 0xFB1FFF;
//used by Xgate RAM_F8 = READ_WRITE 0xF81000 TO 0xF81FFF;
//used by Xgate RAM_F9 = READ_WRITE 0xF91000 TO 0xF91FFF;
//used by Xgate RAM_FA = READ_WRITE 0xFA1000 TO 0xFA1FFF;
RAM_FB = READ_WRITE 0xFB1000 TO 0xFB1FFF;
RAM_FC = READ_WRITE 0xFC1000 TO 0xFC1FFF;
RAM_FD = READ_WRITE 0xFD1000 TO 0xFD1FFF;
/* RAM_FE = READ_WRITE 0xFE1000 TO 0xFE1FFF; intentionally not defined: equivalent to RAM */
/* RAM_FF = READ_WRITE 0xFF1000 TO 0xFF1FFF; intentionally not defined: equivalent to RAM */
/* unbanked FLASH */
ROM_4000 = READ_ONLY 0x4000 TO 0x7FFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;
ROM_FF00 = READ_ONLY 0xFF00 TO 0xFFFF;
/* paged FLASH */
//used by Xgate (see below) PAGE_E0 = READ_ONLY 0xE08000 TO 0xE0BFFF;
//used by Xgate (see below) PAGE_E1 = READ_ONLY 0xE18000 TO 0xE1BFFF;
PAGE_E2 = READ_ONLY 0xE2A000 TO 0xE2BFFF; /* half of page E2 is used for Xgate code storage (relocated to RAM during run-time) */
PAGE_E3 = READ_ONLY 0xE38000 TO 0xE3BFFF;
PAGE_E4 = READ_ONLY 0xE48000 TO 0xE4BFFF;
PAGE_E5 = READ_ONLY 0xE58000 TO 0xE5BFFF;
PAGE_E6 = READ_ONLY 0xE68000 TO 0xE6BFFF;
PAGE_E7 = READ_ONLY 0xE78000 TO 0xE7BFFF;
PAGE_E8 = READ_ONLY 0xE88000 TO 0xE8BFFF;
PAGE_E9 = READ_ONLY 0xE98000 TO 0xE9BFFF;
PAGE_EA = READ_ONLY 0xEA8000 TO 0xEABFFF;
PAGE_EB = READ_ONLY 0xEB8000 TO 0xEBBFFF;
PAGE_EC = READ_ONLY 0xEC8000 TO 0xECBFFF;
PAGE_ED = READ_ONLY 0xED8000 TO 0xEDBFFF;
PAGE_EE = READ_ONLY 0xEE8000 TO 0xEEBFFF;
PAGE_EF = READ_ONLY 0xEF8000 TO 0xEFBFFF;
PAGE_F0 = READ_ONLY 0xF08000 TO 0xF0BFFF;
PAGE_F1 = READ_ONLY 0xF18000 TO 0xF1BFFF;
PAGE_F2 = READ_ONLY 0xF28000 TO 0xF2BFFF;
PAGE_F3 = READ_ONLY 0xF38000 TO 0xF3BFFF;
PAGE_F4 = READ_ONLY 0xF48000 TO 0xF4BFFF;
PAGE_F5 = READ_ONLY 0xF58000 TO 0xF5BFFF;
PAGE_F6 = READ_ONLY 0xF68000 TO 0xF6BFFF;
PAGE_F7 = READ_ONLY 0xF78000 TO 0xF7BFFF;
PAGE_F8 = READ_ONLY 0xF88000 TO 0xF8BFFF;
PAGE_F9 = READ_ONLY 0xF98000 TO 0xF9BFFF;
PAGE_FA = READ_ONLY 0xFA8000 TO 0xFABFFF;
PAGE_FB = READ_ONLY 0xFB8000 TO 0xFBBFFF;
PAGE_FC = READ_ONLY 0xFC8000 TO 0xFCBFFF;
/* PAGE_FD = READ_ONLY 0xFD8000 TO 0xFDBFFF; intentionally not defined: equivalent to ROM_4000 */
PAGE_FE = READ_ONLY 0xFE8000 TO 0xFEBFFF;
/* PAGE_FF = READ_ONLY 0xFF8000 TO 0xFFBFFF; intentionally not defined: equivalent to ROM_C000 */
/* Xgate code placement */
// ROM_XGATE = READ_WRITE 0x8000'X TO 0x9FFF'X ALIGN 2; /* RAM_F8, RAM_F9 */
ROM_XGATE = READ_WRITE 0xF81000 TO 0xF81FFF ALIGN 2; /* RAM_F8 */
RAM_XGATE = READ_WRITE 0xA000'X TO 0xAFFF'X ALIGN 2; /* RAM_FA */
FLASH_XGATE = READ_ONLY 0x780800'G TO 0x787FFF'G ALIGN 2; /* XGate flash */
END
PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */
S12_VEC_TABLE INTO ROM_FF00;
_PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */
STARTUP, /* startup data structures */
ROM_VAR, /* constant variables */
STRINGS, /* string literals */
VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment */
DEFAULT_ROM, NON_BANKED, /* runtime routines which must not be banked */
COPY /* copy down information: how to initialize variables */
/* in case you want to use ROM_4000 here as well, make sure
that all files (incl. library files) are compiled with the
option: -OnB=b */
INTO ROM_C000/*, ROM_4000*/;
OTHER_ROM INTO PAGE_E2, PAGE_E3, PAGE_E4, PAGE_E5, PAGE_E6, PAGE_E7,
PAGE_E8, PAGE_E9, PAGE_EA, PAGE_EB, PAGE_EC, PAGE_ED, PAGE_EE, PAGE_EF,
PAGE_F0, PAGE_F1, PAGE_F2, PAGE_F3, PAGE_F4, PAGE_F5, PAGE_F6, PAGE_F7,
PAGE_F8, PAGE_F9, PAGE_FA, PAGE_FB, PAGE_FC, PAGE_FE;
XGATE_CODE INTO ROM_XGATE;
DEFAULT_RAM INTO RAM; /* all variables, the default RAM location */
XGATE_CONST, /* XGATE constants have to be copied into RAM by HCS12X */
XGATE_STRING, /* XGATE string literals have to be copied into RAM by HCS12X */
XGATE_DATA INTO RAM_XGATE;
XGATE_FLASH INTO FLASH_XGATE;
PAGED_RAM INTO RAM_FB,RAM_FC,RAM_FD;
END
DEPENDENCY
ROOT
_vectab
END
END
STACKSIZE 0x30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -