⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 649               	.LBB12:
 650               	.LBB13:
 651               	.LBB14:
 653               	.LM60:
 654 0348 0E94 0000 		call AtomicStart
 656               	.LM61:
 657 034c 97B7      		in r25,87-0x20
 658 034e 9E7F      		andi r25,lo8(-2)
 659 0350 97BF      		out 87-0x20,r25
 661               	.LM62:
 662 0352 97B7      		in r25,87-0x20
 663 0354 9D7F      		andi r25,lo8(-3)
 664 0356 97BF      		out 87-0x20,r25
 666               	.LM63:
 667 0358 90B7      		in r25,80-0x20
 668 035a 9860      		ori r25,lo8(8)
 669 035c 90BF      		out 80-0x20,r25
 671               	.LM64:
 672 035e 9BE0      		ldi r25,lo8(11)
 673 0360 93BF      		out 83-0x20,r25
 675               	.LM65:
 676 0362 12BE      		out 82-0x20,__zero_reg__
 678               	.LM66:
 679 0364 11BF      		out 81-0x20,r17
 681               	.LM67:
 682 0366 97B7      		in r25,87-0x20
 683 0368 9260      		ori r25,lo8(2)
 684 036a 97BF      		out 87-0x20,r25
 686               	.LM68:
 687 036c 0E94 0000 		call AtomicEnd
 688               	.LBE14:
 689               	.LBE13:
 690               	.LBE12:
 230:timer.c       **** 	return TimerHPLClockSetRate(TimerM_mInterval, TimerM_mScale);
 231:timer.c       **** }
 692               	.LM69:
 693 0370 81E0      		ldi r24,lo8(1)
 694 0372 90E0      		ldi r25,hi8(1)
 695               	/* epilogue: frame size=0 */
 696 0374 1F91      		pop r17
 697 0376 0895      		ret
 698               	/* epilogue end (size=2) */
 699               	/* function TimerStdControlInit size 48 (45) */
 708               	.global	TimerTimerStart
 710               	TimerTimerStart:
 232:timer.c       **** 
 233:timer.c       **** result_t TimerTimerStart(uint8_t id, char type, uint32_t interval)
 234:timer.c       **** {
 712               	.LM70:
 713               	/* prologue: frame size=0 */
 714 0378 9F92      		push r9
 715 037a AF92      		push r10
 716 037c BF92      		push r11
 717 037e CF92      		push r12
 718 0380 DF92      		push r13
 719 0382 EF92      		push r14
 720 0384 FF92      		push r15
 721 0386 0F93      		push r16
 722 0388 1F93      		push r17
 723 038a CF93      		push r28
 724 038c DF93      		push r29
 725               	/* prologue end (size=11) */
 726 038e 5901      		movw r10,r18
 727 0390 6A01      		movw r12,r20
 235:timer.c       **** 	uint8_t diff;
 236:timer.c       **** 	
 237:timer.c       **** 	if (id >= NUM_TIMERS) {
 729               	.LM71:
 730 0392 8230      		cpi r24,lo8(2)
 731 0394 10F4      		brsh .L46
 238:timer.c       **** 		return FAIL;
 239:timer.c       ****     }
 240:timer.c       **** 	if (type > 1) {
 733               	.LM72:
 734 0396 6230      		cpi r22,lo8(2)
 735 0398 18F0      		brlo .L44
 736               	.L46:
 241:timer.c       **** 		return FAIL;
 738               	.LM73:
 739 039a 80E0      		ldi r24,lo8(0)
 740 039c 90E0      		ldi r25,hi8(0)
 741 039e 57C0      		rjmp .L42
 742               	.L44:
 242:timer.c       ****     }
 243:timer.c       **** 	TimerM_mTimerList[id].ticks = interval;
 744               	.LM74:
 745 03a0 E82E      		mov r14,r24
 746 03a2 FF24      		clr r15
 747 03a4 8701      		movw r16,r14
 748 03a6 53E0      		ldi r21,3
 749 03a8 000F      	1:	lsl r16
 750 03aa 111F      		rol r17
 751 03ac 5A95      		dec r21
 752 03ae E1F7      		brne 1b
 753 03b0 0E0D      		add r16,r14
 754 03b2 1F1D      		adc r17,r15
 755 03b4 0050      		subi r16,lo8(-(TimerM_mTimerList))
 756 03b6 1040      		sbci r17,hi8(-(TimerM_mTimerList))
 757 03b8 F801      		movw r30,r16
 758 03ba A182      		std Z+1,r10
 759 03bc B282      		std Z+2,r11
 760 03be C382      		std Z+3,r12
 761 03c0 D482      		std Z+4,r13
 244:timer.c       **** 	TimerM_mTimerList[id].type = type;
 763               	.LM75:
 764 03c2 6083      		st Z,r22
 765               	.LBB15:
 245:timer.c       **** 	
 246:timer.c       **** 	{ uint8_t atomicState = AtomicStart();
 767               	.LM76:
 768 03c4 0E94 0000 		call AtomicStart
 769 03c8 982E      		mov r9,r24
 247:timer.c       ****     {
 248:timer.c       **** 		diff = * (volatile unsigned char *)(0x32 + 0x20);
 771               	.LM77:
 772 03ca 82B7      		in r24,82-0x20
 249:timer.c       **** 		interval += diff;
 774               	.LM78:
 775 03cc A80E      		add r10,r24
 776 03ce B11C      		adc r11,__zero_reg__
 777 03d0 C11C      		adc r12,__zero_reg__
 778 03d2 D11C      		adc r13,__zero_reg__
 250:timer.c       **** 		TimerM_mTimerList[id].ticksLeft = interval;
 780               	.LM79:
 781 03d4 F801      		movw r30,r16
 782 03d6 A582      		std Z+5,r10
 783 03d8 B682      		std Z+6,r11
 784 03da C782      		std Z+7,r12
 785 03dc D086      		std Z+8,r13
 251:timer.c       **** 		TimerM_mState |= 0x1 << id;
 787               	.LM80:
 788 03de C1E0      		ldi r28,lo8(1)
 789 03e0 D0E0      		ldi r29,hi8(1)
 790 03e2 CE01      		movw r24,r28
 791 03e4 02C0      		rjmp 2f
 792 03e6 880F      	1:	lsl r24
 793 03e8 991F      		rol r25
 794 03ea EA94      	2:	dec r14
 795 03ec E2F7      		brpl 1b
 796 03ee 9C01      		movw r18,r24
 797 03f0 4427      		clr r20
 798 03f2 37FD      		sbrc r19,7
 799 03f4 4095      		com r20
 800 03f6 542F      		mov r21,r20
 801 03f8 8091 0000 		lds r24,TimerM_mState
 802 03fc 9091 0000 		lds r25,(TimerM_mState)+1
 803 0400 A091 0000 		lds r26,(TimerM_mState)+2
 804 0404 B091 0000 		lds r27,(TimerM_mState)+3
 805 0408 822B      		or r24,r18
 806 040a 932B      		or r25,r19
 807 040c A42B      		or r26,r20
 808 040e B52B      		or r27,r21
 809 0410 8093 0000 		sts TimerM_mState,r24
 810 0414 9093 0000 		sts (TimerM_mState)+1,r25
 811 0418 A093 0000 		sts (TimerM_mState)+2,r26
 812 041c B093 0000 		sts (TimerM_mState)+3,r27
 252:timer.c       **** 		if (interval < TimerM_mInterval) {
 814               	.LM81:
 815 0420 8091 0000 		lds r24,TimerM_mInterval
 816 0424 9927      		clr r25
 817 0426 AA27      		clr r26
 818 0428 BB27      		clr r27
 819 042a A816      		cp r10,r24
 820 042c B906      		cpc r11,r25
 821 042e CA06      		cpc r12,r26
 822 0430 DB06      		cpc r13,r27
 823 0432 48F4      		brsh .L45
 253:timer.c       **** 			TimerM_mInterval = interval;
 825               	.LM82:
 826 0434 A092 0000 		sts TimerM_mInterval,r10
 254:timer.c       **** 			TimerHPLClockSetInterval(TimerM_mInterval);
 828               	.LM83:
 829 0438 8A2D      		mov r24,r10
 830 043a 0E94 0000 		call TimerHPLClockSetInterval
 255:timer.c       **** 			TimerM_setIntervalFlag = 0;
 832               	.LM84:
 833 043e 1092 0000 		sts TimerM_setIntervalFlag,__zero_reg__
 256:timer.c       **** 			PowerManagementAdjust();
 835               	.LM85:
 836 0442 0E94 0000 		call PowerManagementAdjust
 837               	.L45:
 257:timer.c       ****         }
 258:timer.c       ****     }
 259:timer.c       ****     AtomicEnd(atomicState); }
 839               	.LM86:
 840 0446 892D      		mov r24,r9
 841 0448 0E94 0000 		call AtomicEnd
 842               	.LBE15:
 260:timer.c       **** 	return SUCCESS;
 844               	.LM87:
 845 044c CE01      		movw r24,r28
 846               	.L42:
 847               	/* epilogue: frame size=0 */
 848 044e DF91      		pop r29
 849 0450 CF91      		pop r28
 850 0452 1F91      		pop r17
 851 0454 0F91      		pop r16
 852 0456 FF90      		pop r15
 853 0458 EF90      		pop r14
 854 045a DF90      		pop r13
 855 045c CF90      		pop r12
 856 045e BF90      		pop r11
 857 0460 AF90      		pop r10
 858 0462 9F90      		pop r9
 859 0464 0895      		ret
 860               	/* epilogue end (size=12) */
 861               	/* function TimerTimerStart size 120 (97) */
 868               	.global	__vector_15
 870               	__vector_15:
 261:timer.c       **** }
 262:timer.c       **** 
 263:timer.c       **** void __attribute((signal))  __vector_15(void)
 264:timer.c       **** {   
 872               	.LM88:
 873               	/* prologue: frame size=0 */
 874 0466 7894      		sei
 875 0468 1F92      		push __zero_reg__
 876 046a 0F92      		push __tmp_reg__
 877 046c 0FB6      		in __tmp_reg__,__SREG__
 878 046e 0F92      		push __tmp_reg__
 879 0470 1124      		clr __zero_reg__
 880 0472 2F93      		push r18
 881 0474 3F93      		push r19
 882 0476 4F93      		push r20
 883 0478 5F93      		push r21
 884 047a 6F93      		push r22
 885 047c 7F93      		push r23
 886 047e 8F93      		push r24
 887 0480 9F93      		push r25
 888 0482 AF93      		push r26
 889 0484 BF93      		push r27
 890 0486 EF93      		push r30
 891 0488 FF93      		push r31
 892               	/* prologue end (size=18) */
 893               	.LBB16:
 265:timer.c       ****     
 266:timer.c       **** 	{ uint8_t atomicState = AtomicStart();
 895               	.LM89:
 896 048a 0E94 0000 		call AtomicStart
 897 048e 982F      		mov r25,r24
 267:timer.c       ****     {
 268:timer.c       **** 		if (HPLClock_set_flag) {
 899               	.LM90:
 900 0490 8091 0000 		lds r24,HPLClock_set_flag
 901 0494 8823      		tst r24
 902 0496 69F0      		breq .L48
 269:timer.c       **** 			HPLClock_mscale = HPLClock_nextScale;
 904               	.LM91:
 905 0498 8091 0000 		lds r24,HPLClock_nextScale
 906 049c 8093 0000 		sts HPLClock_mscale,r24
 270:timer.c       **** 			HPLClock_nextScale |= 0x8;
 908               	.LM92:
 909 04a0 8860      		ori r24,lo8(8)
 910 04a2 8093 0000 		sts HPLClock_nextScale,r24
 271:timer.c       **** 			* (volatile unsigned char *)(0x33 + 0x20) = HPLClock_nextScale;
 912               	.LM93:
 913 04a6 83BF      		out 83-0x20,r24
 272:timer.c       **** 			
 273:timer.c       **** 			* (volatile unsigned char *)(0x31 + 0x20) = HPLClock_minterval;
 915               	.LM94:
 916 04a8 8091 0000 		lds r24,HPLClock_minterval
 917 04ac 81BF      		out 81-0x20,r24
 274:timer.c       **** 			HPLClock_set_flag = 0;
 919               	.LM95:
 920 04ae 1092 0000 		sts HPLClock_set_flag,__zero_reg__
 921               	.L48:
 275:timer.c       ****         }
 276:timer.c       ****     }
 277:timer.c       ****     AtomicEnd(atomicState); }
 923               	.LM96:
 924 04b2 892F      		mov r24,r25
 925 04b4 0E94 0000 		call AtomicEnd
 926               	.LBE16:
 927               	.LBB17:
 928               	.LBB18:
 930               	.LM97:
 931 04b8 80E0      		ldi r24,lo8(pm(TimerHandleFire))
 932 04ba 90E0      		ldi r25,hi8(pm(TimerHandleFire))
 933 04bc 0E94 0000 		call OSPostTask
 934               	.LBE18:
 935               	.LBE17:
 936               	/* epilogue: frame size=0 */
 937 04c0 FF91      		pop r31
 938 04c2 EF91      		pop r30
 939 04c4 BF91      		pop r27
 940 04c6 AF91      		pop r26
 941 04c8 9F91      		pop r25
 942 04ca 8F91      		pop r24
 943 04cc 7F91      		pop r23
 944 04ce 6F91      		pop r22
 945 04d0 5F91      		pop r21
 946 04d2 4F91      		pop r20
 947 04d4 3F91      		pop r19
 948 04d6 2F91      		pop r18
 949 04d8 0F90      		pop __tmp_reg__
 950 04da 0FBE      		out __SREG__,__tmp_reg__
 951 04dc 0F90      		pop __tmp_reg__
 952 04de 1F90      		pop __zero_reg__
 953 04e0 1895      		reti
 954               	/* epilogue end (size=17) */
 955               	/* function __vector_15 size 62 (27) */
 960               		.comm RecordPassed,30,1
 961               		.lcomm TimerM_mState,4
 962               		.lcomm TimerM_setIntervalFlag,1
 963               		.lcomm TimerM_mScale,1
 964               		.lcomm TimerM_mInterval,1
 965               		.lcomm TimerM_queue_head,1
 966               		.lcomm TimerM_queue_tail,1
 967               		.lcomm TimerM_queue_size,1
 968               		.lcomm TimerM_queue,2
 969               		.lcomm HPLClock_set_flag,1
 970               		.lcomm HPLClock_mscale,1
 971               		.lcomm HPLClock_nextScale,1
 972               		.lcomm HPLClock_minterval,1
 973               		.comm TimerM_mTimerList,18,1
 988               		.text
 990               	Letext:
 991               	/* File "timer.c": code  628 = 0x0274 ( 524), prologues  50, epilogues  54 */
DEFINED SYMBOLS
                            *ABS*:00000000 timer.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:86     .text:00000000 TimerHPLClockSetInterval
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:103    .text:00000004 TimerTimerStop
                             .bss:00000000 TimerM_mState
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:961    .bss:00000004 TimerM_setIntervalFlag
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:218    .text:000000cc TimerSignalOneTimer
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:966    .bss:00000009 TimerM_queue_size
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:964    .bss:00000007 TimerM_queue_head
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:967    .bss:0000000a TimerM_queue
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:299    .text:0000011e TimerHandleFire
                            *COM*:00000012 TimerM_mTimerList
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:963    .bss:00000006 TimerM_mInterval
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:965    .bss:00000008 TimerM_queue_tail
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:618    .text:00000318 TimerStdControlInit
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:962    .bss:00000005 TimerM_mScale
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:710    .text:00000378 TimerTimerStart
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:870    .text:00000466 __vector_15
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:968    .bss:0000000c HPLClock_set_flag
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:970    .bss:0000000e HPLClock_nextScale
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:969    .bss:0000000d HPLClock_mscale
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:971    .bss:0000000f HPLClock_minterval
                            *COM*:0000001e RecordPassed
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccMZaaaa.s:990    .text:000004e2 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
AtomicStart
AtomicEnd
Timer0_1_Fired
Timer0_0_Fired
OSPostTask
PowerManagementAdjust

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -