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

📄 p24fj128ga010ps.gld

📁 使用PIC24 16位单片机 读写SD卡 支持FAT32
💻 GLD
📖 第 1 页 / 共 4 页
字号:
/*
** Linker script for PIC24FJ128GA010PS
*/

EXTERN(__resetPRI)
EXTERN(__resetALT)


/*
** Memory Regions
*/
MEMORY
{
  data  (a!xr) : ORIGIN = 0x800,         LENGTH = 0x2000
  reset        : ORIGIN = 0x0,           LENGTH = 0x4
  ivt          : ORIGIN = 0x4,           LENGTH = 0xFC
  aivt         : ORIGIN = 0x104,         LENGTH = 0xFC
  program (xr) : ORIGIN = 0x200,         LENGTH = 0x155FC
  config1      : ORIGIN = 0x157FC,       LENGTH = 0x2
  config2      : ORIGIN = 0x157FE,       LENGTH = 0x2
}
__IVT_BASE  = 0x4;
__AIVT_BASE = 0x104;
__DATA_BASE = 0x800;
__CODE_BASE = 0x200;


/*
** ==================== Section Map ======================
*/
SECTIONS
{
  /*
  ** ========== Program Memory ==========
  */


  /*
  ** Reset Instruction
  */
  .reset :
  {
        SHORT(ABSOLUTE(__reset));
        SHORT(0x04);
        SHORT((ABSOLUTE(__reset) >> 16) & 0x7F);
        SHORT(0);
  } >reset


  /*
  ** Interrupt Vector Tables
  **
  ** The primary and alternate tables are loaded
  ** here, between sections .reset and .text.
  ** Vector table source code appears below.
  */


  /*
  ** User Code and Library Code
  */
  .text __CODE_BASE :
  {
        *(.handle);
        *(.libc) *(.libm) *(.libdsp);  /* keep together in this order */
        *(.lib*);
        *(.text);
  } >program


  /*
  ** Configuration Words
  */
  __CONFIG2 :
  { *(__CONFIG2.sec)    } >config1
  __CONFIG1 :
  { *(__CONFIG1.sec)    } >config2


  /*
  ** =========== Data Memory ===========
  */


  /*
  ** ICD Debug Exec
  **
  ** This section provides optional storage for
  ** the ICD2 debugger. Define a global symbol
  ** named __ICD2RAM to enable ICD2. This section
  ** must be loaded at data address 0x800.
  */
  .icd __DATA_BASE (NOLOAD):
  {
    . += (DEFINED (__ICD2RAM) ? 0x50 : 0 );
  } > data


  /*
  ** Other sections in data memory are not explicitly mapped.
  ** Instead they are allocated according to their section
  ** attributes, which is most efficient.
  ** 
  ** If a specific arrangement of sections is required
  ** (other than what can be achieved using attributes)
  ** additional sections may be defined here. See chapter
  ** 10.5 in the MPLAB ASM30/LINK30 User's Guide (DS51317)
  ** for more information.
  */


  /*
  ** ========== Debug Info ==============
  */

  .comment        0 : { *(.comment) }

  /*
  ** DWARF-2
  */
  .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
  .debug_abbrev   0 : { *(.debug_abbrev) }
  .debug_line     0 : { *(.debug_line) }
  .debug_frame    0 : { *(.debug_frame) }
  .debug_str      0 : { *(.debug_str) }
  .debug_loc      0 : { *(.debug_loc) }
  .debug_macinfo  0 : { *(.debug_macinfo) }
  .debug_pubnames 0 : { *(.debug_pubnames) }
  .debug_ranges   0 : { *(.debug_ranges) }
  .debug_aranges  0 : { *(.debug_aranges) }

} /* SECTIONS */

/*
** ================= End of Section Map ================
*/

