📄 s12xep100 flash.prm
字号:
/* This is a linker parameter file for the MC9S12XEP100 */
/* Default Flash Build */
/* If XGATE code is <16K and placed by the start up code in start12.c then assign it
directly into a READ_WRITE RAM segment and the appropriate copy down info will get
created.
If it is >16K then it is probably easiest to place it into flash segment(s) and get
the linker to patch up address references for execution from RAM using RELOCATE. The
code then needs to copied explicitly in the application or by modifying start12.c. */
/******************************************************************************
*******************************************************************
* File created by: Freescale East Kilbride MCD Applications Group *
*******************************************************************
******************************************************************************/
/*===========================================================================*/
/* Freescale reserves the right to make changes without further notice to any*/
/* product herein to improve reliability, function, or design. Freescale does*/
/* not assume any liability arising out of the application or use of any */
/* product, circuit, or software described herein; neither does it convey */
/* any license under its patent rights nor the rights of others. Freescale*/
/* products are not designed, intended, or authorized for use as components */
/* in systems intended for surgical implant into the body, or other */
/* applications intended to support life, or for any other application in */
/* which the failure of the Freescale product could create a situation where*/
/* personal injury or death may occur. Should Buyer purchase or use Freescale*/
/* products for any such intended or unauthorized application, Buyer shall */
/* indemnify and hold Freescale and its officers, employees, subsidiaries,*/
/* affiliates, and distributors harmless against all claims costs, damages, */
/* and expenses, and reasonable attorney fees arising out of, directly or */
/* indirectly, any claim of personal injury or death associated with such */
/* unintended or unauthorized use, even if such claim alleges that Freescale*/
/* was negligent regarding the design or manufacture of the part. Freescale*/
/* and the Freescale logo* are registered trademarks of Freescale Ltd. */
/*****************************************************************************/
NAMES END /* CodeWarrior will pass all the needed files to the linker by command line. But here you may add your own files too. */
ENTRIES sys_params.c.o:* END
SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
/* Register space */
/* IO_SEG = PAGED 0x0000 TO 0x07FF; */
/* paged RAM - 64k = 16 x 4K pages. XGATE can access from page F8 to FF */
RAM_F0 = READ_WRITE 0xF01000 TO 0xF01FFF;
RAM_F1 = READ_WRITE 0xF11000 TO 0xF11FFF;
RAM_F2 = READ_WRITE 0xF21000 TO 0xF21FFF;
RAM_F3 = READ_WRITE 0xF31000 TO 0xF31FFF;
RAM_F4 = READ_WRITE 0xF41000 TO 0xF41FFF;
RAM_F5 = READ_WRITE 0xF51000 TO 0xF51FFF;
RAM_F6 = READ_WRITE 0xF61000 TO 0xF61FFF;
RAM_F7 = READ_WRITE 0xF71000 TO 0xF71FFF;
RAM_F8 = READ_WRITE 0xF81000 TO 0xF81FFF;
RAM_F9 = READ_WRITE 0xF91000 TO 0xF91FFF;
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;
XGATE_ROM1 = READ_WRITE 0xFB1000 TO 0xFB1FFF ALIGN 2[1:1];
XGATE_ROM2 = READ_WRITE 0xFC1000 TO 0xFC1FFF ALIGN 2[1:1];
XGATE_RAM = READ_WRITE 0xFD1000 TO 0xFD1FFF ALIGN 2[1:1];
/* 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 */
/* nonpaged RAM - 8K */
SHARED_RAM = READ_WRITE 0x2000 TO 0x27FF ALIGN 2[1:1];
CPU_RAM = READ_WRITE 0x2800 TO 0x3FFF;
/* nonpaged EEE_RAM */
BUF_RAM1 = NO_INIT 0x0C00 TO 0x0EFF; /* user buffer RAM */
EEE1 = NO_INIT 0x0F00 TO 0x0FFF; /* 256 bytes EEE */
/* paged EEE_RAM - 1K pages*/
BUF_RAM_FC = NO_INIT 0xFC0800 TO 0xFC0BFF; /* buffer RAM */
BUF_RAM_FD = NO_INIT 0xFD0800 TO 0xFD0BFF;
BUF_RAM_FE = NO_INIT 0xFE0800 TO 0xFE0BFF;
/* BUF_RAM_FF = NO_INIT 0xFF0800 TO 0xFF0BFF; intentionally not defined: equivalent to non paged EEE/BUF_RAM */
// USER_D_FLASH = READ_ONLY 0x100000'G TO 0x107FFF'G; /* for no EEE - modify if EEE is formated */
USER_D_FLASH = READ_ONLY 0x100000'G TO 0x1073FF'G; /* 116 x 256bytes = 29K D-Flash */
EEE_D_FLASH = READ_ONLY 0x107400'G TO 0x107FFF'G; /* 12 x 256bytes = 3K reserved for EEE use */
/* unbanked FLASH */
ROM_4000 = READ_ONLY 0x4000 TO 0x7FFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;
ROM_FF00 = READ_ONLY 0xFF00 TO 0xFFFF; /* intentionally not defined: used for S12 vectors. */
/* paged FLASH - 16K pages */
/* Block 3 */
PAGE_C0 = READ_ONLY 0xC08000 TO 0xC0BFFF;
PAGE_C1 = READ_ONLY 0xC18000 TO 0xC1BFFF;
PAGE_C2 = READ_ONLY 0xC28000 TO 0xC2BFFF;
PAGE_C3 = READ_ONLY 0xC38000 TO 0xC3BFFF;
PAGE_C4 = READ_ONLY 0xC48000 TO 0xC4BFFF;
PAGE_C5 = READ_ONLY 0xC58000 TO 0xC5BFFF;
PAGE_C6 = READ_ONLY 0xC68000 TO 0xC6BFFF;
PAGE_C7 = READ_ONLY 0xC78000 TO 0xC7BFFF;
PAGE_C8 = READ_ONLY 0xC88000 TO 0xC8BFFF;
PAGE_C9 = READ_ONLY 0xC98000 TO 0xC9BFFF;
PAGE_CA = READ_ONLY 0xCA8000 TO 0xCABFFF;
PAGE_CB = READ_ONLY 0xCB8000 TO 0xCBBFFF;
PAGE_CC = READ_ONLY 0xCC8000 TO 0xCCBFFF;
PAGE_CD = READ_ONLY 0xCD8000 TO 0xCDBFFF;
PAGE_CE = READ_ONLY 0xCE8000 TO 0xCEBFFF;
PAGE_CF = READ_ONLY 0xCF8000 TO 0xCFBFFF;
/* Block 2 */
PAGE_D0 = READ_ONLY 0xD08000 TO 0xD0BFFF;
PAGE_D1 = READ_ONLY 0xD18000 TO 0xD1BFFF;
PAGE_D2 = READ_ONLY 0xD28000 TO 0xD2BFFF;
PAGE_D3 = READ_ONLY 0xD38000 TO 0xD3BFFF;
PAGE_D4 = READ_ONLY 0xD48000 TO 0xD4BFFF;
PAGE_D5 = READ_ONLY 0xD58000 TO 0xD5BFFF;
PAGE_D6 = READ_ONLY 0xD68000 TO 0xD6BFFF;
PAGE_D7 = READ_ONLY 0xD78000 TO 0xD7BFFF;
PAGE_D8 = READ_ONLY 0xD88000 TO 0xD8BFFF;
PAGE_D9 = READ_ONLY 0xD98000 TO 0xD9BFFF;
PAGE_DA = READ_ONLY 0xDA8000 TO 0xDABFFF;
PAGE_DB = READ_ONLY 0xDB8000 TO 0xDBBFFF;
PAGE_DC = READ_ONLY 0xDC8000 TO 0xDCBFFF;
PAGE_DD = READ_ONLY 0xDD8000 TO 0xDDBFFF;
PAGE_DE = READ_ONLY 0xDE8000 TO 0xDEBFFF;
PAGE_DF = READ_ONLY 0xDF8000 TO 0xDFBFFF;
/* Block 1S */
PAGE_E0 = READ_ONLY 0xE08000 TO 0xE087FF;
FLASH_XGATE_E0 = READ_ONLY 0xE08800 TO 0xE0BFFF ALIGN 2[1:1]; /* 16K flash accessible by XGATE */
FLASH_XGATE_E1 = READ_ONLY 0xE18000 TO 0xE1BFFF ALIGN 2[1:1]; /* 14K flash accessible by XGATE */
// XGATE_ROM_COPY0 = READ_ONLY 0xE28000 TO 0xE2BFFF RELOCATE_TO 0xF91000 ALIGN 2[1:1]; // = 0x78_8000'g - 0x78_9FFF'g
// XGATE_ROM_COPY1 = READ_ONLY 0xE38000 TO 0xE3BFFF RELOCATE_TO 0xFA1000 ALIGN 2[1:1]; // = 0x78_8000'g - 0x78_9FFF'g
PAGE_E2 = READ_ONLY 0xE28000 TO 0xE2BFFF;
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;
/* Block 1N */
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;
/* Block 0 */
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 */
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_F8, PAGE_F9, PAGE_FA, PAGE_FB, PAGE_FC, PAGE_FE,
PAGE_F0, PAGE_F1, PAGE_F2, PAGE_F3, PAGE_F4, PAGE_F5, PAGE_F6, PAGE_F7,
PAGE_E8, PAGE_E9, PAGE_EA, PAGE_EB, PAGE_EC, PAGE_ED, PAGE_EE, PAGE_EF,
PAGE_D0, PAGE_D1, PAGE_D2, PAGE_D3, PAGE_D4, PAGE_D5, PAGE_D6, PAGE_D7,
PAGE_D8, PAGE_D9, PAGE_DA, PAGE_DB, PAGE_DC, PAGE_DD, PAGE_DE, PAGE_DF,
PAGE_C0, PAGE_C1, PAGE_C2, PAGE_C3, PAGE_C4, PAGE_C5, PAGE_C6, PAGE_C7,
PAGE_C8, PAGE_C9, PAGE_CA, PAGE_CB, PAGE_CC, PAGE_CD, PAGE_CE, PAGE_CF;
IN_XGATE_FLASH_BLOCK INTO PAGE_E0, PAGE_E3, PAGE_E4, PAGE_E5, PAGE_E6, PAGE_E7;
DEFAULT_RAM INTO CPU_RAM; /* all variables, the default RAM location */
XGATE_STRING_RAM, /* XGATE strings that should always go into RAM */
XGATE_CONST_RAM, /* XGATE constants what should always go into RAM */
XGATE_CODE_RAM, /* XGATE code that should always run out of RAM */
XGATE_DATA, /* data that are accessed by XGATE only */
XGATE_STACKS
INTO XGATE_RAM;
XGATE_VECTORS, /* XGATE vector table - could be placed into RAM */
XGATE_STRING, /* XGATE string literals - could be placed into RAM */
XGATE_CONST, /* XGATE constants - could be placed into RAM */
XGATE_STRING_FLASH, /* XGATE strings that should always go into flash */
XGATE_CONST_FLASH, /* XGATE constants that should always go into flash */
XGATE_CODE_FLASH /* XGATE code that should always run out of flash */
INTO FLASH_XGATE_E0, FLASH_XGATE_E1;
XGATE_CODE INTO XGATE_ROM1, XGATE_ROM2; /* XGATE functions loaded by start up*/
PAGED_RAM INTO RAM_F8, RAM_F9, RAM_FA,
RAM_F0, RAM_F1, RAM_F2, RAM_F3, RAM_F4, RAM_F5, RAM_F6, RAM_F7;
SHARED_DATA INTO SHARED_RAM;
EEPROM_DATA INTO EEE1;
SYSTEM_DATA_NVM INTO USER_D_FLASH;
SYSTEM_DATA INTO BUF_RAM1;
END
DEPENDENCY
ROOT _vectab END
END
STACKSIZE 0x100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -