You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
Plaintext
48 lines
1.2 KiB
Plaintext
RSEG ICODE:CODE
|
|
|
|
EXTERN vUARTRxISRHandler
|
|
EXTERN vUARTTxISRHandler
|
|
|
|
PUBLIC vUARTRxISRWrapper
|
|
PUBLIC vUARTTxISRWrapper
|
|
|
|
; Wrappers for the serial port interrupt service routines. These can cause a
|
|
; context switch so requires an assembly wrapper.
|
|
|
|
; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
|
|
#include "ISR_Support.h"
|
|
|
|
vUARTRxISRWrapper:
|
|
|
|
portSAVE_CONTEXT ; Save the context of the current task.
|
|
|
|
jarl vUARTRxISRHandler, lp ; Call the ISR routine.
|
|
|
|
portRESTORE_CONTEXT ; Restore the context of the current task -
|
|
; which may be different to the task that
|
|
; was interrupted.
|
|
|
|
vUARTTxISRWrapper:
|
|
|
|
portSAVE_CONTEXT ; Save the context of the current task.
|
|
|
|
jarl vUARTTxISRHandler, lp ; Call the ISR routine.
|
|
|
|
portRESTORE_CONTEXT ; Restore the context of the current task -
|
|
; which may be different to the task that
|
|
; was interrupted.
|
|
|
|
|
|
COMMON INTVEC:CODE:ROOT(2)
|
|
ORG 2c0H
|
|
`??vUARTRxISRWrapper??INTVEC 2c0`:
|
|
JR vUARTRxISRWrapper
|
|
|
|
COMMON INTVEC:CODE:ROOT(2)
|
|
ORG 2d0H
|
|
`??vUARTTxISRWrapper??INTVEC 2d0`:
|
|
JR vUARTTxISRWrapper
|
|
|
|
END
|
|
|