Datasheet

Chapter 6 XGATE (S12XGATEV2)
MC9S12XDP512 Data Sheet, Rev. 2.21
292 Freescale Semiconductor
XGSWT EQU XGATE_REGS+$18 ;XGATE Software Trigger Register
XGSEM EQU XGATE_REGS+$1A ;XGATE Semaphore Register
RPAGE EQU $0016
RAM_SIZE EQU 32*$400 ;32k RAM
RAM_START EQU $1000
RAM_START_XG EQU $10000-RAM_SIZE
RAM_START_GLOB EQU $100000-RAM_SIZE
XGATE_VECTORS EQU RAM_START
XGATE_VECTORS_XG EQU RAM_START_XG
XGATE_DATA EQU RAM_START+(4*128)
XGATE_DATA_XG EQU RAM_START_XG+(4*128)
XGATE_CODE EQU XGATE_DATA+(XGATE_CODE_FLASH-XGATE_DATA_FLASH)
XGATE_CODE_XG EQU XGATE_DATA_XG+(XGATE_CODE_FLASH-XGATE_DATA_FLASH)
BUS_FREQ_HZ EQU 40000000
;###########################################
;# S12XE VECTOR TABLE #
;###########################################
ORG $FF10 ;non-maskable interrupts
DW DUMMY_ISR DUMMY_ISR DUMMY_ISR DUMMY_ISR
ORG $FFF4 ;non-maskable interrupts
DW DUMMY_ISR DUMMY_ISR DUMMY_ISR
;###########################################
;# DISABLE COP #
;###########################################
ORG $FF0E
DW $FFFE
ORG $C000
START_OF_CODE
;###########################################
;# INITIALIZE S12XE CORE #
;###########################################
SEI
MOVB #(RAM_START_GLOB>>12), RPAGE;set RAM page
;###########################################
;# INITIALIZE SCI #
;###########################################
INIT_SCI MOVW #(BUS_FREQ_HZ/(16*9600)), SCIBDH;set baud rate
MOVB #(TIE|TE), SCICR2;enable tx buffer empty interrupt
;###########################################
;# INITIALIZE S12X_INT #
;###########################################
INIT_INT MOVB #(SCI_VEC&$F0), INT_CFADDR ;switch SCI interrupts to XGATE
MOVB #RQST|$01, INT_CFDATA+((SCI_VEC&$0F)>>1)