|
发表于 2007-4-30 15:21:47
|
显示全部楼层
SAdcISR_1:
CALL _adc_isr ; Handle the tick ISR
CALL _OSIntExit ; Notify uC/OS-II about end of ISR
POP_SP ; Restore the hardware stack pointer from task's stack
POP_SREG ; Restore the SREG register
POP_ALL ; Restore all registers
RET ; Note: RET instead of RETI
;
;
;
;
;
;
_OSUart1ISR::
PUSH_ALL ; Save all registers and status register
IN R16,SREG ; Save the SREG but with interrupts enabled
SBR R16,BIT07
ST -Y,R16
PUSH_SP
CALL _OSIntEnter
;LDS R16,_OSIntNesting ; Notify uC/OS-II of ISR
;INC R16 ;
;STS _OSIntNesting,R16 ;
CPI R16,1 ; if (OSIntNesting == 1) {
BRNE OSUart1ISR_1
LDS R30,_OSTCBCur ; OSTCBCur->OSTCBStkPtr = Y
LDS R31,_OSTCBCur+1
ST Z+,R28
ST Z+,R29 ; }
OSUart1ISR_1:
CALL _uart1_rx_isr ; Handle the tick ISR
CALL _OSIntExit ; Notify uC/OS-II about end of ISR
POP_SP ; Restore the hardware stack pointer from task's stack
POP_SREG ; Restore the SREG register
POP_ALL ; Restore all registers
RET ; Note: RET instead of RETI |
|