📄 ucos_ii.s
字号:
.dbfunc e OSIntExit _OSIntExit fV
; cpu_sr -> R10
.even
_OSIntExit::
xcall push_gset3
.dbline -1
.dbline 325
; #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"
.dbline 331
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
lds R24,_OSRunning
cpi R24,1
breq X0
xjmp L8
X0:
.dbline 331
.dbline 332
; #include "os_time.c"
xcall _OS_CPU_SR_Save
mov R10,R16
.dbline 333
; #include "os_time.c"
clr R2
lds R3,_OSIntNesting
cp R2,R3
brsh L10
.dbline 333
.dbline 334
; #include "os_time.c"
mov R24,R3
subi R24,1
sts _OSIntNesting,R24
.dbline 335
; #include "os_time.c"
L10:
.dbline 336
; #include "os_time.c"
lds R2,_OSIntNesting
tst R2
breq X1
xjmp L12
X1:
.dbline 336
.dbline 337
; #include "os_time.c"
lds R2,_OSLockNesting
tst R2
breq X2
xjmp L14
X2:
.dbline 337
.dbline 338
; #include "os_time.c"
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
sts _OSIntExitY,R30
.dbline 339
; #include "os_time.c"
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
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
lds R4,_OSIntExitY
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
.dbline 340
; #include "os_time.c"
lds R2,_OSPrioCur
cp R4,R2
brne X3
xjmp L16
X3:
.dbline 340
.dbline 341
; #include "os_time.c"
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 343
; #include "os_time.c"
; #include "os_time.c"
movw R24,R2
adiw R24,18
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 345
; #include "os_time.c"
; #include "os_time.c"
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 346
; #include "os_time.c"
xcall _OSIntCtxSw
.dbline 347
; #include "os_time.c"
L16:
.dbline 348
; #include "os_time.c"
L14:
.dbline 349
; #include "os_time.c"
L12:
.dbline 350
mov R16,R10
xcall _OS_CPU_SR_Restore
.dbline 351
L8:
.dbline -2
L7:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r cpu_sr 10 c
.dbend
.dbfunc e OSSchedLock _OSSchedLock fV
; cpu_sr -> R20
.even
_OSSchedLock::
xcall push_gset1
.dbline -1
.dbline 372
; #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"
.dbline 378
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
lds R24,_OSRunning
cpi R24,1
brne L19
.dbline 378
.dbline 379
; #include "os_time.c"
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 380
; #include "os_time.c"
lds R24,_OSLockNesting
cpi R24,255
brsh L21
.dbline 380
.dbline 381
; #include "os_time.c"
subi R24,255 ; addi 1
sts _OSLockNesting,R24
.dbline 382
; #include "os_time.c"
L21:
.dbline 383
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 384
L19:
.dbline -2
L18:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbend
.dbfunc e OSSchedUnlock _OSSchedUnlock fV
; cpu_sr -> R20
.even
_OSSchedUnlock::
xcall push_gset1
.dbline -1
.dbline 406
; #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"
.dbline 412
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
lds R24,_OSRunning
cpi R24,1
brne L24
.dbline 412
.dbline 413
; #include "os_time.c"
xcall _OS_CPU_SR_Save
mov R20,R16
.dbline 414
; #include "os_time.c"
clr R2
lds R3,_OSLockNesting
cp R2,R3
brsh L26
.dbline 414
.dbline 415
; #include "os_time.c"
mov R24,R3
subi R24,1
sts _OSLockNesting,R24
.dbline 416
; #include "os_time.c"
tst R24
brne L28
.dbline 416
.dbline 417
; #include "os_time.c"
lds R2,_OSIntNesting
tst R2
brne L30
.dbline 417
.dbline 418
; #include "os_time.c"
xcall _OS_CPU_SR_Restore
.dbline 419
; #include "os_time.c"
xcall _OS_Sched
.dbline 420
xjmp L27
L30:
.dbline 420
; #include "os_time.c"
.dbline 421
; #include "os_time.c"
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 422
; #include "os_time.c"
.dbline 423
xjmp L27
L28:
.dbline 423
; #include "os_time.c"
.dbline 424
; #include "os_time.c"
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 425
; #include "os_time.c"
.dbline 426
xjmp L27
L26:
.dbline 426
; #include "os_time.c"
.dbline 427
; #include "os_time.c"
mov R16,R20
xcall _OS_CPU_SR_Restore
.dbline 428
; #include "os_time.c"
L27:
.dbline 429
L24:
.dbline -2
L23:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r cpu_sr 20 c
.dbend
.dbfunc e OSStart _OSStart fV
; x -> R22
; y -> R20
.even
_OSStart::
xcall push_gset2
.dbline -1
.dbline 455
.dbline 460
lds R2,_OSRunning
tst R2
breq X4
xjmp L33
X4:
.dbline 460
.dbline 461
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R20,Z
.dbline 462
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R20
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 R22,Z
.dbline 463
mov R2,R22
clr R3
mov R4,R20
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
.dbline 464
mov R2,R4
sts _OSPrioCur,R2
.dbline 465
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 466
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
.dbline 467
xcall _OSStartHighRdy
.dbline 468
L33:
.dbline -2
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
.dbstruct 0 9 os_event
.dbfield 0 OSEventType c
.dbfield 1 OSEventGrp c
.dbfield 2 OSEventCnt i
.dbfield 4 OSEventPtr pV
.dbfield 6 OSEventTbl A[3:3]c
.dbend
.dbstruct 0 36 os_tcb
.dbfield 0 OSTCBStkPtr pc
.dbfield 2 OSTCBNext pS[os_tcb]
.dbfield 4 OSTCBPrev pS[os_tcb]
.dbfield 6 OSTCBEventPtr pS[os_event]
.dbfield 8 OSTCBMsg pV
.dbfield 10 OSTCBDly i
.dbfield 12 OSTCBStat c
.dbfield 13 OSTCBPrio c
.dbfield 14 OSTCBX c
.dbfield 15 OSTCBY c
.dbfield 16 OSTCBBitX c
.dbfield 17 OSTCBBitY c
.dbfield 18 OSTCBCtxSwCtr l
.dbfield 22 OSTCBCyclesTot l
.dbfield 26 OSTCBCyclesStart l
.dbfield 30 OSTCBStkBase pc
.dbfield 32 OSTCBStkUsed l
.dbend
; step -> R20
; cpu_sr -> R20
; ptcb -> R22,R23
.even
_OSTimeTick::
xcall push_gset2
.dbline -1
.dbline 526
; P(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -