📄 amisr_uart.src
字号:
;
; Copyright (c) Renesas Technology Corp. 2001-2003 All Rights Reserved.
;
; OEM Adaptation Layer
;
; ----------------------------------------------------------------------------
;
; FILE : AMISR_UART.SRC
; CREATED : 2001. 7. 5
; MODIFIED : 2003.08.06
; AUTHOR : Renesas Technology Corp.
; HARDWARE : RENESAS US7751-HRP1xC (BigSur with HD64404, ITS-DS2A),
; RENESAS HS7751RSTC01H (S1-E, ITS-DS5)
; TARGET OS : Microsoft(R) Windows(R) CE .NET 4.2
; NOTES :
; FUNCTION : Interrupt service routine for HD64404 UART and IrDA modules
; HISTORY :
; 2001. 7. 5
; - Initially created.
; 2001. 8.24
; - ISRs for all UART modules are implemented.
; 2002. 1.21
; - Address parameters are changed to refer "HD64404.INC".
; 2002. 5.30
; - Changed to include platform-independent platform include
; file "PLATFORM.INC".
; 2002. 9. 9
; - Header style is changed and file information is added.
; - SYSINTR symbols are renamed to match actual UART names.
; 2002.10.15
; - Codes related to HD64404 DMAC are removed and simple ISRs
; that masks each request by HD64404 interrupt priority module
; are implemented.
.include "kxshx.h"
.include "oalintr.inc"
.include "platform.inc"
.include "hd64404.inc"
.include "drv_glob.inc"
;
; ISR for each independent UART channel
;
LEAF_ENTRY HD64404_UART0ISR
mov.l #INTPRI_MASK, r0 ; Get address for HD64404 IRQ mask reg
mov.l @r0, r1 ; Get current interrupt mask
mov.l #IRQBIT_UART0, r2 ; Get register bit position for UART0
or r2, r1 ; Set mask bit for UART0
mov.l r1, @r0 ; Set new mask bits to IRQM register
rts ; Return with 1 delay slot
mov #SYSINTR_UART0_IR, r0 ; Set SYSINTR code
ENTRY_END
LEAF_ENTRY HD64404_UART1ISR
mov.l #INTPRI_MASK, r0 ; Get address for HD64404 IRQ mask reg
mov.l @r0, r1 ; Get current interrupt mask
mov.l #IRQBIT_UART1, r2 ; Get register bit position for UART1
or r2, r1 ; Set mask bit for UART1
mov.l r1, @r0 ; Set new mask bits to IRQM register
rts ; Return with 1 delay slot
mov #SYSINTR_UART1, r0 ; Set SYSINTR code
ENTRY_END
LEAF_ENTRY HD64404_UART2ISR
mov.l #INTPRI_MASK, r0 ; Get address for HD64404 IRQ mask reg
mov.l @r0, r1 ; Get current interrupt mask
mov.l #IRQBIT_UART2, r2 ; Get register bit position for UART2
or r2, r1 ; Set mask bit for UART2
mov.l r1, @r0 ; Set new mask bits to IRQM register
rts ; Return with 1 delay slot
mov #SYSINTR_UART2, r0 ; Set SYSINTR code
ENTRY_END
LEAF_ENTRY HD64404_UART3ISR
mov.l #INTPRI_MASK, r0 ; Get address for HD64404 IRQ mask reg
mov.l @r0, r1 ; Get current interrupt mask
mov.l #IRQBIT_UART3, r2 ; Get register bit position for UART3
or r2, r1 ; Set mask bit for UART3
mov.l r1, @r0 ; Set new mask bits to IRQM register
rts ; Return with 1 delay slot
mov #SYSINTR_UART3, r0 ; Set SYSINTR code
ENTRY_END
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -