Blame | Last modification | View Log | Download | RSS feed
ifndef __52xxintcinc ; avoid multiple inclusion__52xxintcinc equ 1savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - File 52XXINTC.INC *;* *;* Contains SFR and Bit Definitions for ColdFire MCF52xx Interrupt *;* Controller(s) *;* *;****************************************************************************;----------------------------------------------------------------------------; Interrupt Controller 0ifdef MBAR_INTC0IPRH0 equ MBAR_INTC0+$00 ; Interrupt Pending Register High (32b)IPRL0 equ MBAR_INTC0+$04 ; Interrupt Pending Register Low (32b)IMRH0 equ MBAR_INTC0+$08 ; Interrupt Mask Register High (32b)IMRL0 equ MBAR_INTC0+$0c ; Interrupt Mask Register Low (32b)INTFRCH0 equ MBAR_INTC0+$10 ; Interrupt Force Register High (32b)INTFRCL0 equ MBAR_INTC0+$14 ; Interrupt Force Register Low (32b)ICONFIG equ MBAR_INTC0+$1a ; Interrupt Configuration Register (16b)ELVLPRI cffield ICONFIG,9,7 ; Enable core's priority elevation on priority levels.EMASK cfbit ICONFIG,5 ; Automatically load the level of an interrupt request into the CLMASK when the acknowledge is performed.SIMR0 equ MBAR_INTC0+$1c ; Set Interrupt Mask (8b)SALL cfbit SIMR0,6 ; Set all bits in the IMR0 registerSIMR cffield SIMR0,0,6 ; Set the corresponding bit in the IMR0 registerCIMR0 equ MBAR_INTC0+$1d ; Clear Interrupt Mask (8b)CALL cfbit CIMR0,6 ; Clear all bits in the IMR0 registerCIMR cffield CIMR0,0,6 ; Clear the corresponding bit in the IMR0 registerCLMASK equ MBAR_INTC0+$1e ; Current Level Mask (8b)SLMASK equ MBAR_INTC0+$1f ; Saved Level Mask (8b)__N set 0rept 64__decstr __NS,__NICR0{"\{__NS}"} equ MBAR_INTC0+$040+__N; Interrupt Control Register N (8b)LEVEL cffield ICR0{"\{__NS}"},0,3 ; Interrupt level.__N set __N+1endmSWIACK0 equ MBAR_INTC0+$e0 ; Software Interrupt Acknowledge (8b)__N set 1rept 6__decstr __NS,__NL{"\{__NS}"}IACK0 equ MBAR_INTC0+$e0+(4*__N) ; Interrupt Acknowledge Register N (8b)__N set __N+1endmendif ; ifdef MBAR_INTC0;----------------------------------------------------------------------------; Interrupt Controller 1ifdef MBAR_INTC1IPRH1 equ MBAR_INTC1+$00 ; Interrupt Pending Register High (32b)IPRL1 equ MBAR_INTC1+$04 ; Interrupt Pending Register Low (32b)IMRH1 equ MBAR_INTC1+$08 ; Interrupt Mask Register High (32b)IMRL1 equ MBAR_INTC1+$0c ; Interrupt Mask Register Low (32b)INTFRCH1 equ MBAR_INTC1+$10 ; Interrupt Force Register High (32b)INTFRCL1 equ MBAR_INTC1+$14 ; Interrupt Force Register Low (32b)SIMR1 equ MBAR_INTC1+$1c ; Set Interrupt Mask (8b)SALL cfbit SIMR1,6 ; Set all bits in the IMR1 registerSIMR cffield SIMR1,0,6 ; Set the corresponding bit in the IMR1 registerCIMR1 equ MBAR_INTC1+$1d ; Clear Interrupt Mask (8b)CALL cfbit CIMR1,6 ; Clear all bits in the IMR1 registerCIMR cffield CIMR1,0,6 ; Clear the corresponding bit in the IMR1 register__N set 1rept 63__decstr __NS,__NICR1{"\{__NS}"} equ MBAR_INTC1+$040+__N; Interrupt Control Register N (8b)LEVEL cffield ICR1{"\{__NS}"},0,3 ; Interrupt level.__N set __N+1endmSWIACK1 equ MBAR_INTC1+$e0 ; Software Interrupt Acknowledge (8b)__N set 1rept 7__decstr __NS,__NL{"\{__NS}"}IACK1 equ MBAR_INTC1+$e0+(4*__N) ; Interrupt Acknowledge Register N (8b)__N set __N+1endmendif ; ifdef MBAR_INTC1;----------------------------------------------------------------------------; Global IACK Registersifdef MBAR_INTCGSWIACK equ MBAR_INTC+$e0 ; Global Software Interrupt Acknowledge (8b)__N set 1rept 7__decstr __NS,__NGL{"\{__NS}"}IACK equ MBAR_INTC+$e0+(4*__N) ; Interrupt Acknowledge Register N (8b)__N set __N+1endmendif ; ifdef MBAR_INTC;----------------------------------------------------------------------------restore ; re-enable listingendif ; __52xxintcinc