/*
** Section Map for Interrupt Vector Tables
*/
SECTIONS
{

/*
** Interrupt Vector Table
*/
.ivt __IVT_BASE :
  {
    LONG(DEFINED(__ReservedTrap0)    ? ABSOLUTE(__ReservedTrap0)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OscillatorFail)   ? ABSOLUTE(__OscillatorFail)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__AddressError)     ? ABSOLUTE(__AddressError)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__StackError)       ? ABSOLUTE(__StackError)       :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__MathError)        ? ABSOLUTE(__MathError)        :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__ReservedTrap5)    ? ABSOLUTE(__ReservedTrap5)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__ReservedTrap6)    ? ABSOLUTE(__ReservedTrap6)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__ReservedTrap7)    ? ABSOLUTE(__ReservedTrap7)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__INT0Interrupt)    ? ABSOLUTE(__INT0Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__IC1Interrupt)     ? ABSOLUTE(__IC1Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OC1Interrupt)     ? ABSOLUTE(__OC1Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__T1Interrupt)      ? ABSOLUTE(__T1Interrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt4)       ? ABSOLUTE(__Interrupt4)       :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__IC2Interrupt)     ? ABSOLUTE(__IC2Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OC2Interrupt)     ? ABSOLUTE(__OC2Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__T2Interrupt)      ? ABSOLUTE(__T2Interrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__T3Interrupt)      ? ABSOLUTE(__T3Interrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__SPI1ErrInterrupt) ? ABSOLUTE(__SPI1ErrInterrupt) :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__SPI1Interrupt)    ? ABSOLUTE(__SPI1Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U1RXInterrupt)    ? ABSOLUTE(__U1RXInterrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U1TXInterrupt)    ? ABSOLUTE(__U1TXInterrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__ADC1Interrupt)    ? ABSOLUTE(__ADC1Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt14)      ? ABSOLUTE(__Interrupt14)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt15)      ? ABSOLUTE(__Interrupt15)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__I2C1SInterrupt)   ? ABSOLUTE(__I2C1SInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__I2C1MInterrupt)   ? ABSOLUTE(__I2C1MInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__CMPInterrupt)     ? ABSOLUTE(__CMPInterrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__CNInterrupt)      ? ABSOLUTE(__CNInterrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__INT1Interrupt)    ? ABSOLUTE(__INT1Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt21)      ? ABSOLUTE(__Interrupt21)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt22)      ? ABSOLUTE(__Interrupt22)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt23)      ? ABSOLUTE(__Interrupt23)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt24)      ? ABSOLUTE(__Interrupt24)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OC3Interrupt)     ? ABSOLUTE(__OC3Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OC4Interrupt)     ? ABSOLUTE(__OC4Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__T4Interrupt)      ? ABSOLUTE(__T4Interrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__T5Interrupt)      ? ABSOLUTE(__T5Interrupt)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__INT2Interrupt)    ? ABSOLUTE(__INT2Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U2RXInterrupt)    ? ABSOLUTE(__U2RXInterrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U2TXInterrupt)    ? ABSOLUTE(__U2TXInterrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__SPI2ErrInterrupt) ? ABSOLUTE(__SPI2ErrInterrupt) :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__SPI2Interrupt)    ? ABSOLUTE(__SPI2Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt34)      ? ABSOLUTE(__Interrupt34)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt35)      ? ABSOLUTE(__Interrupt35)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt36)      ? ABSOLUTE(__Interrupt36)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__IC3Interrupt)     ? ABSOLUTE(__IC3Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__IC4Interrupt)     ? ABSOLUTE(__IC4Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__IC5Interrupt)     ? ABSOLUTE(__IC5Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt40)      ? ABSOLUTE(__Interrupt40)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__OC5Interrupt)     ? ABSOLUTE(__OC5Interrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt42)      ? ABSOLUTE(__Interrupt42)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt43)      ? ABSOLUTE(__Interrupt43)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt44)      ? ABSOLUTE(__Interrupt44)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__PMPInterrupt)     ? ABSOLUTE(__PMPInterrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt46)      ? ABSOLUTE(__Interrupt46)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt47)      ? ABSOLUTE(__Interrupt47)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt48)      ? ABSOLUTE(__Interrupt48)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__I2C2SInterrupt)   ? ABSOLUTE(__I2C2SInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__I2C2MInterrupt)   ? ABSOLUTE(__I2C2MInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt51)      ? ABSOLUTE(__Interrupt51)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt52)      ? ABSOLUTE(__Interrupt52)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__INT3Interrupt)    ? ABSOLUTE(__INT3Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__INT4Interrupt)    ? ABSOLUTE(__INT4Interrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt55)      ? ABSOLUTE(__Interrupt55)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt56)      ? ABSOLUTE(__Interrupt56)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt57)      ? ABSOLUTE(__Interrupt57)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt58)      ? ABSOLUTE(__Interrupt58)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt59)      ? ABSOLUTE(__Interrupt59)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt60)      ? ABSOLUTE(__Interrupt60)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt61)      ? ABSOLUTE(__Interrupt61)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__RTCCInterrupt)    ? ABSOLUTE(__RTCCInterrupt)    :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt63)      ? ABSOLUTE(__Interrupt63)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt64)      ? ABSOLUTE(__Interrupt64)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U1ErrInterrupt)   ? ABSOLUTE(__U1ErrInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__U2ErrInterrupt)   ? ABSOLUTE(__U2ErrInterrupt)   :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__CRCInterrupt)     ? ABSOLUTE(__CRCInterrupt)     :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt68)      ? ABSOLUTE(__Interrupt68)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt69)      ? ABSOLUTE(__Interrupt69)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt70)      ? ABSOLUTE(__Interrupt70)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt71)      ? ABSOLUTE(__Interrupt71)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt72)      ? ABSOLUTE(__Interrupt72)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt73)      ? ABSOLUTE(__Interrupt73)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt74)      ? ABSOLUTE(__Interrupt74)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt75)      ? ABSOLUTE(__Interrupt75)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt76)      ? ABSOLUTE(__Interrupt76)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt77)      ? ABSOLUTE(__Interrupt77)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt78)      ? ABSOLUTE(__Interrupt78)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt79)      ? ABSOLUTE(__Interrupt79)      :
         ABSOLUTE(__DefaultInterrupt));
    LONG(DEFINED(__Interrupt80)      ? ABSOLUTE(__Interrupt80)      :

⌨️ 快捷键说明

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