main_frame.lst
来自「mega128平台下」· LST 代码 · 共 2,074 行 · 第 1/5 页
LST
2,074 行
031E 940E0894 CALL _start_T0
0320 91800102 LDS R24,sync_count
0322 91900103 LDS R25,sync_count+1
0324 9701 SBIW R24,1
0325 93900103 STS sync_count+1,R25
0327 93800102 STS sync_count,R24
0329 3080 CPI R24,0
032A 0789 CPC R24,R25
032B F441 BNE 0x0334
032C 2422 CLR R2
032D 922001E1 STS counter_sync,R2
032F EF24 LDI R18,0xF4
0330 E031 LDI R19,1
0331 2700 CLR R16
0332 940E092D CALL _start_T1
0334 96A0 ADIW R28,0x20
0335 940E11AC CALL pop_gset2
0337 9508 RET
_resend:
0338 940E11C0 CALL push_gset1
033A EF48 LDI R20,0xF8
033B E051 LDI R21,1
033C 918001E0 LDS R24,counter_data
033E 5F8F SUBI R24,0xFF
033F 938001E0 STS counter_data,R24
0341 2E28 MOV R2,R24
0342 922001FE STS 0x1FE,R2
0344 E220 LDI R18,0x20
0345 018A MOVW R16,R20
0346 940E04B4 CALL _CC1100_send
0348 940E11C3 CALL pop_gset1
034A 9508 RET
_T2_timeout:
034B 918001E0 LDS R24,counter_data
034D 3083 CPI R24,3
034E F450 BCC 0x0359
034F E80C LDI R16,0x8C
0350 E010 LDI R17,0
0351 940E0419 CALL _post
0353 EF24 LDI R18,0xF4
0354 E031 LDI R19,1
0355 2700 CLR R16
0356 940E09CD CALL _start_T2
0358 C005 RJMP 0x035E
0359 2422 CLR R2
035A 922001E0 STS counter_data,R2
035C 940E0A5C CALL _stop_T2
035E 9508 RET
_T3_timeout:
035F 940E11BE CALL push_gset2
0361 2744 CLR R20
0362 C02A RJMP 0x038D
0363 E080 LDI R24,0
0364 E091 LDI R25,1
0365 2FE4 MOV R30,R20
0366 27FF CLR R31
0367 0FE8 ADD R30,R24
0368 1FF9 ADC R31,R25
0369 8180 LDD R24,Z+0
036A 3083 CPI R24,3
036B F501 BNE 0x038C
036C E084 LDI R24,4
036D 9F84 MUL R24,R20
036E 01F0 MOVW R30,R0
036F EE85 LDI R24,0xE5
0370 E091 LDI R25,1
0371 0FE8 ADD R30,R24
0372 1FF9 ADC R31,R25
0373 2422 CLR R2
0374 8220 STD Z+0,R2
0375 E084 LDI R24,4
0376 9F84 MUL R24,R20
0377 01F0 MOVW R30,R0
0378 EE86 LDI R24,0xE6
0379 E091 LDI R25,1
037A 0FE8 ADD R30,R24
037B 1FF9 ADC R31,R25
037C 8220 STD Z+0,R2
037D E084 LDI R24,4
037E 9F84 MUL R24,R20
037F 01F0 MOVW R30,R0
0380 EE87 LDI R24,0xE7
0381 E091 LDI R25,1
0382 0FE8 ADD R30,R24
0383 1FF9 ADC R31,R25
0384 8220 STD Z+0,R2
0385 E080 LDI R24,0
0386 E091 LDI R25,1
0387 2FE4 MOV R30,R20
0388 27FF CLR R31
0389 0FE8 ADD R30,R24
038A 1FF9 ADC R31,R25
038B 8220 STD Z+0,R2
038C 9543 INC R20
038D 3042 CPI R20,2
038E F408 BCC 0x0390
038F CFD3 RJMP 0x0363
0390 E041 LDI R20,1
0391 C00F RJMP 0x03A1
0392 EE83 LDI R24,0xE3
0393 E091 LDI R25,1
0394 2FE4 MOV R30,R20
0395 27FF CLR R31
0396 0FE8 ADD R30,R24
0397 1FF9 ADC R31,R25
0398 8020 LDD R2,Z+0
0399 EF8E LDI R24,0xFE
039A E091 LDI R25,1
039B 2FE4 MOV R30,R20
039C 27FF CLR R31
039D 0FE8 ADD R30,R24
039E 1FF9 ADC R31,R25
039F 8220 STD Z+0,R2
03A0 9543 INC R20
03A1 3049 CPI R20,0x9
03A2 F378 BCS 0x0392
03A3 918001E0 LDS R24,counter_data
03A5 5F8F SUBI R24,0xFF
03A6 938001E0 STS counter_data,R24
03A8 2E28 MOV R2,R24
03A9 922001FE STS 0x1FE,R2
03AB EF68 LDI R22,0xF8
03AC E071 LDI R23,1
03AD E220 LDI R18,0x20
03AE 018B MOVW R16,R22
03AF 940E04B4 CALL _CC1100_send
03B1 EF24 LDI R18,0xF4
03B2 E031 LDI R19,1
03B3 2700 CLR R16
03B4 940E09CD CALL _start_T2
03B6 940E07B5 CALL _led2Toggle
03B8 940E11AC CALL pop_gset2
03BA 9508 RET
_delay_1ms:
03BB 940E11BE CALL push_gset2
03BD 01B8 MOVW R22,R16
03BE E041 LDI R20,1
03BF E050 LDI R21,0
03C0 C002 RJMP 0x03C3
03C1 5F4F SUBI R20,0xFF
03C2 4F5F SBCI R21,0xFF
03C3 E80F LDI R16,0x8F
03C4 E010 LDI R17,0
03C5 019B MOVW R18,R22
03C6 940E116C CALL empy16s
03C8 01C8 MOVW R24,R16
03C9 9702 SBIW R24,2
03CA 1748 CP R20,R24
03CB 0759 CPC R21,R25
03CC F3A0 BCS 0x03C1
03CD 940E11AC CALL pop_gset2
03CF 9508 RET
_delay_x:
03D0 940E11BE CALL push_gset2
03D2 01B8 MOVW R22,R16
03D3 2744 CLR R20
03D4 2755 CLR R21
03D5 C005 RJMP 0x03DB
03D6 E007 LDI R16,7
03D7 E010 LDI R17,0
03D8 DFE2 RCALL _delay_1ms
03D9 5F4F SUBI R20,0xFF
03DA 4F5F SBCI R21,0xFF
03DB 1746 CP R20,R22
03DC 0757 CPC R21,R23
03DD F3C0 BCS 0x03D6
03DE 940E11AC CALL pop_gset2
03E0 9508 RET
_main:
03E1 DEC0 RCALL _init_devices
03E2 940E03F9 CALL _sched_init
03E4 DD79 RCALL _identifier_init
03E5 E001 LDI R16,1
03E6 940E0737 CALL _CC1100_setInterrupt
03E8 C002 RJMP 0x03EB
03E9 940E0476 CALL _run_task
03EB CFFD RJMP 0x03E9
03EC 9508 RET
_atomic_start:
result --> R16
03ED B70F IN R16,0x3F
03EE 94F8 BCLR 7
03EF 9508 RET
_atomic_end:
oldSreg --> R16
03F0 BF0F OUT 0x3F,R16
03F1 9508 RET
_TOSH_wait:
03F2 0000 NOP
03F3 0000 NOP
03F4 9508 RET
_TOSH_sleep:
03F5 B785 IN R24,0x35
03F6 6280 ORI R24,0x20
03F7 BF85 OUT 0x35,R24
03F8 9508 RET
_sched_init:
i --> R20
03F9 940E11C0 CALL push_gset1
03FB 2422 CLR R2
03FC 92200238 STS TOSH_sched_free,R2
03FE 92200239 STS TOSH_sched_full,R2
0400 2744 CLR R20
0401 2755 CLR R21
0402 E002 LDI R16,2
0403 E010 LDI R17,0
0404 019A MOVW R18,R20
0405 940E116C CALL empy16s
0407 01F8 MOVW R30,R16
0408 E38A LDI R24,0x3A
0409 E092 LDI R25,2
040A 0FE8 ADD R30,R24
040B 1FF9 ADC R31,R25
040C 2422 CLR R2
040D 2433 CLR R3
040E 8231 STD Z+1,R3
040F 8220 STD Z+0,R2
0410 5F4F SUBI R20,0xFF
0411 4F5F SBCI R21,0xFF
0412 3048 CPI R20,0x8
0413 E0E0 LDI R30,0
0414 075E CPC R21,R30
0415 F364 BLT 0x0402
0416 940E11C3 CALL pop_gset1
0418 9508 RET
_post:
0419 940E11BC CALL push_gset3
041B 01B8 MOVW R22,R16
041C DFD0 RCALL _atomic_start
041D 2F40 MOV R20,R16
041E 90A00238 LDS R10,TOSH_sched_free
0420 E082 LDI R24,2
0421 9D8A MUL R24,R10
0422 01F0 MOVW R30,R0
0423 E38A LDI R24,0x3A
0424 E092 LDI R25,2
0425 0FE8 ADD R30,R24
0426 1FF9 ADC R31,R25
0427 8020 LDD R2,Z+0
0428 8031 LDD R3,Z+1
0429 2022 TST R2
042A F4A1 BNE 0x043F
042B 2033 TST R3
042C F491 BNE 0x043F
042D 2D8A MOV R24,R10
042E 5F8F SUBI R24,0xFF
042F 7087 ANDI R24,7
0430 93800238 STS TOSH_sched_free,R24
0432 E082 LDI R24,2
0433 9D8A MUL R24,R10
0434 01F0 MOVW R30,R0
0435 E38A LDI R24,0x3A
0436 E092 LDI R25,2
0437 0FE8 ADD R30,R24
0438 1FF9 ADC R31,R25
0439 8371 STD Z+1,R23
043A 8360 STD Z+0,R22
043B 2F04 MOV R16,R20
043C DFB3 RCALL _atomic_end
043D E001 LDI R16,1
043E C003 RJMP 0x0442
043F 2F04 MOV R16,R20
0440 DFAF RCALL _atomic_end
0441 2700 CLR R16
0442 940E11AF CALL pop_gset3
0444 9508 RET
_TOSH_run_next_task:
fInterruptFlags --> R22
func --> R20
old_full --> R10
0445 940E11BC CALL push_gset3
0447 DFA5 RCALL _atomic_start
0448 2F60 MOV R22,R16
0449 90A00239 LDS R10,TOSH_sched_full
044B E082 LDI R24,2
044C 9D8A MUL R24,R10
044D 01F0 MOVW R30,R0
044E E38A LDI R24,0x3A
044F E092 LDI R25,2
0450 0FE8 ADD R30,R24
0451 1FF9 ADC R31,R25
0452 8140 LDD R20,Z+0
0453 8151 LDD R21,Z+1
0454 3040 CPI R20,0
0455 0745 CPC R20,R21
0456 F429 BNE 0x045C
0457 2F06 MOV R16,R22
0458 DF97 RCALL _atomic_end
0459 2700 CLR R16
045A 2711 CLR R17
045B C017 RJMP 0x0473
045C E082 LDI R24,2
045D 9D8A MUL R24,R10
045E 01F0 MOVW R30,R0
045F E38A LDI R24,0x3A
0460 E092 LDI R25,2
0461 0FE8 ADD R30,R24
0462 1FF9 ADC R31,R25
0463 2422 CLR R2
0464 2433 CLR R3
0465 8231 STD Z+1,R3
0466 8220 STD Z+0,R2
0467 2D8A MOV R24,R10
0468 5F8F SUBI R24,0xFF
0469 7087 ANDI R24,7
046A 93800239 STS TOSH_sched_full,R24
046C 2F06 MOV R16,R22
046D DF82 RCALL _atomic_end
046E 01FA MOVW R30,R20
046F 940E11D7 CALL xicall
0471 E001 LDI R16,1
0472 E010 LDI R17,0
0473 940E11AF CALL pop_gset3
0475 9508 RET
_run_task:
0476 DFCE RCALL _TOSH_run_next_task
0477 3000 CPI R16,0
0478 0701 CPC R16,R17
0479 F7E1 BNE 0x0476
047A 9180030D LDS R24,T1+1
047C 3081 CPI R24,1
047D F041 BEQ 0x0486
047E 918002FE LDS R24,T2+1
0480 3081 CPI R24,1
0481 F021 BEQ 0x0486
0482 918002EF LDS R24,T3+1
0484 3081 CPI R24,1
0485 F409 BNE 0x0487
0486 C006 RJMP 0x048D
0487 DFBD RCALL _TOSH_run_next_task
0488 3000 CPI R16,0
0489 0701 CPC R16,R17
048A F7E1 BNE 0x0487
048B DF69 RCALL _TOSH_sleep
048C DF65 RCALL _TOSH_wait
048D 9508 RET
___nesc_enable_interrupt:
048E 9478 BSET 7
048F 9508 RET
_SET_CLOCK:
0490 91800065 LDS R24,0x65
0492 6081 ORI R24,1
0493 93800065 STS 0x65,R24
0495 9508 RET
_CLEAR_CLOCK:
0496 91800065 LDS R24,0x65
0498 7F8E ANDI R24,0xFE
0499 93800065 STS 0x65,R24
049B 9508 RET
_SET_IN:
049C 91800065 LDS R24,0x65
049E 6082 ORI R24,2
049F 93800065 STS 0x65,R24
04A1 9508 RET
_CLEAR_IN:
04A2 91800065 LDS R24,0x65
04A4 7F8D ANDI R24,0xFD
04A5 93800065 STS 0x65,R24
04A7 9508 RET
_SET_CSN:
04A8 9AAA SBI 0x15,2
04A9 9508 RET
_CLEAR_CSN:
04AA 98AA CBI 0x15,2
04AB 9508 RET
_GET_OUT:
04AC 9B99 SBIS 0x13,1
04AD C003 RJMP 0x04B1
04AE E001 LDI R16,1
04AF E010 LDI R17,0
04B0 C002 RJMP 0x04B3
04B1 2700 CLR R16
04B2 2711 CLR R17
04B3 9508 RET
_CC1100_send:
04B4 940E11BE CALL push_gset2
04B6 2F62 MOV R22,R18
04B7 01A8 MOVW R20,R16
04B8 2F26 MOV R18,R22
04B9 2733 CLR R19
04BA 018A MOVW R16,R20
04BB D29F RCALL _CC1100_sendRFburst
04BC 940E11AC CALL pop_gset2
04BE 9508 RET
_Dly10us:
04BF 2700 CLR R16
04C0 C00B RJMP 0x04CC
04C1 0000 NOP
04C2 0000 NOP
04C3 0000 NOP
04C4 0000 NOP
04C5 0000 NOP
04C6 0000 NOP
04C7 0000 NOP
04C8 0000 NOP
04C9 0000 NOP
04CA 0000 NOP
04CB 9503 INC R16
04CC 300A CPI R16,0xA
04CD F398 BCS 0x04C1
04CE 9508 RET
_Dly1mS:
04CF 940E11BE CALL push_gset2
04D1 C012 RJMP 0x04E4
04D2 2744 CLR R20
04D3 2755 CLR R21
04D4 C00B RJMP 0x04E0
04D5 2766 CLR R22
04D6 2777 CLR R23
04D7 C002 RJMP 0x04DA
04D8 5F6F SUBI R22,0xFF
04D9 4F7F SBCI R23,0xFF
04DA 3664 CPI R22,0x64
04DB E0E0 LDI R30,0
04DC 077E CPC R23,R30
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?