📄 ucos_ii.lis
字号:
0130 ;
0130 80E0 ldi R24,<_OSTCBTbl
0132 90E0 ldi R25,>_OSTCBTbl
0134 9093E200 sts _OSTCBFreeList+1,R25
0138 8093E100 sts _OSTCBFreeList,R24
013C AA24 clr R10
013E BB24 clr R11
0140 1BC0 xjmp L21
0142 L18:
0142 9501 movw R18,R10
0144 2F5F subi R18,255 ; offset = 1
0146 3F4F sbci R19,255
0148 08E0 ldi R16,8
014A 10E0 ldi R17,0
014C 0E940000 xcall empy16s
0150 1801 movw R2,R16
0152 80E0 ldi R24,<_OSEventTbl
0154 90E0 ldi R25,>_OSEventTbl
0156 280E add R2,R24
0158 391E adc R3,R25
015A 08E0 ldi R16,8
015C 10E0 ldi R17,0
015E 9501 movw R18,R10
0160 0E940000 xcall empy16s
0164 F801 movw R30,R16
0166 80E0 ldi R24,<_OSEventTbl
0168 90E0 ldi R25,>_OSEventTbl
016A E80F add R30,R24
016C F91F adc R31,R25
016E 3182 std z+1,R3
0170 2082 std z+0,R2
0172 L19:
0172 C501 movw R24,R10
0174 0196 adiw R24,1
0176 5C01 movw R10,R24
0178 L21:
0178 ;
0178 ;
0178 ;
0178 C501 movw R24,R10
017A 8130 cpi R24,1
017C E0E0 ldi R30,0
017E 9E07 cpc R25,R30
0180 00F3 brlo L18
0182 ;
0182 ;
0182 ;
0182 2224 clr R2
0184 3324 clr R3
0186 3092FB00 sts _OSEventTbl+8+1,R3
018A 2092FA00 sts _OSEventTbl+8,R2
018E ;
018E 80E0 ldi R24,<_OSEventTbl
0190 90E0 ldi R25,>_OSEventTbl
0192 90930301 sts _OSEventFreeList+1,R25
0196 80930201 sts _OSEventFreeList,R24
019A ;
019A ;
019A ;
019A ;
019A 8FE0 ldi R24,15
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -