📄 ucos.lst
字号:
0294 0195 MOVW R18,R10
0295 D53B RCALL empy16s
0296 01F8 MOVW R30,R16
0297 E283 LDI R24,0x23
0298 E092 LDI R25,2
0299 0FE8 ADD R30,R24
029A 1FF9 ADC R31,R25
029B 8220 STD Z+0,R2
029C 8231 STD Z+1,R3
029D 01C5 MOVW R24,R10
029E 9601 ADIW R24,1
029F 015C MOVW R10,R24
02A0 01C5 MOVW R24,R10
02A1 3081 CPI R24,1
02A2 E0E0 LDI R30,0
02A3 079E CPC R25,R30
02A4 F310 BCS 0x0287
02A5 2422 CLR R2
02A6 2433 CLR R3
02A7 9230022C STS 0x22C,R3
02A9 9220022B STS 0x22B,R2
02AB E283 LDI R24,0x23
02AC E092 LDI R25,2
02AD 93900234 STS _OSEventFreeList+1,R25
02AF 93800233 STS _OSEventFreeList,R24
02B1 E08F LDI R24,0xF
02B2 838A STD Y+2,R24
02B3 EE88 LDI R24,0xE8
02B4 E091 LDI R25,1
02B5 8388 STD Y+0,R24
02B6 8399 STD Y+1,R25
02B7 2722 CLR R18
02B8 2733 CLR R19
02B9 E20A LDI R16,0x2A
02BA E010 LDI R17,0
02BB D315 RCALL _OSTaskCreate
02BC 9623 ADIW R28,3
02BD D523 RCALL pop_gset3x
02BE 9508 RET
_OSIntExit:
02BF 930A ST R16,-Y
02C0 B70F IN R16,0x3F
02C1 94F8 BCLR 7
02C2 930F PUSH R16
02C3 9109 LD R16,Y+
02C4 9180021E LDS R24,_OSIntNesting
02C6 5081 SUBI R24,1
02C7 2E28 MOV R2,R24
02C8 9220021E STS _OSIntNesting,R2
02CA 9040021D LDS R4,_OSLockNesting
02CC 2824 OR R2,R4
02CD F009 BEQ 0x02CF
02CE C04F RJMP 0x031E
02CF E384 LDI R24,0x34
02D0 E090 LDI R25,0
02D1 91E0021A LDS R30,_OSRdyGrp
02D3 27FF CLR R31
02D4 0FE8 ADD R30,R24
02D5 1FF9 ADC R31,R25
02D6 91E4 LPM R30,0(Z)
02D7 93E001E9 STS 0x1E9,R30
02D9 E188 LDI R24,0x18
02DA E092 LDI R25,2
02DB 27FF CLR R31
02DC 0FE8 ADD R30,R24
02DD 1FF9 ADC R31,R25
02DE 81E0 LDD R30,Z+0
02DF 27FF CLR R31
02E0 E384 LDI R24,0x34
02E1 E090 LDI R25,0
02E2 0FE8 ADD R30,R24
02E3 1FF9 ADC R31,R25
02E4 9024 LPM R2,0(Z)
02E5 2433 CLR R3
02E6 904001E9 LDS R4,0x1E9
02E8 2455 CLR R5
02E9 0C44 LSL R4
02EA 1C55 ROL R5
02EB 0C44 LSL R4
02EC 1C55 ROL R5
02ED 0C44 LSL R4
02EE 1C55 ROL R5
02EF 0C42 ADD R4,R2
02F0 1C53 ADC R5,R3
02F1 9240021B STS _OSPrioHighRdy,R4
02F3 9020021C LDS R2,_OSPrioCur
02F5 1442 CP R4,R2
02F6 F139 BEQ 0x031E
02F7 2C24 MOV R2,R4
02F8 E082 LDI R24,2
02F9 9D82 MUL R24,R2
02FA 01F0 MOVW R30,R0
02FB EE8E LDI R24,0xEE
02FC E091 LDI R25,1
02FD 0FE8 ADD R30,R24
02FE 1FF9 ADC R31,R25
02FF 8020 LDD R2,Z+0
0300 8031 LDD R3,Z+1
0301 92300211 STS _OSTCBHighRdy+1,R3
0303 92200210 STS _OSTCBHighRdy,R2
0305 E081 LDI R24,1
0306 E090 LDI R25,0
0307 E0A0 LDI R26,0
0308 E0B0 LDI R27,0
0309 90400237 LDS R4,_OSCtxSwCtr+2
030B 90500238 LDS R5,_OSCtxSwCtr+3
030D 90200235 LDS R2,_OSCtxSwCtr
030F 90300236 LDS R3,_OSCtxSwCtr+1
0311 0E28 ADD R2,R24
0312 1E39 ADC R3,R25
0313 1E4A ADC R4,R26
0314 1E5B ADC R5,R27
0315 92300236 STS _OSCtxSwCtr+1,R3
0317 92200235 STS _OSCtxSwCtr,R2
0319 92500238 STS _OSCtxSwCtr+3,R5
031B 92400237 STS _OSCtxSwCtr+2,R4
031D D40F RCALL _OSIntCtxSw
031E 930A ST R16,-Y
031F 910F POP R16
0320 BF0F OUT 0x3F,R16
0321 9109 LD R16,Y+
0322 9508 RET
_OSSched:
y --> R10
0323 D4CD RCALL push_gset3x
0324 930A ST R16,-Y
0325 B70F IN R16,0x3F
0326 94F8 BCLR 7
0327 930F PUSH R16
0328 9109 LD R16,Y+
0329 9020021E LDS R2,_OSIntNesting
032B 9030021D LDS R3,_OSLockNesting
032D 2832 OR R3,R2
032E F009 BEQ 0x0330
032F C04D RJMP 0x037D
0330 E384 LDI R24,0x34
0331 E090 LDI R25,0
0332 91E0021A LDS R30,_OSRdyGrp
0334 27FF CLR R31
0335 0FE8 ADD R30,R24
0336 1FF9 ADC R31,R25
0337 90A4 LPM R10,0(Z)
0338 E188 LDI R24,0x18
0339 E092 LDI R25,2
033A 2DEA MOV R30,R10
033B 27FF CLR R31
033C 0FE8 ADD R30,R24
033D 1FF9 ADC R31,R25
033E 81E0 LDD R30,Z+0
033F 27FF CLR R31
0340 E384 LDI R24,0x34
0341 E090 LDI R25,0
0342 0FE8 ADD R30,R24
0343 1FF9 ADC R31,R25
0344 9024 LPM R2,0(Z)
0345 2433 CLR R3
0346 2C4A MOV R4,R10
0347 2455 CLR R5
0348 0C44 LSL R4
0349 1C55 ROL R5
034A 0C44 LSL R4
034B 1C55 ROL R5
034C 0C44 LSL R4
034D 1C55 ROL R5
034E 0C42 ADD R4,R2
034F 1C53 ADC R5,R3
0350 9240021B STS _OSPrioHighRdy,R4
0352 9020021C LDS R2,_OSPrioCur
0354 1442 CP R4,R2
0355 F139 BEQ 0x037D
0356 2C24 MOV R2,R4
0357 E082 LDI R24,2
0358 9D82 MUL R24,R2
0359 01F0 MOVW R30,R0
035A EE8E LDI R24,0xEE
035B E091 LDI R25,1
035C 0FE8 ADD R30,R24
035D 1FF9 ADC R31,R25
035E 8020 LDD R2,Z+0
035F 8031 LDD R3,Z+1
0360 92300211 STS _OSTCBHighRdy+1,R3
0362 92200210 STS _OSTCBHighRdy,R2
0364 E081 LDI R24,1
0365 E090 LDI R25,0
0366 E0A0 LDI R26,0
0367 E0B0 LDI R27,0
0368 90400237 LDS R4,_OSCtxSwCtr+2
036A 90500238 LDS R5,_OSCtxSwCtr+3
036C 90200235 LDS R2,_OSCtxSwCtr
036E 90300236 LDS R3,_OSCtxSwCtr+1
0370 0E28 ADD R2,R24
0371 1E39 ADC R3,R25
0372 1E4A ADC R4,R26
0373 1E5B ADC R5,R27
0374 92300236 STS _OSCtxSwCtr+1,R3
0376 92200235 STS _OSCtxSwCtr,R2
0378 92500238 STS _OSCtxSwCtr+3,R5
037A 92400237 STS _OSCtxSwCtr+2,R4
037C D353 RCALL _OSCtxSw
037D 930A ST R16,-Y
037E 910F POP R16
037F BF0F OUT 0x3F,R16
0380 9109 LD R16,Y+
0381 D45F RCALL pop_gset3x
0382 9508 RET
_OSStart:
x --> R12
y --> R10
0383 D470 RCALL push_gset4x
0384 90200217 LDS R2,_OSRunning
0386 2022 TST R2
0387 F009 BEQ 0x0389
0388 C038 RJMP 0x03C1
0389 E384 LDI R24,0x34
038A E090 LDI R25,0
038B 91E0021A LDS R30,_OSRdyGrp
038D 27FF CLR R31
038E 0FE8 ADD R30,R24
038F 1FF9 ADC R31,R25
0390 90A4 LPM R10,0(Z)
0391 E188 LDI R24,0x18
0392 E092 LDI R25,2
0393 2DEA MOV R30,R10
0394 27FF CLR R31
0395 0FE8 ADD R30,R24
0396 1FF9 ADC R31,R25
0397 81E0 LDD R30,Z+0
0398 27FF CLR R31
0399 E384 LDI R24,0x34
039A E090 LDI R25,0
039B 0FE8 ADD R30,R24
039C 1FF9 ADC R31,R25
039D 90C4 LPM R12,0(Z)
039E 2C2C MOV R2,R12
039F 2433 CLR R3
03A0 2C4A MOV R4,R10
03A1 2455 CLR R5
03A2 0C44 LSL R4
03A3 1C55 ROL R5
03A4 0C44 LSL R4
03A5 1C55 ROL R5
03A6 0C44 LSL R4
03A7 1C55 ROL R5
03A8 0C42 ADD R4,R2
03A9 1C53 ADC R5,R3
03AA 9240021B STS _OSPrioHighRdy,R4
03AC 2C24 MOV R2,R4
03AD 9220021C STS _OSPrioCur,R2
03AF E082 LDI R24,2
03B0 9D82 MUL R24,R2
03B1 01F0 MOVW R30,R0
03B2 EE8E LDI R24,0xEE
03B3 E091 LDI R25,1
03B4 0FE8 ADD R30,R24
03B5 1FF9 ADC R31,R25
03B6 8020 LDD R2,Z+0
03B7 8031 LDD R3,Z+1
03B8 92300211 STS _OSTCBHighRdy+1,R3
03BA 92200210 STS _OSTCBHighRdy,R2
03BC 92300215 STS _OSTCBCur+1,R3
03BE 92200214 STS _OSTCBCur,R2
03C0 D2DF RCALL _OSStartHighRdy
03C1 D42B RCALL pop_gset4x
03C2 9508 RET
_OSTaskIdle:
pdata --> R16
03C3 930A ST R16,-Y
03C4 B70F IN R16,0x3F
03C5 94F8 BCLR 7
03C6 930F PUSH R16
03C7 9109 LD R16,Y+
03C8 E081 LDI R24,1
03C9 E090 LDI R25,0
03CA E0A0 LDI R26,0
03CB E0B0 LDI R27,0
03CC 90400221 LDS R4,_OSIdleCtr+2
03CE 90500222 LDS R5,_OSIdleCtr+3
03D0 9020021F LDS R2,_OSIdleCtr
03D2 90300220 LDS R3,_OSIdleCtr+1
03D4 0E28 ADD R2,R24
03D5 1E39 ADC R3,R25
03D6 1E4A ADC R4,R26
03D7 1E5B ADC R5,R27
03D8 92300220 STS _OSIdleCtr+1,R3
03DA 9220021F STS _OSIdleCtr,R2
03DC 92500222 STS _OSIdleCtr+3,R5
03DE 92400221 STS _OSIdleCtr+2,R4
03E0 930A ST R16,-Y
03E1 910F POP R16
03E2 BF0F OUT 0x3F,R16
03E3 9109 LD R16,Y+
03E4 CFDE RJMP _OSTaskIdle
03E5 9508 RET
_OSTCBInit:
ptcb --> R10
opt --> Y+10
pext --> Y+8
stk_size --> Y+6
id --> Y+4
pbos --> Y+2
ptos --> R18
prio --> R16
03E6 D40A RCALL push_gset3x
03E7 930A ST R16,-Y
03E8 B70F IN R16,0x3F
03E9 94F8 BCLR 7
03EA 930F PUSH R16
03EB 9109 LD R16,Y+
03EC 90A00212 LDS R10,_OSTCBFreeList
03EE 90B00213 LDS R11,_OSTCBFreeList+1
03F0 20AA TST R10
03F1 F419 BNE 0x03F5
03F2 20BB TST R11
03F3 F409 BNE 0x03F5
03F4 C073 RJMP 0x0468
03F5 01F5 MOVW R30,R10
03F6 8022 LDD R2,Z+2
03F7 8033 LDD R3,Z+3
03F8 92300213 STS _OSTCBFreeList+1,R3
03FA 92200212 STS _OSTCBFreeList,R2
03FC 930A ST R16,-Y
03FD 910F POP R16
03FE BF0F OUT 0x3F,R16
03FF 9109 LD R16,Y+
0400 8320 STD Z+0,R18
0401 8331 STD Z+1,R19
0402 8701 STD Z+9,R16
0403 2422 CLR R2
0404 8620 STD Z+8,R2
0405 2433 CLR R3
0406 8226 STD Z+6,R2
0407 8237 STD Z+7,R3
0408 2E20 MOV R2,R16
0409 9426 LSR R2
040A 9426 LSR R2
040B 9426 LSR R2
040C 8623 STD Z+11,R2
040D E28C LDI R24,0x2C
040E E090 LDI R25,0
040F 85E3 LDD R30,Z+11
0410 27FF CLR R31
0411 0FE8 ADD R30,R24
0412 1FF9 ADC R31,R25
0413 91E4 LPM R30,0(Z)
0414 01D5 MOVW R26,R10
0415 961D ADIW R26,0xD
0416 93EC ST R30,0(X)
0417 2F80 MOV R24,R16
0418 7087 ANDI R24,7
0419 01F5 MOVW R30,R10
041A 8782 STD Z+10,R24
041B E28C LDI R24,0x2C
041C E090 LDI R25,0
041D 85E2 LDD R30,Z+10
041E 27FF CLR R31
041F 0FE8 ADD R30,R24
0420 1FF9 ADC R31,R25
0421 91E4 LPM R30,0(Z)
0422 01D5 MOVW R26,R10
0423 961C ADIW R26,0xC
0424 93EC ST R30,0(X)
0425 930A ST R16,-Y
0426 B70F IN R16,0x3F
0427 94F8 BCLR 7
0428 930F PUSH R16
0429 9109 LD R16,Y+
042A E082 LDI R24,2
042B 9F80 MUL R24,R16
042C 01F0 MOVW R30,R0
042D EE8E LDI R24,0xEE
042E E091 LDI R25,1
042F 0FE8 ADD R30,R24
0430 1FF9 ADC R31,R25
0431 82A0 STD Z+0,R10
0432 82B1 STD Z+1,R11
0433 9020020E LDS R2,_OSTCBList
0435 9030020F LDS R3,_OSTCBList+1
0437 01F5 MOVW R30,R10
0438 8222 STD Z+2,R2
0439 8233 STD Z+3,R3
043A 2422 CLR R2
043B 2433 CLR R3
043C 8224 STD Z+4,R2
043D 8235 STD Z+5,R3
043E 9020020E LDS R2,_OSTCBList
0440 9030020F LDS R3,_OSTCBList+1
0442 2022 TST R2
0443 F411 BNE 0x0446
0444 2033 TST R3
0445 F031 BEQ 0x044C
0446 91E0020E LDS R30,_OSTCBList
0448 91F0020F LDS R31,_OSTCBList+1
044A 82A4 STD Z+4,R10
044B 82B5 STD Z+5,R11
044C 92B0020F STS _OSTCBList+1,R11
044E 92A0020E STS _OSTCBList,R10
0450 01F5 MOVW R30,R10
0451 8425 LDD R2,Z+13
0452 9030021A LDS R3,_OSRdyGrp
0454 2832 OR R3,R2
0455 9230021A STS _OSRdyGrp,R3
0457 E188 LDI R24,0x18
0458 E092 LDI R25,2
0459 8423 LDD R2,Z+11
045A 2433 CLR R3
045B 0E28 ADD R2,R24
045C 1E39 ADC R3,R25
045D 8444 LDD R4,Z+12
045E 01F1 MOVW R30,R2
045F 8050 LDD R5,Z+0
0460 2854 OR R5,R4
0461 8250 STD Z+0,R5
0462 930A ST R16,-Y
0463 910F POP R16
0464 BF0F OUT 0x3F,R16
0465 9109 LD R16,Y+
0466 2700 CLR R16
0467 C005 RJMP 0x046D
0468 930A ST R16,-Y
0469 910F POP R16
046A BF0F OUT 0x3F,R16
046B 9109 LD R16,Y+
046C E406 LDI R16,0x46
046D D373 RCALL pop_gset3x
046E 9508 RET
_OSTimeTick:
ptcb --> R16
046F 9100020E LDS R16,_OSTCBList
0471 9110020F LDS R17,_OSTCBList+1
0473 C03B RJMP 0x04AF
0474 930A ST R16,-Y
0475 B70F IN R16,0x3F
0476 94F8 BCLR 7
0477 930F PUSH R16
0478 9109 LD R16,Y+
0479 01F8 MOVW R30,R16
047A 8026 LDD R2,Z+6
047B 8037 LDD R3,Z+7
047C 2022 TST R2
047D F419 BNE 0x0481
047E 2033 TST R3
047F F409 BNE 0x0481
0480 C027 RJMP 0x04A8
0481 01C8 MOVW R24,R16
0482 9606 ADIW R24,6
0483 01FC MOVW R30,R24
0484 8180 LDD R24,Z+0
0485 8191 LDD R25,Z+1
0486 9701 SBIW R24,1
0487 012C MOVW R4,R24
0488 8240 STD Z+0,R4
0489 8251 STD Z+1,R5
048A 3080 CPI R24,0
048B 0789 CPC R24,R25
048C F4D9 BNE 0x04A8
048D 01F8 MOVW R30,R16
048E 8420 LDD R2,Z+8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -