English
Language : 

MC9S12XD256MAL Datasheet, PDF (293/1348 Pages) Freescale Semiconductor, Inc – Freescale’s Scalable Controller Area Network
Chapter 6 XGATE (S12XGATEV2)
INIT_XGATE
;###########################################
;#
INITIALIZE XGATE
#
;###########################################
MOVW #XGMCTL_CLEAR , XGMCTL;clear all XGMCTL bits
INIT_XGATE_BUSY_LOOP
TST XGCHID
;wait until current thread is finished
BNE INIT_XGATE_BUSY_LOOP
LDX #XGIF
LDD #$FFFF
STD 2,X+
STD 2,X+
STD 2,X+
STD 2,X+
STD 2,X+
STD 2,X+
STD 2,X+
STD 2,X+
;clear all channel interrupt flags
MOVW #XGATE_VECTORS_XG, XGVBR;set vector base register
MOVW #$FF00, XGSWT ;clear all software triggers
INIT_XGATE_VECTAB_LOOP
;###########################################
;#
INITIALIZE XGATE VECTOR TABLE
#
;###########################################
LDAA #128
;build XGATE vector table
LDY #XGATE_VECTORS
MOVW #XGATE_DUMMY_ISR_XG, 4,Y+
DBNE A, INIT_XGATE_VECTAB_LOOP
COPY_XGATE_CODE
COPY_XGATE_CODE_LOOP
MOVW #XGATE_CODE_XG, RAM_START+(2*SCI_VEC)
MOVW #XGATE_DATA_XG, RAM_START+(2*SCI_VEC)+2
;###########################################
;#
COPY XGATE CODE
#
;###########################################
LDX #XGATE_DATA_FLASH
MOVW 2,X+, 2,Y+
MOVW 2,X+, 2,Y+
MOVW 2,X+, 2,Y+
MOVW 2,X+, 2,Y+
CPX #XGATE_CODE_FLASH_END
BLS COPY_XGATE_CODE_LOOP
START_XGATE
;###########################################
;#
START XGATE
#
;###########################################
MOVW #XGMCTL_ENABLE, XGMCTL;enable XGATE
BRA *
DUMMY_ISR
;###########################################
;#
DUMMY INTERRUPT SERVICE ROUTINE
#
;###########################################
RTI
CPU XGATE
MC9S12XDP512 Data Sheet, Rev. 2.21
Freescale Semiconductor
293