📄 ucos_ii.s
字号:
; y -> R20
.even
_OSStart::
xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
lds R2,_OSRunning
tst R2
breq X4
xjmp L33
X4:
; #include <os_dbg.c>
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R20,Z
; #include <os_dbg.c>
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R30,z+0
clr R31
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
add R30,R24
adc R31,R25
lpm R22,Z
; #include <os_dbg.c>
mov R2,R22
clr R3
mov R4,R20
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
; #include <os_dbg.c>
mov R2,R4
sts _OSPrioCur,R2
; #include <os_dbg.c>
ldi R24,2
mul R24,R2
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
sts _OSTCBHighRdy+1,R3
sts _OSTCBHighRdy,R2
; #include <os_dbg.c>
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
; #include <os_dbg.c>
xcall _OSStartHighRdy
; #include <os_dbg.c>
L33:
L32:
xcall pop_gset2
.dbline 0 ; func end
ret
; cpu_sr -> R20
; ptcb -> R22,R23
.even
_OSTimeTick::
xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R20
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
lds R24,_OSRunning
cpi R24,1
breq X7
xjmp L36
X7:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
lds R22,_OSTCBList
lds R23,_OSTCBList+1
xjmp L39
L38:
; #include <os_dbg.c>
; #include <os_dbg.c>
xcall _OS_CPU_SR_Save
mov R20,R16
; #include <os_dbg.c>
movw R30,R22
ldd R2,z+6
ldd R3,z+7
tst R2
brne X5
tst R3
brne X8
xjmp L41
X8:
X5:
; #include <os_dbg.c>
movw R24,R22
adiw R24,6
movw R30,R24
ldd R24,z+0
ldd R25,z+1
sbiw R24,1
movw R4,R24
std z+1,R5
std z+0,R4
cpi R24,0
cpc R24,R25
breq X9
xjmp L43
X9:
X6:
; #include <os_dbg.c>
; #include <os_dbg.c>
movw R30,R22
ldd R24,z+8
andi R24,55
breq L45
; #include <os_dbg.c>
movw R24,R22
adiw R24,8
movw R30,R24
ldd R24,z+0
andi R24,200
std z+0,R24
; #include <os_dbg.c>
ldi R24,1
movw R30,R22
std z+9,R24
xjmp L46
L45:
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R2
movw R30,R22
std z+9,R2
; #include <os_dbg.c>
L46:
; #include <os_dbg.c>
; #include <os_dbg.c>
movw R30,R22
ldd R2,z+8
sbrc R2,3
rjmp L47
; #include <os_dbg.c>
movw R30,R22
ldd R2,z+14
lds R3,_OSRdyGrp
or R3,R2
sts _OSRdyGrp,R3
; #include <os_dbg.c>
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
movw R30,R22
ldd R2,z+12
clr R3
add R2,R24
adc R3,R25
movw R30,R22
ldd R4,z+13
movw R30,R2
ldd R5,z+0
or R5,R4
std z+0,R5
; #include <os_dbg.c>
L47:
; #include <os_dbg.c>
L43:
; #include <os_dbg.c>
L41:
movw R30,R22
ldd R22,z+2
ldd R23,z+3
mov R16,R20
xcall _OS_CPU_SR_Restore
L39:
movw R30,R22
ldd R24,z+10
cpi R24,8
breq X10
xjmp L38
X10:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
L36:
L35:
xcall pop_gset2
.dbline 0 ; func end
ret
.even
_OSVersion::
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
ldi R16,276
ldi R17,1
L49:
.dbline 0 ; func end
ret
.even
_OS_InitEventList:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
L50:
.dbline 0 ; func end
ret
.even
_OS_InitMisc:
xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R2
sts _OSIntNesting,R2
; #include <os_dbg.c>
sts _OSLockNesting,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
sts _OSTaskCtr,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
sts _OSRunning,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _OSCtxSwCtr+1,R21
sts _OSCtxSwCtr,R20
sts _OSCtxSwCtr+2+1,R23
sts _OSCtxSwCtr+2,R22
; #include <os_dbg.c>
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _OSIdleCtr+1,R21
sts _OSIdleCtr,R20
sts _OSIdleCtr+2+1,R23
sts _OSIdleCtr+2,R22
L51:
xcall pop_gset2
.dbline 0 ; func end
ret
; prdytbl -> R16,R17
; i -> R18
.even
_OS_InitRdyList:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R2
sts _OSRdyGrp,R2
; #include <os_dbg.c>
ldi R16,<_OSRdyTbl
ldi R17,>_OSRdyTbl
clr R18
xjmp L56
L53:
clr R2
movw R30,R16
st Z+,R2
movw R16,R30
L54:
inc R18
L56:
; #include <os_dbg.c>
cpi R18,2
brlo L53
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R2
sts _OSPrioCur,R2
; #include <os_dbg.c>
sts _OSPrioHighRdy,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
clr R3
sts _OSTCBHighRdy+1,R3
sts _OSTCBHighRdy,R2
; #include <os_dbg.c>
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
L52:
.dbline 0 ; func end
ret
.even
_OS_InitTaskIdle:
sbiw R28,3
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
ldi R24,8
std y+2,R24
ldi R24,<_OSTaskIdleStk+127
ldi R25,>_OSTaskIdleStk+127
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,<PL_OS_TaskIdle
ldi R17,>PL_OS_TaskIdle
xcall _OSTaskCreate
L57:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -