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

📄 timer.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 294               	/* function TimerSignalOneTimer size 42 (42) */
 299               	TimerHandleFire:
 172:timer.c       **** 		TimerTimerFired(itimer);
 173:timer.c       ****     }
 174:timer.c       **** }
 175:timer.c       **** 
 176:timer.c       **** static void TimerEnqueue(uint8_t value)
 177:timer.c       **** {
 178:timer.c       **** 	if (TimerM_queue_tail == NUM_TIMERS - 1) {
 179:timer.c       **** 		TimerM_queue_tail = -1;
 180:timer.c       ****     }
 181:timer.c       **** 	TimerM_queue_tail++;
 182:timer.c       **** 	TimerM_queue_size++;
 183:timer.c       **** 	TimerM_queue[(uint8_t )TimerM_queue_tail] = value;
 184:timer.c       **** }
 185:timer.c       **** 
 186:timer.c       **** static void TimerHandleFire(void)
 187:timer.c       **** {
 301               	.LM25:
 302               	/* prologue: frame size=0 */
 303 011e 8F92      		push r8
 304 0120 9F92      		push r9
 305 0122 AF92      		push r10
 306 0124 BF92      		push r11
 307 0126 CF92      		push r12
 308 0128 DF92      		push r13
 309 012a EF92      		push r14
 310 012c FF92      		push r15
 311 012e 0F93      		push r16
 312 0130 1F93      		push r17
 313 0132 CF93      		push r28
 314 0134 DF93      		push r29
 315               	/* prologue end (size=12) */
 188:timer.c       **** 	uint8_t i;
 189:timer.c       **** 	TimerM_setIntervalFlag = 1;
 317               	.LM26:
 318 0136 81E0      		ldi r24,lo8(1)
 319 0138 8093 0000 		sts TimerM_setIntervalFlag,r24
 190:timer.c       **** 	if (TimerM_mState) 
 321               	.LM27:
 322 013c 8091 0000 		lds r24,TimerM_mState
 323 0140 9091 0000 		lds r25,(TimerM_mState)+1
 324 0144 A091 0000 		lds r26,(TimerM_mState)+2
 325 0148 B091 0000 		lds r27,(TimerM_mState)+3
 326 014c 0097      		sbiw r24,0
 327 014e A105      		cpc r26,__zero_reg__
 328 0150 B105      		cpc r27,__zero_reg__
 329 0152 09F4      		brne .+2
 330 0154 84C0      		rjmp .L18
 191:timer.c       **** 	{
 192:timer.c       **** 		for (i = 0; i < NUM_TIMERS; i++) 
 332               	.LM28:
 333 0156 DD24      		clr r13
 334 0158 00E0      		ldi r16,lo8(TimerM_mTimerList)
 335 015a 10E0      		ldi r17,hi8(TimerM_mTimerList)
 336 015c EE24      		clr r14
 337 015e FF24      		clr r15
 338               	.L28:
 193:timer.c       **** 		{
 194:timer.c       **** 			if (TimerM_mState & (0x1 << i)) 
 340               	.LM29:
 341 0160 61E0      		ldi r22,lo8(1)
 342 0162 70E0      		ldi r23,hi8(1)
 343 0164 0E2C      		mov r0,r14
 344 0166 02C0      		rjmp 2f
 345 0168 660F      	1:	lsl r22
 346 016a 771F      		rol r23
 347 016c 0A94      	2:	dec r0
 348 016e E2F7      		brpl 1b
 349 0170 CB01      		movw r24,r22
 350 0172 AA27      		clr r26
 351 0174 97FD      		sbrc r25,7
 352 0176 A095      		com r26
 353 0178 BA2F      		mov r27,r26
 354 017a 8090 0000 		lds r8,TimerM_mState
 355 017e 9090 0000 		lds r9,(TimerM_mState)+1
 356 0182 A090 0000 		lds r10,(TimerM_mState)+2
 357 0186 B090 0000 		lds r11,(TimerM_mState)+3
 358 018a 8821      		and r24,r8
 359 018c 9921      		and r25,r9
 360 018e AA21      		and r26,r10
 361 0190 BB21      		and r27,r11
 362 0192 0097      		sbiw r24,0
 363 0194 A105      		cpc r26,__zero_reg__
 364 0196 B105      		cpc r27,__zero_reg__
 365 0198 09F4      		brne .+2
 366 019a 57C0      		rjmp .L21
 195:timer.c       **** 			{
 196:timer.c       **** 				TimerM_mTimerList[i].ticksLeft -= TimerM_mInterval + 1;
 368               	.LM30:
 369 019c 8091 0000 		lds r24,TimerM_mInterval
 370 01a0 9927      		clr r25
 371 01a2 0196      		adiw r24,1
 372 01a4 AA27      		clr r26
 373 01a6 97FD      		sbrc r25,7
 374 01a8 A095      		com r26
 375 01aa BA2F      		mov r27,r26
 376 01ac F801      		movw r30,r16
 377 01ae 2581      		ldd r18,Z+5
 378 01b0 3681      		ldd r19,Z+6
 379 01b2 4781      		ldd r20,Z+7
 380 01b4 5085      		ldd r21,Z+8
 381 01b6 281B      		sub r18,r24
 382 01b8 390B      		sbc r19,r25
 383 01ba 4A0B      		sbc r20,r26
 384 01bc 5B0B      		sbc r21,r27
 385 01be 2583      		std Z+5,r18
 386 01c0 3683      		std Z+6,r19
 387 01c2 4783      		std Z+7,r20
 388 01c4 5087      		std Z+8,r21
 197:timer.c       **** 				if (TimerM_mTimerList[i].ticksLeft <= 2) 
 390               	.LM31:
 391 01c6 2330      		cpi r18,lo8(3)
 392 01c8 3105      		cpc r19,__zero_reg__
 393 01ca 4105      		cpc r20,__zero_reg__
 394 01cc 5105      		cpc r21,__zero_reg__
 395 01ce ECF5      		brge .L21
 198:timer.c       **** 				{
 199:timer.c       **** 					if (TimerM_mTimerList[i].type == TIMER_REPEAT) 
 397               	.LM32:
 398 01d0 8081      		ld r24,Z
 399 01d2 8823      		tst r24
 400 01d4 69F4      		brne .L24
 200:timer.c       **** 					{
 201:timer.c       **** 						TimerM_mTimerList[i].ticksLeft += TimerM_mTimerList[i].ticks;
 402               	.LM33:
 403 01d6 8181      		ldd r24,Z+1
 404 01d8 9281      		ldd r25,Z+2
 405 01da A381      		ldd r26,Z+3
 406 01dc B481      		ldd r27,Z+4
 407 01de 280F      		add r18,r24
 408 01e0 391F      		adc r19,r25
 409 01e2 4A1F      		adc r20,r26
 410 01e4 5B1F      		adc r21,r27
 411 01e6 2583      		std Z+5,r18
 412 01e8 3683      		std Z+6,r19
 413 01ea 4783      		std Z+7,r20
 414 01ec 5087      		std Z+8,r21
 415 01ee 13C0      		rjmp .L25
 416               	.L24:
 202:timer.c       ****                     }
 203:timer.c       **** 					else 
 204:timer.c       ****                     {
 205:timer.c       **** 						TimerM_mState &= ~(0x1 << i);
 418               	.LM34:
 419 01f0 CB01      		movw r24,r22
 420 01f2 8095      		com r24
 421 01f4 9095      		com r25
 422 01f6 AA27      		clr r26
 423 01f8 97FD      		sbrc r25,7
 424 01fa A095      		com r26
 425 01fc BA2F      		mov r27,r26
 426 01fe 8822      		and r8,r24
 427 0200 9922      		and r9,r25
 428 0202 AA22      		and r10,r26
 429 0204 BB22      		and r11,r27
 430 0206 8092 0000 		sts TimerM_mState,r8
 431 020a 9092 0000 		sts (TimerM_mState)+1,r9
 432 020e A092 0000 		sts (TimerM_mState)+2,r10
 433 0212 B092 0000 		sts (TimerM_mState)+3,r11
 434               	.L25:
 435               	.LBB7:
 436               	.LBB8:
 438               	.LM35:
 439 0216 8091 0000 		lds r24,TimerM_queue_tail
 440 021a 8130      		cpi r24,lo8(1)
 441 021c 19F4      		brne .L26
 443               	.LM36:
 444 021e 8FEF      		ldi r24,lo8(-1)
 445 0220 8093 0000 		sts TimerM_queue_tail,r24
 446               	.L26:
 448               	.LM37:
 449 0224 9091 0000 		lds r25,TimerM_queue_tail
 450 0228 9F5F      		subi r25,lo8(-(1))
 451 022a 9093 0000 		sts TimerM_queue_tail,r25
 453               	.LM38:
 454 022e 8091 0000 		lds r24,TimerM_queue_size
 455 0232 8F5F      		subi r24,lo8(-(1))
 456 0234 8093 0000 		sts TimerM_queue_size,r24
 458               	.LM39:
 459 0238 E92F      		mov r30,r25
 460 023a FF27      		clr r31
 461 023c E050      		subi r30,lo8(-(TimerM_queue))
 462 023e F040      		sbci r31,hi8(-(TimerM_queue))
 463 0240 D082      		st Z,r13
 464               	.LBE8:
 465               	.LBE7:
 206:timer.c       ****                     }
 207:timer.c       **** 					TimerEnqueue(i);
 208:timer.c       **** 					OSPostTask(TimerSignalOneTimer);
 467               	.LM40:
 468 0242 80E0      		ldi r24,lo8(pm(TimerSignalOneTimer))
 469 0244 90E0      		ldi r25,hi8(pm(TimerSignalOneTimer))
 470 0246 0E94 0000 		call OSPostTask
 471               	.L21:
 473               	.LM41:
 474 024a D394      		inc r13
 475 024c 0894      		sec
 476 024e E11C      		adc r14,__zero_reg__
 477 0250 F11C      		adc r15,__zero_reg__
 478 0252 075F      		subi r16,lo8(-(9))
 479 0254 1F4F      		sbci r17,hi8(-(9))
 480 0256 F1E0      		ldi r31,lo8(1)
 481 0258 FD15      		cp r31,r13
 482 025a 08F0      		brlo .+2
 483 025c 81CF      		rjmp .L28
 484               	.L18:
 485               	.LBB9:
 486               	.LBB10:
 488               	.LM42:
 489 025e 46EE      		ldi r20,lo8(-26)
 490 0260 E42E      		mov r14,r20
 492               	.LM43:
 493 0262 8090 0000 		lds r8,TimerM_mState
 494 0266 9090 0000 		lds r9,(TimerM_mState)+1
 495 026a A090 0000 		lds r10,(TimerM_mState)+2
 496 026e B090 0000 		lds r11,(TimerM_mState)+3
 497 0272 8114      		cp r8,__zero_reg__
 498 0274 9104      		cpc r9,__zero_reg__
 499 0276 A104      		cpc r10,__zero_reg__
 500 0278 B104      		cpc r11,__zero_reg__
 501 027a 91F1      		breq .L29
 502 027c 31E0      		ldi r19,lo8(1)
 503 027e C32E      		mov r12,r19
 504 0280 D12C      		mov r13,__zero_reg__
 505 0282 60E0      		ldi r22,lo8(TimerM_mTimerList)
 506 0284 70E0      		ldi r23,hi8(TimerM_mTimerList)
 507 0286 00E0      		ldi r16,lo8(0)
 508 0288 10E0      		ldi r17,hi8(0)
 509 028a 21E0      		ldi r18,lo8(1)
 510 028c F22E      		mov r15,r18
 511               	.L34:
 513               	.LM44:
 514 028e C601      		movw r24,r12
 515 0290 002E      		mov r0,r16
 516 0292 02C0      		rjmp 2f
 517 0294 880F      	1:	lsl r24
 518 0296 991F      		rol r25
 519 0298 0A94      	2:	dec r0
 520 029a E2F7      		brpl 1b
 521 029c AA27      		clr r26
 522 029e 97FD      		sbrc r25,7
 523 02a0 A095      		com r26
 524 02a2 BA2F      		mov r27,r26
 525 02a4 8821      		and r24,r8
 526 02a6 9921      		and r25,r9
 527 02a8 AA21      		and r26,r10
 528 02aa BB21      		and r27,r11
 529 02ac 0097      		sbiw r24,0
 530 02ae A105      		cpc r26,__zero_reg__
 531 02b0 B105      		cpc r27,__zero_reg__
 532 02b2 79F0      		breq .L32
 533 02b4 2E2D      		mov r18,r14
 534 02b6 3327      		clr r19
 535 02b8 4427      		clr r20
 536 02ba 5527      		clr r21
 537 02bc FB01      		movw r30,r22
 538 02be 8581      		ldd r24,Z+5
 539 02c0 9681      		ldd r25,Z+6
 540 02c2 A781      		ldd r26,Z+7
 541 02c4 B085      		ldd r27,Z+8
 542 02c6 8217      		cp r24,r18
 543 02c8 9307      		cpc r25,r19
 544 02ca A407      		cpc r26,r20
 545 02cc B507      		cpc r27,r21
 546 02ce 0CF4      		brge .L32
 548               	.LM45:
 549 02d0 E580      		ldd r14,Z+5
 550               	.L32:
 552               	.LM46:
 553 02d2 FA94      		dec r15
 554 02d4 0F5F      		subi r16,lo8(-(1))
 555 02d6 1F4F      		sbci r17,hi8(-(1))
 556 02d8 675F      		subi r22,lo8(-(9))
 557 02da 7F4F      		sbci r23,hi8(-(9))
 558 02dc F7FE      		sbrs r15,7
 559 02de D7CF      		rjmp .L34
 560               	.L29:
 561               	.LBB11:
 563               	.LM47:
 564 02e0 0E94 0000 		call AtomicStart
 565 02e4 182F      		mov r17,r24
 567               	.LM48:
 568 02e6 E092 0000 		sts TimerM_mInterval,r14
 570               	.LM49:
 571 02ea 8E2D      		mov r24,r14
 572 02ec 0E94 0000 		call TimerHPLClockSetInterval
 574               	.LM50:
 575 02f0 1092 0000 		sts TimerM_setIntervalFlag,__zero_reg__
 577               	.LM51:
 578 02f4 812F      		mov r24,r17
 579 02f6 0E94 0000 		call AtomicEnd
 580               	.LBE11:
 582               	.LM52:
 583 02fa 0E94 0000 		call PowerManagementAdjust
 584               	.LBE10:
 585               	.LBE9:
 586               	/* epilogue: frame size=0 */
 587 02fe DF91      		pop r29
 588 0300 CF91      		pop r28
 589 0302 1F91      		pop r17
 590 0304 0F91      		pop r16
 591 0306 FF90      		pop r15
 592 0308 EF90      		pop r14
 593 030a DF90      		pop r13
 594 030c CF90      		pop r12
 595 030e BF90      		pop r11
 596 0310 AF90      		pop r10
 597 0312 9F90      		pop r9
 598 0314 8F90      		pop r8
 599 0316 0895      		ret
 600               	/* epilogue end (size=13) */
 601               	/* function TimerHandleFire size 253 (228) */
 616               	.global	TimerStdControlInit
 618               	TimerStdControlInit:
 209:timer.c       ****                 }
 210:timer.c       ****             }
 211:timer.c       ****         }
 212:timer.c       ****     }
 213:timer.c       **** 	TimerAdjustInterval();
 214:timer.c       **** }
 215:timer.c       **** 
 216:timer.c       **** static result_t TimerClockFire(void)
 217:timer.c       **** {
 218:timer.c       **** 	OSPostTask(TimerHandleFire);
 219:timer.c       **** 	return SUCCESS;
 220:timer.c       **** }
 221:timer.c       **** 
 222:timer.c       **** result_t TimerStdControlInit(void)
 223:timer.c       **** {
 620               	.LM53:
 621               	/* prologue: frame size=0 */
 622 0318 1F93      		push r17
 623               	/* prologue end (size=1) */
 224:timer.c       **** 	TimerM_mState = 0;
 625               	.LM54:
 626 031a 1092 0000 		sts TimerM_mState,__zero_reg__
 627 031e 1092 0000 		sts (TimerM_mState)+1,__zero_reg__
 628 0322 1092 0000 		sts (TimerM_mState)+2,__zero_reg__
 629 0326 1092 0000 		sts (TimerM_mState)+3,__zero_reg__
 225:timer.c       **** 	TimerM_setIntervalFlag = 0;
 631               	.LM55:
 632 032a 1092 0000 		sts TimerM_setIntervalFlag,__zero_reg__
 226:timer.c       **** 	TimerM_queue_head = TimerM_queue_tail = -1;
 634               	.LM56:
 635 032e 8FEF      		ldi r24,lo8(-1)
 636 0330 8093 0000 		sts TimerM_queue_tail,r24
 637 0334 8093 0000 		sts TimerM_queue_head,r24
 227:timer.c       **** 	TimerM_queue_size = 0;
 639               	.LM57:
 640 0338 1092 0000 		sts TimerM_queue_size,__zero_reg__
 228:timer.c       **** 	TimerM_mScale = 3;
 642               	.LM58:
 643 033c 83E0      		ldi r24,lo8(3)
 644 033e 8093 0000 		sts TimerM_mScale,r24
 229:timer.c       **** 	TimerM_mInterval = TimerM_maxTimerInterval;
 646               	.LM59:
 647 0342 16EE      		ldi r17,lo8(-26)
 648 0344 1093 0000 		sts TimerM_mInterval,r17

⌨️ 快捷键说明

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