// File: BootModified.18lf45K50_g.lkr
// Modified linker script for the PIC18LF45K50 processor to be used with the USB HID Bootloader firmware.

#DEFINE _CODEEND _DEBUGCODESTART - 1
#DEFINE _CEND _CODEEND + _DEBUGCODELEN
#DEFINE _DATAEND _DEBUGDATASTART - 1
#DEFINE _DEND _DATAEND + _DEBUGDATALEN

LIBPATH .

#IFDEF _CRUNTIME
  #IFDEF _EXTENDEDMODE
    //FILES c018_e.o   //Not using default C initializer.  Use manual initialization code.
    FILES clib_e.lib
    FILES p18lf45k50_e.lib

  #ELSE
    //FILES c018.o	//Not using default C initializer.  Use manual initialization code.
    FILES clib.lib
    FILES p18lf45k50.lib
  #FI

#FI

  CODEPAGE   NAME=BootPage   START=0x0000            END=0xFFF
#IFDEF _DEBUGCODESTART
  CODEPAGE   NAME=page       START=0x1000            END=_CODEEND     PROTECTED
  CODEPAGE   NAME=debug      START=_DEBUGCODESTART   END=_CEND        PROTECTED
#ELSE
  CODEPAGE   NAME=page       START=0x1000            END=0x7FFF       PROTECTED
#FI

CODEPAGE   NAME=idlocs     START=0x200000          END=0x200007       PROTECTED
CODEPAGE   NAME=config     START=0x300000          END=0x30000D       PROTECTED
CODEPAGE   NAME=devid      START=0x3FFFFE          END=0x3FFFFF       PROTECTED
CODEPAGE   NAME=eedata     START=0xF00000          END=0xF000FF       PROTECTED

#IFDEF _EXTENDEDMODE
  DATABANK   NAME=gpre       START=0x0               END=0x5F
#ELSE
  ACCESSBANK NAME=accessram  START=0x0               END=0x5F
#FI

DATABANK   NAME=gpr0       START=0x60              END=0xFF
DATABANK   NAME=gpr1       START=0x100             END=0x1FF
DATABANK   NAME=gpr2       START=0x200             END=0x2FF

#IFDEF _DEBUGDATASTART
  DATABANK   NAME=gpr3       START=0x300             END=_DATAEND
  DATABANK   NAME=dbgspr     START=_DEBUGDATASTART   END=_DEND           PROTECTED
#ELSE //no debug
  DATABANK   NAME=gpr3       START=0x300             END=0x3FF
#FI

DATABANK   NAME=gpr4       START=0x400             END=0x4FF
DATABANK   NAME=gpr5       START=0x500             END=0x5FF
DATABANK   NAME=gpr6       START=0x600             END=0x6FF
DATABANK   NAME=gpr7       START=0x700             END=0x7FF
DATABANK   NAME=sfr15      START=0xF53             END=0xF5F          PROTECTED
ACCESSBANK NAME=accesssfr  START=0xF60             END=0xFFF          PROTECTED

#IFDEF _CRUNTIME
  SECTION    NAME=CONFIG     ROM=config
  #IFDEF _DEBUGDATASTART
    STACK SIZE=0x60 RAM=gpr2
  #ELSE
    STACK SIZE=0x60 RAM=gpr3
  #FI
#FI

SECTION	   NAME=USB_VARS   RAM=gpr4
