![](http://datasheet.mmic.net.cn/370000/P312XDP512F0VFV_datasheet_16728159/P312XDP512F0VFV_292.png)
Chapter 6 XGATE (S12XGATEV2)
MC9S12XDP512 Data Sheet, Rev. 2.17
292
Freescale Semiconductor
XGSWT
XGSEM
EQU
EQU
XGATE_REGS+$18
XGATE_REGS+$1A
;XGATE Software Trigger Register
;XGATE Semaphore Register
RPAGE
EQU
$0016
RAM_SIZE
EQU
32*$400
;32k RAM
RAM_START
RAM_START_XG
RAM_START_GLOB
EQU
EQU
EQU
$1000
$10000-RAM_SIZE
$100000-RAM_SIZE
XGATE_VECTORS
XGATE_VECTORS_XG
EQU
EQU
RAM_START
RAM_START_XG
XGATE_DATA
XGATE_DATA_XG
EQU
EQU
RAM_START+(4*128)
RAM_START_XG+(4*128)
XGATE_CODE
XGATE_CODE_XG
EQU
EQU
XGATE_DATA+(XGATE_CODE_FLASH-XGATE_DATA_FLASH)
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
DW
$FFF4 ;non-maskable interrupts
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
;###########################################
MOVW #(BUS_FREQ_HZ/(16*9600)), SCIBDH;set baud rate
MOVB #(TIE|TE), SCICR2;enable tx buffer empty interrupt
#
INIT_SCI
;###########################################
;#
INITIALIZE S12X_INT
;###########################################
MOVB #(SCI_VEC&$F0), INT_CFADDR ;switch SCI interrupts to XGATE
MOVB #RQST|$01, INT_CFDATA+((SCI_VEC&$0F)>>1)
#
INIT_INT