📄 ucos.lst
字号:
0366 925A ST R5,-Y
0367 926A ST R6,-Y
0368 927A ST R7,-Y
0369 928A ST R8,-Y
036A 929A ST R9,-Y
036B 92AA ST R10,-Y
036C 92BA ST R11,-Y
036D 92CA ST R12,-Y
036E 92DA ST R13,-Y
036F 92EA ST R14,-Y
0370 92FA ST R15,-Y
0371 930A ST R16,-Y
0372 931A ST R17,-Y
0373 932A ST R18,-Y
0374 933A ST R19,-Y
0375 934A ST R20,-Y
0376 935A ST R21,-Y
0377 936A ST R22,-Y
0378 937A ST R23,-Y
0379 938A ST R24,-Y
037A 939A ST R25,-Y
037B 93AA ST R26,-Y
037C 93BA ST R27,-Y
037D 93EA ST R30,-Y
037E 93FA ST R31,-Y
037F B70B IN R16,P3B
0380 930A ST R16,-Y
(0318)
(0319) ;/*$PAGE*/.
(0320) ;********************************************************************************************************
(0321) ; SYSTEM TICK ISR
(0322) ;
(0323) ; Description : This function is the ISR used to notify uC/OS-II that a system tick has occurred.
(0324) ;
(0325) ; The following C-like pseudo-code describe the operation being performed in the code below.
(0326) ;
(0327) ; Save all registers on the current task's stack:
(0328) ; Use the PUSH_ALL macro
(0329) ; Get the SREG, set Bit #7 and save onto the task's stack using -Y addressing
(0330) ; Use the PUSH_SP macro to save the task's hardware stack pointer onto the current task's stack
(0331) ; OSIntNesting++;
(0332) ; if (OSIntNesting == 1) {
(0333) ; OSTCBCur->OSTCBStkPtr = SP
(0334) ; }
(0335) ; Clear the interrupt; Not needed for the timer we used.
(0336) ; OSTimeTick(); Notify uC/OS-II that a tick has occured
(0337) ; OSIntExit(); Notify uC/OS-II about end of ISR
(0338) ; Restore all registers that were save on the current task's stack:
(0339) ; Use the POP_SP macro to restore the task's hardware stack pointer
(0340) ; Use the POP_SREG macro to restore the SREG register
(0341) ; Use the POP_ALL macro to restore the remaining registers
(0342) ; Return (DO NOT use a RETI instruction);
(0343) ;********************************************************************************************************
(0344)
(0345) _OSTickISR::
(0346) PUSH_ALL ; Save all registers and status register
(0347) IN R16,SREG ; Save the SREG but with interrupts enabled
0381 B70F IN R16,P3F
(0348) SBR R16,BIT07
0382 6800 ORI R16,0x80
(0349) ST -Y,R16
0383 930A ST R16,-Y
0384 B70E IN R16,P3E
0385 930A ST R16,-Y
0386 B70D IN R16,P3D
0387 930A ST R16,-Y
(0350) PUSH_SP ; Save the task's hardware stack pointer onto task's stack
(0351)
(0352) LDS R16,_OSIntNesting ; Notify uC/OS-II of ISR
0388 91000BB7 LDS R16,_OSIntNesting
(0353) INC R16 ;
038A 9503 INC R16
(0354) STS _OSIntNesting,R16 ;
038B 93000BB7 STS R16,_OSIntNesting
(0355)
(0356) CPI R16,1 ; if (OSIntNesting == 1) {
038D 3001 CPI R16,1
(0357) BRNE OSTickISR_1
038E F431 BNE 0x0395
(0358)
(0359) LDS R30,_OSTCBCur ; OSTCBCur->OSTCBStkPtr = Y
038F 91E00AA9 LDS R30,_OSTCBCur
(0360) LDS R31,_OSTCBCur+1
0391 91F00AAA LDS R31,_OSTCBCur+1
(0361) ST Z+,R28
0393 93C1 ST R28,Z+
(0362) ST Z+,R29 ; }
0394 93D1 ST R29,Z+
(0363)
(0364) OSTickISR_1:
(0365) CALL _OSTickISR_Handler ; Handle the tick ISR
0395 940E0DE8 CALL _OSTickISR_Handler
(0366)
(0367) CALL _OSIntExit ; Notify uC/OS-II about end of ISR
0397 940E196A CALL _OSIntExit
0399 9109 LD R16,Y+
039A BF0D OUT P3D,R16
039B 9109 LD R16,Y+
039C BF0E OUT P3E,R16
039D 9109 LD R16,Y+
039E BF0F OUT P3F,R16
039F 9109 LD R16,Y+
03A0 BF0B OUT P3B,R16
03A1 91F9 LD R31,Y+
03A2 91E9 LD R30,Y+
03A3 91B9 LD R27,Y+
03A4 91A9 LD R26,Y+
03A5 9199 LD R25,Y+
03A6 9189 LD R24,Y+
03A7 9179 LD R23,Y+
03A8 9169 LD R22,Y+
03A9 9159 LD R21,Y+
03AA 9149 LD R20,Y+
03AB 9139 LD R19,Y+
03AC 9129 LD R18,Y+
03AD 9119 LD R17,Y+
03AE 9109 LD R16,Y+
03AF 90F9 LD R15,Y+
03B0 90E9 LD R14,Y+
03B1 90D9 LD R13,Y+
03B2 90C9 LD R12,Y+
03B3 90B9 LD R11,Y+
03B4 90A9 LD R10,Y+
03B5 9099 LD R9,Y+
03B6 9089 LD R8,Y+
03B7 9079 LD R7,Y+
03B8 9069 LD R6,Y+
03B9 9059 LD R5,Y+
03BA 9049 LD R4,Y+
03BB 9039 LD R3,Y+
03BC 9029 LD R2,Y+
03BD 9019 LD R1,Y+
03BE 9009 LD R0,Y+
(0368)
(0369) POP_SP ; Restore the hardware stack pointer from task's stack
(0370) POP_SREG ; Restore the SREG register
(0371) POP_ALL ; Restore all registers
(0372)
(0373) RET ; Note: RET instead of RETI
FILE: <library>
03BF 9508 RET
_OSInitHookBegin:
03C0 9508 RET
_OSInitHookEnd:
03C1 9508 RET
_OSTaskCreateHook:
03C2 9508 RET
_OSTaskDelHook:
03C3 9508 RET
_OSTaskIdleHook:
03C4 9508 RET
_OSTaskStatHook:
03C5 9508 RET
_OSTaskStkInit:
03C6 940E274F CALL push_gset3
03C8 814E LDD R20,6+Y
03C9 815F LDD R21,7+Y
03CA 90200305 LDS R2,_OSTaskStkSize
03CC 90300306 LDS R3,_OSTaskStkSize+1
03CE 804E LDD R4,6+Y
03CF 805F LDD R5,7+Y
03D0 1842 SUB R4,R2
03D1 0853 SBC R5,R3
03D2 90A00303 LDS R10,_OSTaskHardStkSize
03D4 90B00304 LDS R11,_OSTaskHardStkSize+1
03D6 0CA4 ADD R10,R4
03D7 1CB5 ADC R11,R5
03D8 01F8 MOVW R30,R16
03D9 9165 LD R22,R22
03DA 9174 LD R23,R23
03DB 0115 MOVW R2,R10
03DC 01C1 MOVW R24,R2
03DD 9701 SBIW R24,1
03DE 01F1 MOVW R30,R2
03DF 8360 STD R22,0+Z
03E0 011C MOVW R2,R24
03E1 9701 SBIW R24,1
03E2 015C MOVW R10,R24
03E3 012B MOVW R4,R22
03E4 2C45 MOV R4,R5
03E5 2455 CLR R5
03E6 01F1 MOVW R30,R2
03E7 8240 STD R4,0+Z
03E8 011A MOVW R2,R20
03E9 5041 SUBI R20,1
03EA 4050 SBCI R21,0
03EB 2444 CLR R4
03EC 01F1 MOVW R30,R2
03ED 8240 STD R4,0+Z
03EE 011A MOVW R2,R20
03EF 5041 SUBI R20,1
03F0 4050 SBCI R21,0
03F1 E081 LDI R24,1
03F2 01F1 MOVW R30,R2
03F3 8380 STD R24,0+Z
03F4 011A MOVW R2,R20
03F5 5041 SUBI R20,1
03F6 4050 SBCI R21,0
03F7 E082 LDI R24,2
03F8 01F1 MOVW R30,R2
03F9 8380 STD R24,0+Z
03FA 011A MOVW R2,R20
03FB 5041 SUBI R20,1
03FC 4050 SBCI R21,0
03FD E083 LDI R24,3
03FE 01F1 MOVW R30,R2
03FF 8380 STD R24,0+Z
0400 011A MOVW R2,R20
0401 5041 SUBI R20,1
0402 4050 SBCI R21,0
0403 E084 LDI R24,4
0404 01F1 MOVW R30,R2
0405 8380 STD R24,0+Z
0406 011A MOVW R2,R20
0407 5041 SUBI R20,1
0408 4050 SBCI R21,0
0409 E085 LDI R24,5
040A 01F1 MOVW R30,R2
040B 8380 STD R24,0+Z
040C 011A MOVW R2,R20
040D 5041 SUBI R20,1
040E 4050 SBCI R21,0
040F E086 LDI R24,6
0410 01F1 MOVW R30,R2
0411 8380 STD R24,0+Z
0412 011A MOVW R2,R20
0413 5041 SUBI R20,1
0414 4050 SBCI R21,0
0415 E087 LDI R24,7
0416 01F1 MOVW R30,R2
0417 8380 STD R24,0+Z
0418 011A MOVW R2,R20
0419 5041 SUBI R20,1
041A 4050 SBCI R21,0
041B E088 LDI R24,0x8
041C 01F1 MOVW R30,R2
041D 8380 STD R24,0+Z
041E 011A MOVW R2,R20
041F 5041 SUBI R20,1
0420 4050 SBCI R21,0
0421 E089 LDI R24,0x9
0422 01F1 MOVW R30,R2
0423 8380 STD R24,0+Z
0424 011A MOVW R2,R20
0425 5041 SUBI R20,1
0426 4050 SBCI R21,0
0427 E180 LDI R24,0x10
0428 01F1 MOVW R30,R2
0429 8380 STD R24,0+Z
042A 011A MOVW R2,R20
042B 5041 SUBI R20,1
042C 4050 SBCI R21,0
042D E181 LDI R24,0x11
042E 01F1 MOVW R30,R2
042F 8380 STD R24,0+Z
0430 011A MOVW R2,R20
0431 5041 SUBI R20,1
0432 4050 SBCI R21,0
0433 E182 LDI R24,0x12
0434 01F1 MOVW R30,R2
0435 8380 STD R24,0+Z
0436 011A MOVW R2,R20
0437 5041 SUBI R20,1
0438 4050 SBCI R21,0
0439 E183 LDI R24,0x13
043A 01F1 MOVW R30,R2
043B 8380 STD R24,0+Z
043C 011A MOVW R2,R20
043D 5041 SUBI R20,1
043E 4050 SBCI R21,0
043F E184 LDI R24,0x14
0440 01F1 MOVW R30,R2
0441 8380 STD R24,0+Z
0442 011A MOVW R2,R20
0443 5041 SUBI R20,1
0444 4050 SBCI R21,0
0445 E185 LDI R24,0x15
0446 01F1 MOVW R30,R2
0447 8380 STD R24,0+Z
0448 01B9 MOVW R22,R18
0449 011A MOVW R2,R20
044A 5041 SUBI R20,1
044B 4050 SBCI R21,0
044C 01F1 MOVW R30,R2
044D 8360 STD R22,0+Z
044E 011A MOVW R2,R20
044F 5041 SUBI R20,1
0450 4050 SBCI R21,0
0451 012B MOVW R4,R22
0452 2C45 MOV R4,R5
0453 2455 CLR R5
0454 01F1 MOVW R30,R2
0455 8240 STD R4,0+Z
0456 011A MOVW R2,R20
0457 5041 SUBI R20,1
0458 4050 SBCI R21,0
0459 E188 LDI R24,0x18
045A 01F1 MOVW R30,R2
045B 8380 STD R24,0+Z
045C 011A MOVW R2,R20
045D 5041 SUBI R20,1
045E 4050 SBCI R21,0
045F E189 LDI R24,0x19
0460 01F1 MOVW R30,R2
0461 8380 STD R24,0+Z
0462 011A MOVW R2,R20
0463 5041 SUBI R20,1
0464 4050 SBCI R21,0
0465 E280 LDI R24,0x20
0466 01F1 MOVW R30,R2
0467 8380 STD R24,0+Z
0468 011A MOVW R2,R20
0469 5041 SUBI R20,1
046A 4050 SBCI R21,0
046B E281 LDI R24,0x21
046C 01F1 MOVW R30,R2
046D 8380 STD R24,0+Z
046E 011A MOVW R2,R20
046F 5041 SUBI R20,1
0470 4050 SBCI R21,0
0471 E282 LDI R24,0x22
0472 01F1 MOVW R30,R2
0473 8380 STD R24,0+Z
0474 011A MOVW R2,R20
0475 5041 SUBI R20,1
0476 4050 SBCI R21,0
0477 E283 LDI R24,0x23
0478 01F1 MOVW R30,R2
0479 8380 STD R24,0+Z
047A 011A MOVW R2,R20
047B 5041 SUBI R20,1
047C 4050 SBCI R21,0
047D E284 LDI R24,0x24
047E 01F1 MOVW R30,R2
047F 8380 STD R24,0+Z
0480 011A MOVW R2,R20
0481 5041 SUBI R20,1
0482 4050 SBCI R21,0
0483 E285 LDI R24,0x25
0484 01F1 MOVW R30,R2
0485 8380 STD R24,0+Z
0486 011A MOVW R2,R20
0487 5041 SUBI R20,1
0488 4050 SBCI R21,0
0489 E286 LDI R24,0x26
048A 01F1 MOVW R30,R2
048B 8380 STD R24,0+Z
048C 011A MOVW R2,R20
048D 5041 SUBI R20,1
048E 4050 SBCI R21,0
048F E287 LDI R24,0x27
0490 01F1 MOVW R30,R2
0491 8380 STD R24,0+Z
0492 011A MOVW R2,R20
0493 5041 SUBI R20,1
0494 4050 SBCI R21,0
0495 E380 LDI R24,0x30
0496 01F1 MOVW R30,R2
0497 8380 STD R24,0+Z
0498 011A MOVW R2,R20
0499 5041 SUBI R20,1
049A 4050 SBCI R21,0
049B E381 LDI R24,0x31
049C 01F1 MOVW R30,R2
049D 8380 STD R24,0+Z
049E 011A MOVW R2,R20
049F 5041 SUBI R20,1
04A0 4050 SBCI R21,0
04A1 2444 CLR R4
04A2 01F1 MOVW R30,R2
04A3 8240 STD R4,0+Z
04A4 011A MOVW R2,R20
04A5 5041 SUBI R20,1
04A6 4050 SBCI R21,0
04A7 E880 LDI R24,0x80
04A8 01F1 MOVW R30,R2
04A9 8380 STD R24,0+Z
04AA 01B5 MOVW R22,R10
04AB 011A MOVW R2,R20
04AC 5041 SUBI R20,1
04AD 4050 SBCI R21,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -