📄 ucos_ii.s
字号:
; Pピ
movw R30,R20
st Z+,R2
.dbline 770
; Pピ
; Pピ
; Pピ
; Pピ
st Z+,R2
movw R20,R30
.dbline -2
L61:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ptbl 20 pc
.dbsym r pevent 16 pS[os_event]
.dbend
.dbfunc s OS_InitEventList _OS_InitEventList fV
; pevent2 -> R20,R21
; i -> R22,R23
; pevent1 -> R10,R11
.even
_OS_InitEventList:
xcall push_gset3
.dbline -1
.dbline 813
; 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 821
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
ldi R18,40
ldi R19,0
ldi R16,<_OSEventTbl
ldi R17,>_OSEventTbl
xcall _OS_MemClr
.dbline 822
; Pピ
ldi R24,<_OSEventTbl
ldi R25,>_OSEventTbl
movw R10,R24
.dbline 823
; Pピ
ldi R20,<_OSEventTbl+8
ldi R21,>_OSEventTbl+8
.dbline 824
clr R22
clr R23
xjmp L67
L64:
.dbline 824
.dbline 825
clr R2
movw R30,R10
std z+0,R2
.dbline 826
std z+5,R21
std z+4,R20
.dbline 831
movw R24,R10
adiw R24,8
movw R10,R24
.dbline 832
subi R20,248 ; offset = 8
sbci R21,255
.dbline 833
L65:
.dbline 824
subi R22,255 ; offset = 1
sbci R23,255
L67:
.dbline 824
; Pピ
cpi R22,4
ldi R30,0
cpc R23,R30
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
L62:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r pevent2 20 pS[os_event]
.dbsym r i 22 i
.dbsym r pevent1 10 pS[os_event]
.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ピ
; 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
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ピ
; 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
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ピ
; 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
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ピ
; 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,R10
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
L76:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r ptcb2 20 pS[os_tcb]
.dbsym r i 22 c
.dbsym r ptcb1 10 pS[os_tcb]
.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ピ
; 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
X12:
.dbline -2
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ピ
; 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
X13:
.dbline -2
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ピ
; 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 X14
xjmp L91
X14:
.dbline 1156
.dbline 1157
; Pピ
lds R2,_OSLockNesting
tst R2
breq X15
xjmp L93
X15:
.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 X16
xjmp L95
X16:
.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
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ピ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -