📄 ucos_ii.s
字号:
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 301
.dbline 302
;
lds R10,_OSTCBFreeList
lds R11,_OSTCBFreeList+1
.dbline 303
;
tst R10
brne X4
tst R11
brne X6
xjmp L43
X6:
X4:
.dbline 303
.dbline 304
;
movw R30,R10
ldd R2,z+2
ldd R3,z+3
sts _OSTCBFreeList+1,R3
sts _OSTCBFreeList,R2
.dbline 305
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 305
.dbline 306
;
movw R30,R10
std z+1,R19
std z+0,R18
.dbline 307
;
std z+9,R16
.dbline 308
;
clr R2
movw R30,R10
std z+8,R2
.dbline 309
;
clr R3
movw R30,R10
std z+7,R3
std z+6,R2
.dbline 311
;
;
.dbline 312
;
.dbline 313
;
.dbline 314
;
.dbline 315
;
.dbline 317
;
;
mov R2,R16
lsr R2
lsr R2
lsr R2
movw R30,R10
std z+11,R2
.dbline 318
;
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
movw R30,R10
ldd R30,z+11
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
movw R26,R10
adiw R26,13
st x,R30
.dbline 319
;
mov R24,R16
andi R24,7
movw R30,R10
std z+10,R24
.dbline 320
;
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
movw R30,R10
ldd R30,z+10
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
movw R26,R10
adiw R26,12
st x,R30
.dbline 322
;
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 322
.dbline 323
;
ldi R24,2
mul R24,R16
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
std z+1,R11
std z+0,R10
.dbline 324
;
lds R2,_OSTCBList
lds R3,_OSTCBList+1
movw R30,R10
std z+3,R3
std z+2,R2
.dbline 325
;
clr R2
clr R3
movw R30,R10
std z+5,R3
std z+4,R2
.dbline 326
;
lds R2,_OSTCBList
lds R3,_OSTCBList+1
tst R2
brne X5
tst R3
breq L45
X5:
.dbline 326
.dbline 327
;
lds R30,_OSTCBList
lds R31,_OSTCBList+1
std z+5,R11
std z+4,R10
.dbline 328
;
L45:
.dbline 329
;
sts _OSTCBList+1,R11
sts _OSTCBList,R10
.dbline 330
;
movw R30,R10
ldd R2,z+13
lds R3,_OSRdyGrp
or R3,R2
sts _OSRdyGrp,R3
.dbline 331
;
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
movw R30,R10
ldd R2,z+11
clr R3
add R2,R24
adc R3,R25
movw R30,R10
ldd R4,z+12
movw R30,R2
ldd R5,z+0
or R5,R4
std z+0,R5
.dbline 332
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 332
.dbline 333
;
clr R16
xjmp L42
L43:
.dbline 334
;
.dbline 335
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 335
.dbline 336
;
ldi R16,70
.dbline -2
L42:
xcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r ptcb 10 pS[os_tcb]
.dbsym l opt 10 i
.dbsym l pext 8 pV
.dbsym l stk_size 6 i
.dbsym l id 4 i
.dbsym l pbos 2 pc
.dbsym r ptos 18 pc
.dbsym r prio 16 c
.dbend
.dbfunc e OSTimeTick _OSTimeTick fV
; ptcb -> R16,R17
.even
_OSTimeTick::
.dbline -1
.dbline 355
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 358
;
;
;
lds R16,_OSTCBList
lds R17,_OSTCBList+1
xjmp L49
L48:
.dbline 359
;
.dbline 360
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 360
.dbline 361
;
movw R30,R16
ldd R2,z+6
ldd R3,z+7
tst R2
brne X7
tst R3
brne X9
xjmp L51
X9:
X7:
.dbline 361
.dbline 362
;
movw R24,R16
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 X10
xjmp L53
X10:
X8:
.dbline 362
.dbline 363
;
movw R30,R16
ldd R2,z+8
sbrc R2,3
rjmp L55
.dbline 363
.dbline 364
;
movw R30,R16
ldd R2,z+13
lds R3,_OSRdyGrp
or R3,R2
sts _OSRdyGrp,R3
.dbline 365
;
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
movw R30,R16
ldd R2,z+11
clr R3
add R2,R24
adc R3,R25
movw R30,R16
ldd R4,z+12
movw R30,R2
ldd R5,z+0
or R5,R4
std z+0,R5
.dbline 366
xjmp L56
L55:
.dbline 366
;
.dbline 367
;
ldi R24,1
ldi R25,0
movw R30,R16
std z+7,R25
std z+6,R24
.dbline 368
;
L56:
.dbline 369
;
L53:
.dbline 370
;
L51:
.dbline 371
movw R30,R16
ldd R16,z+2
ldd R17,z+3
.dbline 372
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 372
.dbline 373
L49:
.dbline 359
movw R30,R16
ldd R24,z+9
cpi R24,15
breq X11
xjmp L48
X11:
.dbline 374
;
;
;
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 374
.dbline 375
;
ldi R24,1
ldi R25,0
ldi R26,0
ldi R27,0
lds R4,_OSTime+2
lds R5,_OSTime+2+1
lds R2,_OSTime
lds R3,_OSTime+1
add R2,R24
adc R3,R25
adc R4,R26
adc R5,R27
sts _OSTime+1,R3
sts _OSTime,R2
sts _OSTime+2+1,R5
sts _OSTime+2,R4
.dbline 376
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 376
.dbline -2
L47:
.dbline 0 ; func end
ret
.dbsym r ptcb 16 pS[os_tcb]
.dbend
.dbfile D:\MTD\work\iccavr\ucos-M128\source/os_task.c
.dbfunc e OSTaskStkInit _OSTaskStkInit fpc
; stks -> R14,R15
; tmp -> R12,R13
; stk -> R10,R11
; opt -> y+8
; ptos -> y+6
; pdata -> R18,R19
; task -> R16,R17
.even
_OSTaskStkInit::
xcall push_gset5x
.dbline -1
.dbline 47
.dbline 54
.dbline 55
ldd R10,y+6
ldd R11,y+7
.dbline 57
movw R24,R10
subi R24,68
sbci R25,0
.dbline 62
movw R30,R16
lpm R12,Z+
lpm R13,Z
.dbline 65
movw R2,R24
sbiw R24,1
movw R30,R2
std z+0,R12
.dbline 66
movw R2,R24
sbiw R24,1
movw R14,R24
movw R4,R12
mov R4,R5
clr R5
movw R30,R2
std z+0,R4
.dbline 68
movw R2,R10
movw R24,R2
sbiw R24,1
clr R4
movw R30,R2
std z+0,R4
.dbline 69
movw R2,R24
sbiw R24,1
movw R10,R24
ldi R24,1
movw R30,R2
std z+0,R24
.dbline 70
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,2
movw R30,R2
std z+0,R24
.dbline 71
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,3
movw R30,R2
std z+0,R24
.dbline 72
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,4
movw R30,R2
std z+0,R24
.dbline 73
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,5
movw R30,R2
std z+0,R24
.dbline 74
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,6
movw R30,R2
std z+0,R24
.dbline 75
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,7
movw R30,R2
std z+0,R24
.dbline 76
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,8
movw R30,R2
std z+0,R24
.dbline 77
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,9
movw R30,R2
std z+0,R24
.dbline 78
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,16
movw R30,R2
std z+0,R24
.dbline 79
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,17
movw R30,R2
std z+0,R24
.dbline 80
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,18
movw R30,R2
std z+0,R24
.dbline 81
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,19
movw R30,R2
std z+0,R24
.dbline 82
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,20
movw R30,R2
std z+0,R24
.dbline 83
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,21
movw R30,R2
std z+0,R24
.dbline 84
movw R12,R18
.dbline 85
movw R2,R10
movw R24,R2
sbiw R24,1
movw R30,R2
std z+0,R12
.dbline 86
movw R2,R24
sbiw R24,1
movw R4,R12
mov R4,R5
clr R5
movw R30,R2
std z+0,R4
.dbline 87
movw R2,R24
sbiw R24,1
movw R10,R24
ldi R24,24
movw R30,R2
std z+0,R24
.dbline 88
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,25
movw R30,R2
std z+0,R24
.dbline 89
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,32
movw R30,R2
std z+0,R24
.dbline 90
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,33
movw R30,R2
std z+0,R24
.dbline 91
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,34
movw R30,R2
std z+0,R24
.dbline 92
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,35
movw R30,R2
std z+0,R24
.dbline 93
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,36
movw R30,R2
std z+0,R24
.dbline 94
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,37
movw R30,R2
std z+0,R24
.dbline 95
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,38
movw R30,R2
std z+0,R24
.dbline 96
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,39
movw R30,R2
std z+0,R24
.dbline 98
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,48
movw R30,R2
std z+0,R24
.dbline 99
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,49
movw R30,R2
std z+0,R24
.dbline 101
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
ldi R24,128
movw R30,R2
std z+0,R24
.dbline 103
movw R12,R14
.dbline 104
movw R2,R10
movw R24,R2
sbiw R24,1
movw R10,R24
movw R4,R12
mov R4,R5
clr R5
movw R30,R2
std z+0,R4
.dbline 105
movw R30,R24
std z+0,R12
.dbline 106
movw R16,R24
.dbline -2
L57:
xcall pop_gset5x
.dbline 0 ; func end
ret
.dbsym r stks 14 pc
.dbsym r tmp 12 i
.dbsym r stk 10 pc
.dbsym l opt 8 i
.dbsym l ptos 6 pc
.dbsym r pdata 18 pV
.dbsym r task 16 pfV
.dbend
.dbfunc e OSTaskCreate _OSTaskCreate fc
; psp -> R10,R11
; err -> R10
; prio -> R12
; ptos -> y+16
; pdata -> R14,R15
; task -> R10,R11
.even
_OSTaskCreate::
xcall push_gset5x
movw R14,R18
movw R10,R16
sbiw R28,10
ldd R12,y+18
.dbline -1
.dbline 110
.dbline 115
ldi R24,15
cp R24,R12
brsh L59
.dbline 115
.dbline 116
ldi R16,42
xjmp L58
L59:
.dbline 118
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 118
.dbline 119
ldi R24,2
mul R24,R12
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 X13
xjmp L61
X13:
tst R3
breq X14
xjmp L61
X14:
X12:
.dbline 119
.dbline 120
ldi R24,2
mul R24,R12
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 122
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 122
.dbline 123
clr R2
clr R3
std y+3,R3
std y+2,R2
ldd R0,y+16
ldd R1,y+17
std y+1,R1
std y+0,R0
movw R18,R14
movw R16,R10
xcall _OSTaskStkInit
movw R10,R16
.dbline 124
clr R2
clr R3
std y+9,R3
std y+8,R2
std y+7,R3
std y+6,R2
std y+5,R3
std y+4,R2
std y+3,R3
std y+2,R2
std y+1,R3
std y+0,R2
movw R18,R10
mov R16,R12
xcall _OSTCBInit
mov R10,R16
.dbline 125
tst R16
brne L63
.dbline 125
.dbline 126
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 126
.dbline 127
lds R24,_OSTaskCtr
subi R24,255 ; addi 1
sts _OSTaskCtr,R24
.dbline 128
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 128
.dbline 129
lds R2,_OSRunning
tst R2
breq L64
.dbline 129
.dbline 130
xcall _OSSched
.dbline 131
.dbline 132
xjmp L64
L63:
.dbline 132
.dbline 133
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 133
.dbline 134
ldi R24,2
mul R24,R12
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 135
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 135
.dbline 136
L64:
.dbline 137
mov R16,R10
xjmp L58
L61:
.dbline 138
.dbline 139
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 139
.dbline 140
ldi R16,40
.dbline -2
L58:
adiw R28,10
xcall pop_gset5x
.dbline 0 ; func end
ret
.dbsym r psp 10 pV
.dbsym r err 10 c
.dbsym r prio 12 c
.dbsym l ptos 16 pc
.dbsym r pdata 14 pV
.dbsym r task 10 pfV
.dbend
.dbfile D:\MTD\work\iccavr\ucos-M128\source/os_time.c
.dbfunc e OSTimeDly _OSTimeDly fV
; ticks -> R10,R11
.even
_OSTimeDly::
xcall push_gset3x
movw R10,R16
.dbline -1
.dbline 23
.dbline 24
tst R10
brne X15
tst R11
brne X16
xjmp L68
X16:
X15:
.dbline 24
.dbline 25
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 25
.dbline 26
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R2,z+11
clr R3
add R2,R24
adc R3,R25
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R4,z+12
com R4
movw R30,R2
ldd R5,z+0
and R5,R4
mov R4,R5
std z+0,R4
tst R5
brne L70
.dbline 26
.dbline 27
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R2,z+13
com R2
lds R3,_OSRdyGrp
and R3,R2
sts _OSRdyGrp,R3
.dbline 28
L70:
.dbline 29
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
std z+7,R11
std z+6,R10
.dbline 30
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 30
.dbline 31
xcall _OSSched
.dbline 32
L68:
.dbline -2
L67:
xcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r ticks 10 i
.dbend
.area bss(ram, con, rel)
.dbfile D:\MTD\work\iccavr\ucos-M128\source/os_time.c
_OSTCBTbl:
.blkb 84
.dbfile D:\MTD\work\iccavr\ucos-M128\source/os_core.c
.dbsym s OSTCBTbl _OSTCBTbl A[84:6]S[os_tcb]
_OSTaskIdleStk:
.blkb 100
.dbsym s OSTaskIdleStk _OSTaskIdleStk A[100:100]c
_OSIntExitY:
.blkb 1
.dbsym s OSIntExitY _OSIntExitY c
_OSTime::
.blkb 4
.dbfile D:\MTD\work\iccavr\ucos-M128\source/..\source\UCOS_II.H
.dbsym e OSTime _OSTime l
_OSTCBPrioTbl::
.blkb 32
.dbsym e OSTCBPrioTbl _OSTCBPrioTbl A[32:16]pS[os_tcb]
_OSTCBList::
.blkb 2
.dbsym e OSTCBList _OSTCBList pS[os_tcb]
_OSTCBHighRdy::
.blkb 2
.dbsym e OSTCBHighRdy _OSTCBHighRdy pS[os_tcb]
_OSTCBFreeList::
.blkb 2
.dbsym e OSTCBFreeList _OSTCBFreeList pS[os_tcb]
_OSTCBCur::
.blkb 2
.dbsym e OSTCBCur _OSTCBCur pS[os_tcb]
_OSTaskCtr::
.blkb 1
.dbsym e OSTaskCtr _OSTaskCtr c
_OSRunning::
.blkb 1
.dbsym e OSRunning _OSRunning c
_OSRdyTbl::
.blkb 2
.dbsym e OSRdyTbl _OSRdyTbl A[2:2]c
_OSRdyGrp::
.blkb 1
.dbsym e OSRdyGrp _OSRdyGrp c
_OSPrioHighRdy::
.blkb 1
.dbsym e OSPrioHighRdy _OSPrioHighRdy c
_OSPrioCur::
.blkb 1
.dbsym e OSPrioCur _OSPrioCur c
_OSLockNesting::
.blkb 1
.dbsym e OSLockNesting _OSLockNesting c
_OSIntNesting::
.blkb 1
.dbsym e OSIntNesting _OSIntNesting c
_OSIdleCtr::
.blkb 4
.dbsym e OSIdleCtr _OSIdleCtr l
_OSEventTbl::
.blkb 16
.dbstruct 0 8 .1
.dbfield 0 OSEventPtr pV
.dbfield 2 OSEventTbl A[2:2]c
.dbfield 4 OSEventCnt i
.dbfield 6 OSEventType c
.dbfield 7 OSEventGrp c
.dbend
.dbsym e OSEventTbl _OSEventTbl A[16:2]S[.1]
_OSEventFreeList::
.blkb 2
.dbsym e OSEventFreeList _OSEventFreeList pS[.1]
_OSCtxSwCtr::
.blkb 4
.dbsym e OSCtxSwCtr _OSCtxSwCtr l
.area func_lit
PL_OSTaskIdle: .word `_OSTaskIdle
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -