⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 softec_hcs12_linker.prm

📁 飞思卡尔 x12 系列单片机 xgate应用实例
💻 PRM
📖 第 1 页 / 共 2 页
字号:
      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;
      
      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;

      PAGE_E0_0     = READ_ONLY   0xE08000 TO 0xE087FF;         /* cannot be mapped to XGATE; XGATE sees registers here */
      PAGE_E0       = READ_ONLY   0xE08800 TO 0xE0BFFF ALIGN 2[1:1]; /* is also mapped to XGATE:  0x0800..0x3FFF        */
      PAGE_E1       = READ_ONLY   0xE18000 TO 0xE1BFFF ALIGN 2[1:1]; /* is also mapped to XGATE:  0x4000..0x7FFF        */
      PAGE_E2       = READ_ONLY   0xE28000 TO 0xE2BFFF;         /* cannot be mapped to XGATE; this module should NOT be */
      PAGE_E3       = READ_ONLY   0xE38000 TO 0xE3BFFF;         /* used for HC12 code when also used for XGATE code     */
      PAGE_E4       = READ_ONLY   0xE48000 TO 0xE4BFFF;         /* since the HC12 will have priority over the XGATE     */
      PAGE_E5       = READ_ONLY   0xE58000 TO 0xE5BFFF;         /* accessing the FLASH modules resulting very poor      */
      PAGE_E6       = READ_ONLY   0xE68000 TO 0xE6BFFF;         /* performance of the XGATE:                            */
      PAGE_E7       = READ_ONLY   0xE78000 TO 0xE7BFFF;         /* Check allocation of this ranges in PLACEMENT below!  */

      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 */

END

PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */
      _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 */
    //.ostext,                /* eventually OSEK code  */
      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*/;

      DEFAULT_ROM       INTO           PAGE_FE,          PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8,
                              PAGE_F7, PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0,
                              PAGE_EF, PAGE_EE, PAGE_ED, PAGE_EC, PAGE_EB, PAGE_EA, PAGE_E9, PAGE_E8,
                              /* use the following ranges only when same module is NOT used for XGATE code */
                              /* PAGE_E0, PAGE_E1, intentionally not listed: assigned to XGATE */
                              PAGE_E7, PAGE_E6, PAGE_E5, PAGE_E4, PAGE_E3, PAGE_E2,        PAGE_E0_0,
                              PAGE_DF, PAGE_DE, PAGE_DD, PAGE_DC, PAGE_DB, PAGE_DA, PAGE_D9, PAGE_D8,
                              PAGE_D7, PAGE_D6, PAGE_D5, PAGE_D4, PAGE_D3, PAGE_D2, PAGE_D1, PAGE_D0,
                              PAGE_CF, PAGE_CE, PAGE_CD, PAGE_CC, PAGE_CB, PAGE_CA, PAGE_C9, PAGE_C8,
                              PAGE_C7, PAGE_C6, PAGE_C5, PAGE_C4, PAGE_C3, PAGE_C2, PAGE_C1, PAGE_C0;

      XGATE_STRING_FLASH,     /* XGATE strings that should always go into flash */
      XGATE_CONST_FLASH,      /* XGATE constants what should always go into flash */
      XGATE_CODE_FLASH        /* XGATE code that should always run out of flash */
                        INTO  PAGE_E0, PAGE_E1; /* FLASH accessible by XGATE */

      SSTACK,                 /* allocate stack first to avoid overwriting variables */
      SHARED_DATA,            /* variables that are shared between CPU12 and XGATE */
      DEFAULT_RAM             /* all variables, the default RAM location */
                        INTO  RAM;

      XGATE_VECTORS,          /* XGATE vector table has to be copied into RAM by HCS12X */
      XGATE_STRING,           /* XGATE string literals have to be copied into RAM by HCS12X */
      XGATE_CONST,            /* XGATE constants have to be copied into RAM by HCS12X */
      XGATE_CODE,             /* XGATE functions have to be copied into RAM by HCS12X */
      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 */
                        INTO  RAM_F8, RAM_F9, RAM_FA, RAM_FB /*, RAM_FC, RAM_FD */;

      PAGED_RAM               /* paged data accessed by CPU12 only */
                        INTO  /* when using banked addressing for variable data, make sure to specify 
                                 the option -D__FAR_DATA on the compiler command line */
                              RAM_FD, RAM_FC /* RAM_FB, RAM_FA, RAM_F9 */;

    //.vectors          INTO  OSVECTORS; /* OSEK vector table */
END


ENTRIES /* keep the following unreferenced variables */
      /* OSEK: always allocate the vector table and all dependent objects */
      //_vectab OsBuildNumber _OsOrtiStackStart _OsOrtiStart
END

STACKSIZE 0x100   /* size of the stack (will be allocated in DEFAULT_RAM) */

/* use these definitions in plane of the vector table ('vectors') above */
VECTOR 0 _Startup /* reset vector: this is the default entry point for a C/C++ application. */
//VECTOR 0 Entry  /* reset vector: this is the default entry point for an Assembly application. */
//INIT Entry      /* for assembly applications: that this is as well the initialization entry point */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -