📄 ucos_ii.s
字号:
brlo L64
.dbline 834
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
clr R2
movw R30,R10
std z+0,R2
.dbline 835
; p
clr R3
std z+5,R3
std z+4,R2
.dbline 840
; p
; p
; p
; p
; p
ldi R24,<_OSEventTbl
ldi R25,>_OSEventTbl
sts _OSEventFreeList+1,R25
sts _OSEventFreeList,R24
.dbline -2
.dbline 851
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
L62:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r pevent2 20 pX
.dbsym r i 22 i
.dbsym r pevent1 10 pX
.dbend
.dbfunc s OS_InitMisc _OS_InitMisc fV
.even
_OS_InitMisc:
xcall push_gset2
.dbline -1
.dbline 867
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 872
; p
; p
; p
; p
; p
clr R2
sts _OSIntNesting,R2
.dbline 873
; p
sts _OSLockNesting,R2
.dbline 875
; p
; p
sts _OSTaskCtr,R2
.dbline 877
; p
; p
sts _OSRunning,R2
.dbline 879
; p
; p
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
.dbline 880
; p
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
.dbline -2
.dbline 887
; p
; p
; p
; p
; p
; p
; p
L68:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbend
.dbfunc s OS_InitRdyList _OS_InitRdyList fV
; prdytbl -> R16,R17
; i -> R18,R19
.even
_OS_InitRdyList:
.dbline -1
.dbline 903
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 908
; p
; p
; p
; p
; p
clr R2
sts _OSRdyGrp,R2
.dbline 909
; p
ldi R16,<_OSRdyTbl
ldi R17,>_OSRdyTbl
.dbline 910
clr R18
clr R19
xjmp L73
L70:
.dbline 910
.dbline 911
clr R2
movw R30,R16
st Z+,R2
movw R16,R30
.dbline 912
L71:
.dbline 910
subi R18,255 ; offset = 1
sbci R19,255
L73:
.dbline 910
; p
cpi R18,2
ldi R30,0
cpc R19,R30
brlo L70
.dbline 914
; p
; p
; p
; p
clr R2
sts _OSPrioCur,R2
.dbline 915
; p
sts _OSPrioHighRdy,R2
.dbline 917
; p
; p
clr R3
sts _OSTCBHighRdy+1,R3
sts _OSTCBHighRdy,R2
.dbline 918
; p
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
.dbline -2
.dbline 919
; p
L69:
.dbline 0 ; func end
ret
.dbsym r prdytbl 16 pc
.dbsym r i 18 i
.dbend
.dbfunc s OS_InitTaskIdle _OS_InitTaskIdle fV
.even
_OS_InitTaskIdle:
sbiw R28,3
.dbline -1
.dbline 936
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 961
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
ldi R24,8
std y+2,R24
ldi R24,<_OSTaskIdleStk+255
ldi R25,>_OSTaskIdleStk+255
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,<PL_OS_TaskIdle
ldi R17,>PL_OS_TaskIdle
xcall _OSTaskCreate
.dbline -2
.dbline 972
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
L74:
adiw R28,3
.dbline 0 ; func end
ret
.dbend
.dbfunc s OS_InitTCBList _OS_InitTCBList fV
; ptcb2 -> R20,R21
; i -> R22
; ptcb1 -> R10,R11
.even
_OS_InitTCBList:
xcall push_gset3
.dbline -1
.dbline 1042
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 1048
; p
; p
; p
; p
; p
; p
ldi R18,238
ldi R19,0
ldi R16,<_OSTCBTbl
ldi R17,>_OSTCBTbl
xcall _OS_MemClr
.dbline 1049
; p
ldi R18,18
ldi R19,0
ldi R16,<_OSTCBPrioTbl
ldi R17,>_OSTCBPrioTbl
xcall _OS_MemClr
.dbline 1050
; p
ldi R24,<_OSTCBTbl
ldi R25,>_OSTCBTbl
movw R10,R24
.dbline 1051
; p
ldi R20,<_OSTCBTbl+34
ldi R21,>_OSTCBTbl+34
.dbline 1052
clr R22
xjmp L81
L78:
.dbline 1052
.dbline 1053
movw R30,R10
std z+3,R21
std z+2,R20
.dbline 1058
movw R24,R30
adiw R24,34
movw R10,R24
.dbline 1059
subi R20,222 ; offset = 34
sbci R21,255
.dbline 1060
L79:
.dbline 1052
inc R22
L81:
.dbline 1052
; p
cpi R22,6
brlo L78
.dbline 1061
; p
; p
; p
; p
; p
; p
; p
; p
; p
clr R2
clr R3
movw R30,R10
std z+3,R3
std z+2,R2
.dbline 1066
; p
; p
; p
; p
; p
sts _OSTCBList+1,R3
sts _OSTCBList,R2
.dbline 1067
; p
ldi R24,<_OSTCBTbl
ldi R25,>_OSTCBTbl
sts _OSTCBFreeList+1,R25
sts _OSTCBFreeList,R24
.dbline -2
.dbline 1068
; p
L76:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r ptcb2 20 pX
.dbsym r i 22 c
.dbsym r ptcb1 10 pX
.dbend
.dbfunc e OS_MemClr _OS_MemClr fV
; size -> R18,R19
; pdest -> R16,R17
.even
_OS_MemClr::
.dbline -1
.dbline 1091
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
xjmp L84
L83:
.dbline 1092
.dbline 1093
clr R2
movw R30,R16
st Z+,R2
movw R16,R30
.dbline 1094
subi R18,1
sbci R19,0
.dbline 1095
L84:
.dbline 1092
; p
cpi R18,0
cpc R18,R19
brne L83
X11:
.dbline -2
.dbline 1096
; p
; p
; p
; p
L82:
.dbline 0 ; func end
ret
.dbsym r size 18 i
.dbsym r pdest 16 pc
.dbend
.dbfunc e OS_MemCopy _OS_MemCopy fV
; size -> R20,R21
; psrc -> R18,R19
; pdest -> R16,R17
.even
_OS_MemCopy::
xcall push_gset1
ldd R20,y+2
ldd R21,y+3
.dbline -1
.dbline 1123
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
xjmp L88
L87:
.dbline 1124
.dbline 1125
movw R30,R18
movw R26,R16
ld R0,Z+
movw R18,R30
st X+,R0
movw R16,R26
.dbline 1126
subi R20,1
sbci R21,0
.dbline 1127
L88:
.dbline 1124
; p
cpi R20,0
cpc R20,R21
brne L87
X12:
.dbline -2
.dbline 1128
; p
; p
; p
; p
L86:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r size 20 i
.dbsym r psrc 18 pc
.dbsym r pdest 16 pc
.dbend
.dbfunc e OS_Sched _OS_Sched fV
; y -> R12
; cpu_sr -> R10
.even
_OS_Sched::
xcall push_gset4
.dbline -1
.dbline 1148
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 1155
; p
; p
; p
; p
; p
; p
; p
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 1156
; p
lds R2,_OSIntNesting
tst R2
breq X13
xjmp L91
X13:
.dbline 1156
.dbline 1157
; p
lds R2,_OSLockNesting
tst R2
breq X14
xjmp L93
X14:
.dbline 1157
.dbline 1158
; p
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R12,Z
.dbline 1159
; p
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R12
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 R2,Z
clr R3
mov R4,R12
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
.dbline 1160
; p
lds R2,_OSPrioCur
cp R4,R2
brne X15
xjmp L95
X15:
.dbline 1160
.dbline 1161
; p
mov R2,R4
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
.dbline 1163
; p
; p
movw R24,R2
adiw R24,16
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R24
ldd R4,z+0
ldd R5,z+1
ldd R6,z+2
ldd R7,z+3
add R4,R20
adc R5,R21
adc R6,R22
adc R7,R23
std z+0,R4
std z+1,R5
std z+2,R6
std z+3,R7
.dbline 1165
; p
; p
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_OSCtxSwCtr+2
lds R5,_OSCtxSwCtr+2+1
lds R2,_OSCtxSwCtr
lds R3,_OSCtxSwCtr+1
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _OSCtxSwCtr+1,R3
sts _OSCtxSwCtr,R2
sts _OSCtxSwCtr+2+1,R5
sts _OSCtxSwCtr+2,R4
.dbline 1166
; p
xcall _OSCtxSw
.dbline 1167
; p
L95:
.dbline 1168
; p
L93:
.dbline 1169
; p
L91:
.dbline 1170
; p
mov R16,R10
xcall _OS_CPU_SR_Restore
.dbline -2
.dbline 1171
; p
L90:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r y 12 c
.dbsym r cpu_sr 10 c
.dbend
.dbfunc e OS_TaskIdle _OS_TaskIdle fV
; cpu_sr -> R10
; parg -> R10,R11
.even
_OS_TaskIdle::
xcall push_gset3
movw R10,R16
.dbline -1
.dbline 1261
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 1267
; p
; p
; p
; p
; p
; p
.dbline 1268
L98:
.dbline 1268
.dbline 1269
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 1270
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_OSIdleCtr+2
lds R5,_OSIdleCtr+2+1
lds R2,_OSIdleCtr
lds R3,_OSIdleCtr+1
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _OSIdleCtr+1,R3
sts _OSIdleCtr,R2
sts _OSIdleCtr+2+1,R5
sts _OSIdleCtr+2,R4
.dbline 1271
xcall _OS_CPU_SR_Restore
.dbline 1272
xcall _OSTaskIdleHook
.dbline 1273
.dbline 1268
.dbline 1268
xjmp L98
X16:
.dbline -2
L97:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r cpu_sr 10 c
.dbsym r parg 10 pV
.dbend
.dbfunc e OS_TCBInit _OS_TCBInit fc
; cpu_sr -> R10
; ptcb -> R12,R13
; opt -> y+22
; pext -> y+20
; stk_size -> y+16
; id -> y+14
; pbos -> y+12
; ptos -> y+10
; prio -> R14
.even
_OS_TCBInit::
st -y,r19
st -y,r18
xcall push_gset5
mov R14,R16
.dbline -1
.dbline 1428
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -