📄 ucos_ii.s
字号:
ldd R24,z+0
cpi R24,3
breq L148
.dbline 334
.dbline 335
ldi R16,1
xjmp L147
L148:
.dbline 337
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 338
movw R30,R22
ldd R2,z+1
tst R2
breq L150
.dbline 338
.dbline 339
ldi R24,1
std y+0,R24
clr R18
clr R19
movw R16,R30
xcall _OS_EventTaskRdy
.dbline 340
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 341
xcall _OS_Sched
.dbline 342
clr R16
xjmp L147
L150:
.dbline 344
movw R30,R22
ldd R24,z+2
ldd R25,z+3
st -y,R30
cpi R24,255
ldi R30,255
cpc R25,R30
ld R30,y+
brsh L152
.dbline 344
.dbline 345
adiw R30,2
ldd R24,z+0
ldd R25,z+1
adiw R24,1
std z+1,R25
std z+0,R24
.dbline 346
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 347
clr R16
xjmp L147
L152:
.dbline 349
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 350
ldi R16,50
.dbline -2
L147:
adiw R28,1
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbsym r pevent 22 pX
.dbend
.dbfunc e OSSemQuery _OSSemQuery fc
; cpu_sr -> R20
; pdest -> R12,R13
; psrc -> R14,R15
; p_sem_data -> R22,R23
; pevent -> R10,R11
.even
_OSSemQuery::
xcall push_gset5
movw R22,R18
movw R10,R16
.dbline -1
.dbline 373
.dbline 386
movw R30,R10
ldd R24,z+0
cpi R24,3
breq L155
.dbline 386
.dbline 387
ldi R16,1
xjmp L154
L155:
.dbline 389
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 390
movw R30,R10
ldd R2,z+1
movw R30,R22
std z+4,R2
.dbline 391
movw R24,R10
adiw R24,6
movw R14,R24
.dbline 392
movw R24,R30
adiw R24,2
.dbline 394
movw R30,R14
movw R26,R24
ld R0,Z+
st X+,R0
.dbline 398
ld R0,Z+
movw R14,R30
st X+,R0
movw R12,R26
.dbline 424
movw R30,R10
ldd R2,z+2
ldd R3,z+3
movw R30,R22
std z+1,R3
std z+0,R2
.dbline 425
xcall _OS_CPU_SR_Restore
.dbline 426
clr R16
.dbline -2
L154:
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbsym r pdest 12 pc
.dbsym r psrc 14 pc
.dbsym r p_sem_data 22 pX
.dbsym r pevent 10 pX
.dbend
.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_task.c
.dbfunc e OSTaskChangePrio _OSTaskChangePrio fc
; pevent -> R10,R11
; bity -> R12
; bitx -> R22
; x -> R14
; cpu_sr -> y+1
; y_old -> R20
; y -> y+0
; ptcb -> R6,R7
; newprio -> y+12
; oldprio -> R20
.even
_OSTaskChangePrio::
st -y,r19
st -y,r18
xcall push_gset5
mov R20,R16
sbiw R28,2
.dbline -1
.dbline 41
.dbline 68
xcall _OS_CPU_SR_Save
std y+1,R16
.dbline 69
ldi R24,2
ldd R0,y+12
mul R24,R0
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
tst R2
brne X27
tst R3
breq L158
X27:
.dbline 69
.dbline 70
ldd R16,y+1
xcall _OS_CPU_SR_Restore
.dbline 71
ldi R16,40
xjmp L157
L158:
.dbline 73
cpi R20,255
brne L160
.dbline 73
.dbline 74
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R20,z+11
.dbline 75
L160:
.dbline 76
ldi R24,2
mul R24,R20
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldd R6,z+0
ldd R7,z+1
.dbline 77
tst R6
brne L162
tst R7
brne L162
X28:
.dbline 77
.dbline 78
ldd R16,y+1
push R6
push R7
xcall _OS_CPU_SR_Restore
pop R7
pop R6
.dbline 79
ldi R16,41
xjmp L157
L162:
.dbline 81
ldd R2,y+12
lsr R2
lsr R2
lsr R2
std y+0,R2
.dbline 82
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
mov R30,R2
clr R31
add R30,R24
adc R31,R25
lpm R12,Z
.dbline 83
ldd R24,y+12
andi R24,7
mov R14,R24
.dbline 84
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
mov R30,R14
clr R31
add R30,R24
adc R31,R25
lpm R22,Z
.dbline 85
ldi R24,2
mul R24,R20
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
clr R2
clr R3
std z+1,R3
std z+0,R2
.dbline 86
ldi R24,2
ldd R0,y+12
mul R24,R0
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
std z+1,R7
std z+0,R6
.dbline 87
movw R30,R6
ldd R20,z+13
.dbline 88
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R30,R6
ldd R3,z+14
and R2,R3
brne X30
xjmp L164
X30:
.dbline 88
.dbline 89
mov R2,R20
clr R3
add R2,R24
adc R3,R25
ldd R4,z+14
com R4
movw R30,R2
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 90
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L166
.dbline 90
.dbline 91
movw R30,R6
ldd R2,z+15
com R2
lds R3,_OSRdyGrp
and R3,R2
sts _OSRdyGrp,R3
.dbline 92
L166:
.dbline 93
lds R2,_OSRdyGrp
or R2,R12
sts _OSRdyGrp,R2
.dbline 94
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
ldd R2,y+0
clr R3
add R2,R24
adc R3,R25
movw R30,R2
ldd R4,z+0
or R4,R22
std z+0,R4
.dbline 96
xjmp L165
L164:
.dbline 96
.dbline 97
movw R30,R6
ldd R10,z+6
ldd R11,z+7
.dbline 98
tst R10
brne X29
tst R11
brne X31
xjmp L168
X31:
X29:
.dbline 98
.dbline 99
movw R24,R10
adiw R24,6
mov R2,R20
clr R3
add R2,R24
adc R3,R25
movw R30,R6
ldd R4,z+14
com R4
movw R30,R2
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 100
movw R24,R10
adiw R24,6
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L170
.dbline 100
.dbline 101
movw R24,R10
adiw R24,1
movw R30,R6
ldd R4,z+15
com R4
movw R30,R24
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 102
L170:
.dbline 103
movw R24,R10
adiw R24,1
movw R30,R24
ldd R4,z+0
or R4,R12
std z+0,R4
.dbline 104
movw R24,R10
adiw R24,6
ldd R2,y+0
clr R3
add R2,R24
adc R3,R25
movw R30,R2
ldd R4,z+0
or R4,R22
std z+0,R4
.dbline 105
L168:
.dbline 107
L165:
.dbline 108
movw R30,R6
ldd R0,y+12
std z+11,R0
.dbline 109
ldd R0,y+0
std z+13,R0
.dbline 110
std z+12,R14
.dbline 111
std z+15,R12
.dbline 112
std z+14,R22
.dbline 113
ldd R16,y+1
xcall _OS_CPU_SR_Restore
.dbline 114
xcall _OS_Sched
.dbline 115
clr R16
.dbline -2
L157:
adiw R28,2
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r pevent 10 pX
.dbsym r bity 12 c
.dbsym r bitx 22 c
.dbsym r x 14 c
.dbsym l cpu_sr 1 c
.dbsym r y_old 20 c
.dbsym l y 0 c
.dbsym r ptcb 6 pX
.dbsym l newprio 12 c
.dbsym r oldprio 20 c
.dbend
.dbfunc e OSTaskCreate _OSTaskCreate fc
; psp -> R12,R13
; err -> R12
; cpu_sr -> R10
; prio -> R14
; ptos -> y+24
; p_arg -> y+22
; task -> R12,R13
.even
_OSTaskCreate::
st -y,r19
st -y,r18
xcall push_gset5
movw R12,R16
sbiw R28,12
ldd R14,y+26
.dbline -1
.dbline 160
.dbline 173
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 174
ldi R24,2
mul R24,R14
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
tst R2
breq X33
xjmp L173
X33:
tst R3
breq X34
xjmp L173
X34:
X32:
.dbline 174
.dbline 175
ldi R24,2
mul R24,R14
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldi R24,1
ldi R25,0
std z+1,R25
std z+0,R24
.dbline 177
mov R16,R10
xcall _OS_CPU_SR_Restore
.dbline 178
clr R2
clr R3
std y+3,R3
std y+2,R2
ldd R0,y+24
ldd R1,y+25
std y+1,R1
std y+0,R0
ldd R18,y+22
ldd R19,y+23
movw R16,R12
xcall _OSTaskStkInit
movw R12,R16
.dbline 179
clr R2
clr R3
std y+11,R3
std y+10,R2
std y+9,R3
std y+8,R2
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
std y+4,R20
std y+5,R21
std y+6,R22
std y+7,R23
std y+3,R3
std y+2,R2
std y+1,R3
std y+0,R2
movw R18,R12
mov R16,R14
xcall _OS_TCBInit
mov R12,R16
.dbline 180
tst R16
brne L175
.dbline 180
.dbline 181
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 182
lds R24,_OSTaskCtr
subi R24,255 ; addi 1
sts _OSTaskCtr,R24
.dbline 183
xcall _OS_CPU_SR_Restore
.dbline 184
lds R24,_OSRunning
cpi R24,1
brne L176
.dbline 184
.dbline 185
xcall _OS_Sched
.dbline 186
.dbline 187
xjmp L176
L175:
.dbline 187
.dbline 188
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 189
ldi R24,2
mul R24,R14
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
clr R2
clr R3
std z+1,R3
std z+0,R2
.dbline 190
xcall _OS_CPU_SR_Restore
.dbline 191
L176:
.dbline 192
mov R16,R12
xjmp L172
L173:
.dbline 194
mov R16,R10
xcall _OS_CPU_SR_Restore
.dbline 195
ldi R16,40
.dbline -2
L172:
adiw R28,12
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r psp 12 pc
.dbsym r err 12 c
.dbsym r cpu_sr 10 c
.dbsym r prio 14 c
.dbsym l ptos 24 pc
.dbsym l p_arg 22 pV
.dbsym r task 12 pfV
.dbend
.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_time.c
.dbfunc e OSTimeDly _OSTimeDly fV
; cpu_sr -> R20
; y -> R10
; ticks -> R22,R23
.even
_OSTimeDly::
xcall push_gset3
movw R22,R16
.dbline -1
.dbline 36
.dbline 43
cpi R22,0
cpc R22,R23
brne X36
xjmp L180
X36:
X35:
.dbline 43
.dbline 44
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 45
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R10,z+13
.dbline 46
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R2,R10
clr R3
add R2,R24
adc R3,R25
ldd R4,z+14
com R4
movw R30,R2
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 47
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L182
.dbline 47
.dbline 48
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R2,z+15
com R2
lds R3,_OSRdyGrp
and R3,R2
sts _OSRdyGrp,R3
.dbline 49
L182:
.dbline 50
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
std z+9,R23
std z+8,R22
.dbline 51
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 52
xcall _OS_Sched
.dbline 53
L180:
.dbline -2
.dbline 54
L179:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbsym r y 10 c
.dbsym r ticks 22 i
.dbend
.dbfunc e OSTimeDlyHMSM _OSTimeDlyHMSM fc
; ticks -> y+0
; loops -> R10,R11
; milli -> y+14
; seconds -> y+12
; minutes -> R12
; hours -> R10
.even
_OSTimeDlyHMSM::
xcall push_gset4
mov R12,R18
mov R10,R16
sbiw R28,4
.dbline -1
.dbline 83
.dbline 88
tst R10
brne L185
.dbline 88
.dbline 89
tst R12
brne L187
.dbline 89
.dbline 90
ldd R0,y+12
tst R0
brne L189
.dbline 90
.dbline 91
ldd R0,y+14
ldd R1,y+15
tst R0
brne L191
tst R1
brne L191
X37:
.dbline 91
.dbline 92
ldi R16,84
xjmp L184
L191:
.dbline 94
L189:
.dbline 95
L187:
.dbline 96
L185:
.dbline 97
ldi R24,59
cp R24,R12
brsh L193
.dbline 97
.dbline 98
ldi R16,81
xjmp L184
L193:
.dbline 100
ldi R24,59
ldd R0,y+12
cp R24,R0
brsh L195
.dbline 100
.dbline 101
ldi R16,82
xjmp L184
L195:
.dbline 103
ldi R24,999
ldi R25,3
ldd R0,y+14
ldd R1,y+15
cp R24,R0
cpc R25,R1
brsh L197
.dbline 103
.dbline 104
ldi R16,83
xjmp L184
L197:
.dbline 108
mov R2,R12
clr R3
clr R4
clr R5
ldi R20,60
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
mov R6,R10
clr R7
clr R8
clr R9
ldi R20,16
ldi R21,14
ldi R22,0
ldi R23,0
st -y,R9
st -y,R8
st -y,R7
st -y,R6
movw R16,R20
movw R18,R22
xcall empy32u
movw R6,R16
movw R8,R18
add R6,R2
adc R7,R3
adc R8,R4
adc R9,R5
ldd R2,y+12
clr R3
clr R4
clr R5
add R6,R2
adc R7,R3
adc R8,R4
adc R9,R5
ldi R20,50
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R9
st -y,R8
st -y,R7
st -y,R6
movw R16,R20
movw R18,R22
xcall empy32u
movw R2,R16
movw R4,R18
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
ldd R6,y+14
ldd R7,y+15
clr R8
clr R9
add R6,R20
adc R7,R21
adc R8,R22
adc R9,R23
ldi R20,50
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R9
st -y,R8
st -y,R7
st -y,R6
movw R16,R20
movw R18,R22
xcall empy32u
ldi R20,232
ldi R21,3
ldi R22,0
ldi R23,0
st -y,R23
st -y,R22
st -y,R21
st -y,R20
xcall div32u
add R2,R16
adc R3,R17
adc R4,R18
adc R5,R19
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 110
movw R10,R4
.dbline 111
ldi R20,255
ldi R21,255
ldi R22,0
ldi R23,0
and R2,R20
and R3,R21
and R4,R22
and R5,R23
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 112
ldd R16,z+0
ldd R17,z+1
xcall _OSTimeDly
xjmp L200
L199:
.dbline 113
.dbline 114
ldi R16,32768
ldi R17,128
xcall _OSTimeDly
.dbline 115
ldi R16,32768
ldi R17,128
xcall _OSTimeDly
.dbline 116
movw R24,R10
sbiw R24,1
movw R10,R24
.dbline 117
L200:
.dbline 113
tst R10
brne L199
tst R11
brne L199
X38:
.dbline 118
clr R16
.dbline -2
L184:
adiw R28,4
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l ticks 0 l
.dbsym r loops 10 i
.dbsym l milli 14 i
.dbsym l seconds 12 c
.dbsym r minutes 12 c
.dbsym r hours 10 c
.dbend
.area bss(ram, con, rel)
.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_time.c
_OSTCBTbl::
.blkb 238
.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/ucos_ii.h
.dbsym e OSTCBTbl _OSTCBTbl A[238:7]X
_OSTCBPrioTbl::
.blkb 18
.dbsym e OSTCBPrioTbl _OSTCBPrioTbl A[18:9]pX
_OSTCBList::
.blkb 2
.dbsym e OSTCBList _OSTCBList pX
_OSTCBHighRdy::
.blkb 2
.dbsym e OSTCBHighRdy _OSTCBHighRdy pX
_OSTCBFreeList::
.blkb 2
.dbsym e OSTCBFreeList _OSTCBFreeList pX
_OSTCBCur::
.blkb 2
.dbsym e
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -