📄 ucos_ii.lis
字号:
019C 8A83 std y+2,R24
019E 80E0 ldi R24,<_OSTaskIdleStk+99
01A0 90E0 ldi R25,>_OSTaskIdleStk+99
01A2 9983 std y+1,R25
01A4 8883 std y+0,R24
01A6 2227 clr R18
01A8 3327 clr R19
01AA 00E0 ldi R16,<PL_OSTaskIdle
01AC 10E0 ldi R17,>PL_OSTaskIdle
01AE 2CD3 xcall _OSTaskCreate
01B0 L2:
01B0 2396 adiw R28,3
01B2 0E940000 xcall pop_gset3x
01B6 .dbline 0 ; func end
01B6 0895 ret
.even
01B8 _OSIntExit::
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 ;
01B8 0A93 st -y,r16
01BA 0FB7 in r16,0x3F
01BC F894 cli
01BE 0F93 push r16
01C0 0991 ld r16,y+
01C2 ;
01C2 8091ED00 lds R24,_OSIntNesting
01C6 8150 subi R24,1
01C8 282E mov R2,R24
01CA 2092ED00 sts _OSIntNesting,R2
01CE 4090EC00 lds R4,_OSLockNesting
01D2 2428 or R2,R4
01D4 09F0 breq X0
01D6 50C0 xjmp L25
01D8 X0:
01D8 ;
01D8 80E0 ldi R24,<_OSUnMapTbl
01DA 90E0 ldi R25,>_OSUnMapTbl
01DC E091E900 lds R30,_OSRdyGrp
01E0 FF27 clr R31
01E2 E80F add R30,R24
01E4 F91F adc R31,R25
01E6 E491 lpm R30,Z
01E8 E093B800 sts _OSIntExitY,R30
01EC ;
01EC 80E0 ldi R24,<_OSRdyTbl
01EE 90E0 ldi R25,>_OSRdyTbl
01F0 FF27 clr R31
01F2 E80F add R30,R24
01F4 F91F adc R31,R25
01F6 E081 ldd R30,z+0
01F8 FF27 clr R31
01FA 80E0 ldi R24,<_OSUnMapTbl
01FC 90E0 ldi R25,>_OSUnMapTbl
01FE E80F add R30,R24
0200 F91F adc R31,R25
0202 2490 lpm R2,Z
0204 3324 clr R3
0206 4090B800 lds R4,_OSIntExitY
020A 5524 clr R5
020C 440C lsl R4
020E 551C rol R5
0210 440C lsl R4
0212 551C rol R5
0214 440C lsl R4
0216 551C rol R5
0218 420C add R4,R2
021A 531C adc R5,R3
021C 4092EA00 sts _OSPrioHighRdy,R4
0220 ;
0220 2090EB00 lds R2,_OSPrioCur
0224 4214 cp R4,R2
0226 41F1 breq L27
0228 ;
0228 242C mov R2,R4
022A 82E0 ldi R24,2
022C 829D mul R24,R2
022E F001 movw R30,R0
0230 80E0 ldi R24,<_OSTCBPrioTbl
0232 90E0 ldi R25,>_OSTCBPrioTbl
0234 E80F add R30,R24
0236 F91F adc R31,R25
0238 2080 ldd R2,z+0
023A 3180 ldd R3,z+1
023C 3092E000 sts _OSTCBHighRdy+1,R3
0240 2092DF00 sts _OSTCBHighRdy,R2
0244 ;
0244 81E0 ldi R24,1
0246 90E0 ldi R25,0
0248 A0E0 ldi R26,0
024A B0E0 ldi R27,0
024C 40900601 lds R4,_OSCtxSwCtr+2
0250 50900701 lds R5,_OSCtxSwCtr+2+1
0254 20900401 lds R2,_OSCtxSwCtr
0258 30900501 lds R3,_OSCtxSwCtr+1
025C 280E add R2,R24
025E 391E adc R3,R25
0260 4A1E adc R4,R26
0262 5B1E adc R5,R27
0264 30920501 sts _OSCtxSwCtr+1,R3
0268 20920401 sts _OSCtxSwCtr,R2
026C 50920701 sts _OSCtxSwCtr+2+1,R5
0270 40920601 sts _OSCtxSwCtr+2,R4
0274 ;
0274 0E940000 xcall _OSIntCtxSw
0278 ;
0278 L27:
0278 ;
0278 L25:
0278 ;
0278 0A93 st -y,r16
027A 0F91 pop r16
027C 0FBF out 0x3F,r16
027E 0991 ld r16,y+
0280 L24:
0280 .dbline 0 ; func end
0280 0895 ret
0282 ; y -> R10
.even
0282 _OSSched::
0282 0E940000 xcall push_gset3x
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 ;
0286 0A93 st -y,r16
0288 0FB7 in r16,0x3F
028A F894 cli
028C 0F93 push r16
028E 0991 ld r16,y+
0290 ;
0290 2090ED00 lds R2,_OSIntNesting
0294 3090EC00 lds R3,_OSLockNesting
0298 3228 or R3,R2
029A 09F0 breq X1
029C 4EC0 xjmp L30
029E X1:
029E ;
029E 80E0 ldi R24,<_OSUnMapTbl
02A0 90E0 ldi R25,>_OSUnMapTbl
02A2 E091E900 lds R30,_OSRdyGrp
02A6 FF27 clr R31
02A8 E80F add R30,R24
02AA F91F adc R31,R25
02AC A490 lpm R10,Z
02AE ;
02AE 80E0 ldi R24,<_OSRdyTbl
02B0 90E0 ldi R25,>_OSRdyTbl
02B2 EA2D mov R30,R10
02B4 FF27 clr R31
02B6 E80F add R30,R24
02B8 F91F adc R31,R25
02BA E081 ldd R30,z+0
02BC FF27 clr R31
02BE 80E0 ldi R24,<_OSUnMapTbl
02C0 90E0 ldi R25,>_OSUnMapTbl
02C2 E80F add R30,R24
02C4 F91F adc R31,R25
02C6 2490 lpm R2,Z
02C8 3324 clr R3
02CA 4A2C mov R4,R10
02CC 5524 clr R5
02CE 440C lsl R4
02D0 551C rol R5
02D2 440C lsl R4
02D4 551C rol R5
02D6 440C lsl R4
02D8 551C rol R5
02DA 420C add R4,R2
02DC 531C adc R5,R3
02DE 4092EA00 sts _OSPrioHighRdy,R4
02E2 ;
02E2 2090EB00 lds R2,_OSPrioCur
02E6 4214 cp R4,R2
02E8 41F1 breq L32
02EA ;
02EA 242C mov R2,R4
02EC 82E0 ldi R24,2
02EE 829D mul R24,R2
02F0 F001 movw R30,R0
02F2 80E0 ldi R24,<_OSTCBPrioTbl
02F4 90E0 ldi R25,>_OSTCBPrioTbl
02F6 E80F add R30,R24
02F8 F91F adc R31,R25
02FA 2080 ldd R2,z+0
02FC 3180 ldd R3,z+1
02FE 3092E000 sts _OSTCBHighRdy+1,R3
0302 2092DF00 sts _OSTCBHighRdy,R2
0306 ;
0306 81E0 ldi R24,1
0308 90E0 ldi R25,0
030A A0E0 ldi R26,0
030C B0E0 ldi R27,0
030E 40900601 lds R4,_OSCtxSwCtr+2
0312 50900701 lds R5,_OSCtxSwCtr+2+1
0316 20900401 lds R2,_OSCtxSwCtr
031A 30900501 lds R3,_OSCtxSwCtr+1
031E 280E add R2,R24
0320 391E adc R3,R25
0322 4A1E adc R4,R26
0324 5B1E adc R5,R27
0326 30920501 sts _OSCtxSwCtr+1,R3
032A 20920401 sts _OSCtxSwCtr,R2
032E 50920701 sts _OSCtxSwCtr+2+1,R5
0332 40920601 sts _OSCtxSwCtr+2,R4
0336 ;
0336 0E940000 xcall _OSCtxSw
033A ;
033A L32:
033A ;
033A L30:
033A ;
033A 0A93 st -y,r16
033C 0F91 pop r16
033E 0FBF out 0x3F,r16
0340 0991 ld r16,y+
0342 L29:
0342 0E940000 xcall pop_gset3x
0346 .dbline 0 ; func end
0346 0895 ret
0348 ; x -> R12
0348 ; y -> R10
.even
0348 _OSStart::
0348 0E940000 xcall push_gset4x
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C ;
034C 2090E600 lds R2,_OSRunning
0350 2220 tst R2
0352 09F0 breq X2
0354 39C0 xjmp L35
0356 X2:
0356 ;
0356 80E0 ldi R24,<_OSUnMapTbl
0358 90E0 ldi R25,>_OSUnMapTbl
035A E091E900 lds R30,_OSRdyGrp
035E FF27 clr R31
0360 E80F add R30,R24
0362 F91F adc R31,R25
0364 A490 lpm R10,Z
0366 ;
0366 80E0 ldi R24,<_OSRdyTbl
0368 90E0 ldi R25,>_OSRdyTbl
036A EA2D mov R30,R10
036C FF27 clr R31
036E E80F add R30,R24
0370 F91F adc R31,R25
0372 E081 ldd R30,z+0
0374 FF27 clr R31
0376 80E0 ldi R24,<_OSUnMapTbl
0378 90E0 ldi R25,>_OSUnMapTbl
037A E80F add R30,R24
037C F91F adc R31,R25
037E C490 lpm R12,Z
0380 ;
0380 2C2C mov R2,R12
0382 3324 clr R3
0384 4A2C mov R4,R10
0386 5524 clr R5
0388 440C lsl R4
038A 551C rol R5
038C 440C lsl R4
038E 551C rol R5
0390 440C lsl R4
0392 551C rol R5
0394 420C add R4,R2
0396 531C adc R5,R3
0398 4092EA00 sts _OSPrioHighRdy,R4
039C ;
039C 242C mov R2,R4
039E 2092EB00 sts _OSPrioCur,R2
03A2 ;
03A2 82E0 ldi R24,2
03A4 829D mul R24,R2
03A6 F001 movw R30,R0
03A8 80E0 ldi R24,<_OSTCBPrioTbl
03AA 90E0 ldi R25,>_OSTCBPrioTbl
03AC E80F add R30,R24
03AE F91F adc R31,R25
03B0 2080 ldd R2,z+0
03B2 3180 ldd R3,z+1
03B4 3092E000 sts _OSTCBHighRdy+1,R3
03B8 2092DF00 sts _OSTCBHighRdy,R2
03BC ;
03BC 3092E400 sts _OSTCBCur+1,R3
03C0 2092E300 sts _OSTCBCur,R2
03C4 ;
03C4 0E940000 xcall _OSStartHighRdy
03C8 ;
03C8 L35:
03C8 L34:
03C8 0E940000 xcall pop_gset4x
03CC .dbline 0 ; func end
03CC 0895 ret
03CE ; pdata -> R16,R17
.even
03CE _OSTaskIdle::
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE ;
03CE L38:
03CE ;
03CE ;
03CE 0A93 st -y,r16
03D0 0FB7 in r16,0x3F
03D2 F894 cli
03D4 0F93 push r16
03D6 0991 ld r16,y+
03D8 ;
03D8 81E0 ldi R24,1
03DA 90E0 ldi R25,0
03DC A0E0 ldi R26,0
03DE B0E0 ldi R27,0
03E0 4090F000 lds R4,_OSIdleCtr+2
03E4 5090F100 lds R5,_OSIdleCtr+2+1
03E8 2090EE00 lds R2,_OSIdleCtr
03EC 3090EF00 lds R3,_OSIdleCtr+1
03F0 280E add R2,R24
03F2 391E adc R3,R25
03F4 4A1E adc R4,R26
03F6 5B1E adc R5,R27
03F8 3092EF00 sts _OSIdleCtr+1,R3
03FC 2092EE00 sts _OSIdleCtr,R2
0400 5092F100 sts _OSIdleCtr+2+1,R5
0404 4092F000 sts _OSIdleCtr+2,R4
0408 ;
0408 0A93 st -y,r16
040A 0F91 pop r16
040C 0FBF out 0x3F,r16
040E 0991 ld r16,y+
0410 ;
0410 DECF xjmp L38
0412 X3:
0412 L37:
0412 .dbline 0 ; func end
0412 0895 ret
0414 ; ptcb -> R10,R11
0414 ; opt -> y+10
0414 ; pext -> y+8
0414 ; stk_size -> y+6
0414 ; id -> y+4
0414 ; pbos -> y+2
0414 ; ptos -> R18,R19
0414 ; prio -> R16
.even
0414 _OSTCBInit::
0414 0E940000 xcall push_gset3x
0418 ;
0418 ;
0418 ;
0418 ;
0418 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -