📄 ucos_ii.s
字号:
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
.dbline 465
xcall _OSStartHighRdy
.dbline 466
L33:
.dbline -2
.dbline 467
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
L32:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r x 22 c
.dbsym r y 20 c
.dbend
.dbfunc e OSTimeTick _OSTimeTick fV
; step -> R20
; cpu_sr -> R20
; ptcb -> R22,R23
.even
_OSTimeTick::
xcall push_gset2
.dbline -1
.dbline 524
; 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 533
; p
; p
; p
; p
; p
; p
; p
; p
; p
xcall _OSTimeTickHook
.dbline 540
; p
; p
; p
; p
; p
; p
; p
lds R24,_OSRunning
cpi R24,1
breq X7
xjmp L36
X7:
.dbline 540
.dbline 562
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
ldi R20,1
.dbline 564
; p
; p
cpi R20,1
breq X8
xjmp L38
X8:
.dbline 564
.dbline 565
; p
lds R22,_OSTCBList
lds R23,_OSTCBList+1
xjmp L41
L40:
.dbline 566
; p
.dbline 567
; p
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 568
; p
movw R30,R22
ldd R2,z+8
ldd R3,z+9
tst R2
brne X5
tst R3
brne X9
xjmp L43
X9:
X5:
.dbline 568
.dbline 569
; p
movw R24,R22
adiw R24,8
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
brne L45
X6:
.dbline 569
.dbline 570
; p
movw R30,R22
ldd R2,z+10
sbrc R2,3
rjmp L47
.dbline 570
.dbline 571
; p
ldd R2,z+15
lds R3,_OSRdyGrp
or R3,R2
sts _OSRdyGrp,R3
.dbline 572
; p
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
ldd R2,z+13
clr R3
add R2,R24
adc R3,R25
ldd R4,z+14
movw R30,R2
ldd R5,z+0
or R5,R4
std z+0,R5
.dbline 573
xjmp L48
L47:
.dbline 573
; p
.dbline 574
; p
ldi R24,1
ldi R25,0
movw R30,R22
std z+9,R25
std z+8,R24
.dbline 575
; p
L48:
.dbline 576
; p
L45:
.dbline 577
; p
L43:
.dbline 578
movw R30,R22
ldd R22,z+2
ldd R23,z+3
.dbline 579
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 580
L41:
.dbline 566
movw R30,R22
ldd R24,z+11
cpi R24,8
breq X10
xjmp L40
X10:
.dbline 581
; p
; p
; p
; p
L38:
.dbline 582
L36:
.dbline -2
.dbline 583
; p
; p
L35:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r step 20 c
.dbsym r cpu_sr 20 c
.dbsym r ptcb 22 pX
.dbend
.dbfunc e OSVersion _OSVersion fi
.even
_OSVersion::
.dbline -1
.dbline 600
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 601
; p
ldi R16,270
ldi R17,1
.dbline -2
L49:
.dbline 0 ; func end
ret
.dbend
.dbfunc e OS_EventTaskRdy _OS_EventTaskRdy fc
; bity -> R12
; bitx -> R22
; prio -> R20
; x -> R20
; ptcb -> R14,R15
; y -> R10
; msk -> y+10
; msg -> R18,R19
; pevent -> R16,R17
.even
_OS_EventTaskRdy::
xcall push_gset5
.dbline -1
.dbline 647
; 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 656
; p
; p
; p
; p
; p
; p
; p
; p
; p
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
movw R30,R16
ldd R30,z+1
clr R31
add R30,R24
adc R31,R25
lpm R10,Z
.dbline 657
; p
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
mov R30,R10
clr R31
add R30,R24
adc R31,R25
lpm R12,Z
.dbline 658
; p
movw R24,R16
adiw R24,6
mov R30,R10
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 R20,Z
.dbline 659
; p
ldi R24,<_OSMapTbl
ldi R25,>_OSMapTbl
mov R30,R20
clr R31
add R30,R24
adc R31,R25
lpm R22,Z
.dbline 660
; p
mov R2,R20
clr R3
mov R20,R10
clr R21
lsl R20
rol R21
lsl R20
rol R21
lsl R20
rol R21
add R20,R2
adc R21,R3
.dbline 661
; p
movw R24,R16
adiw R24,6
mov R2,R10
clr R3
add R2,R24
adc R3,R25
mov R4,R22
com R4
movw R30,R2
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 662
; p
movw R24,R16
adiw R24,6
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L51
.dbline 662
.dbline 663
; p
movw R24,R16
adiw R24,1
mov R4,R12
com R4
movw R30,R24
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 664
; p
L51:
.dbline 665
; p
ldi R24,2
mul R24,R20
movw R30,R0
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
ldd R14,z+0
ldd R15,z+1
.dbline 666
; p
clr R2
clr R3
movw R30,R14
std z+9,R3
std z+8,R2
.dbline 667
; p
std z+7,R3
std z+6,R2
.dbline 671
; p
; p
; p
; p
.dbline 673
; p
; p
movw R24,R30
adiw R24,10
ldd R4,y+10
com R4
movw R30,R24
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 674
; p
movw R30,R14
ldd R2,z+10
tst R2
brne L53
.dbline 674
.dbline 675
; p
lds R2,_OSRdyGrp
or R2,R12
sts _OSRdyGrp,R2
.dbline 676
; p
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R2,R10
clr R3
add R2,R24
adc R3,R25
movw R30,R2
ldd R4,z+0
or R4,R22
std z+0,R4
.dbline 677
; p
L53:
.dbline 678
; p
mov R16,R20
.dbline -2
L50:
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r bity 12 c
.dbsym r bitx 22 c
.dbsym r prio 20 c
.dbsym r x 20 c
.dbsym r ptcb 14 pX
.dbsym r y 10 c
.dbsym l msk 10 c
.dbsym r msg 18 pV
.dbsym r pevent 16 pX
.dbend
.dbfunc e OS_EventTaskWait _OS_EventTaskWait fV
; y -> R20
; pevent -> R16,R17
.even
_OS_EventTaskWait::
xcall push_gset1
.dbline -1
.dbline 698
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 702
; p
; p
; p
; p
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
std z+7,R17
std z+6,R16
.dbline 703
; p
ldd R20,z+13
.dbline 704
; p
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
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 705
; p
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L56
.dbline 705
.dbline 706
; p
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R2,z+15
com R2
lds R3,_OSRdyGrp
and R3,R2
sts _OSRdyGrp,R3
.dbline 707
; p
L56:
.dbline 708
; p
movw R24,R16
adiw R24,6
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R2,z+13
clr R3
add R2,R24
adc R3,R25
ldd R4,z+14
movw R30,R2
ldd R5,z+0
or R5,R4
std z+0,R5
.dbline 709
; p
movw R24,R16
adiw R24,1
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R4,z+15
movw R30,R24
ldd R5,z+0
or R5,R4
std z+0,R5
.dbline -2
.dbline 710
; p
L55:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r y 20 c
.dbsym r pevent 16 pX
.dbend
.dbfunc e OS_EventTO _OS_EventTO fV
; y -> R20
; pevent -> R16,R17
.even
_OS_EventTO::
xcall push_gset1
.dbline -1
.dbline 729
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 733
; p
; p
; p
; p
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R20,z+13
.dbline 734
; p
movw R24,R16
adiw R24,6
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 735
; p
movw R24,R16
adiw R24,6
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne L59
.dbline 735
.dbline 736
; p
movw R24,R16
adiw R24,1
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
ldd R4,z+15
com R4
movw R30,R24
ldd R5,z+0
and R5,R4
std z+0,R5
.dbline 737
; p
L59:
.dbline 738
; p
clr R2
lds R30,_OSTCBCur
lds R31,_OSTCBCur+1
std z+10,R2
.dbline 739
; p
clr R3
std z+7,R3
std z+6,R2
.dbline -2
.dbline 740
; p
L58:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r y 20 c
.dbsym r pevent 16 pX
.dbend
.dbfunc e OS_EventWaitListInit _OS_EventWaitListInit fV
; ptbl -> R20,R21
; pevent -> R16,R17
.even
_OS_EventWaitListInit::
xcall push_gset1
.dbline -1
.dbline 758
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
.dbline 762
; p
; p
; p
; p
clr R2
movw R30,R16
std z+1,R2
.dbline 763
; p
movw R20,R30
subi R20,250 ; offset = 6
sbci R21,255
.dbline 766
; p
; p
; p
movw R30,R20
st Z+,R2
.dbline 770
; p
; p
; p
; p
st Z+,R2
movw R20,R30
.dbline -2
.dbline 796
; 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
L61:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r ptbl 20 pc
.dbsym r pevent 16 pX
.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
.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,R30
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -