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

📄 dataqueue.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 3 页
字号:
 605               	.L43:
 606 027e 6081      		ld r22,Z
 607 0280 8050      		subi r24,lo8(-(Queuemsgqueue+2))
 608 0282 9040      		sbci r25,hi8(-(Queuemsgqueue+2))
 609 0284 0E94 0000 		call MACUnicastMsg
 610 0288 23C0      		rjmp .L33
 611               	.L39:
 203:dataqueue.c   **** 					}else{
 204:dataqueue.c   **** 					Queuemsgqueue[dequeue_next].length = 0;
 613               	.LM75:
 614 028a 4C9F      		mul r20,r28
 615 028c F001      		movw r30,r0
 616 028e 4D9F      		mul r20,r29
 617 0290 F00D      		add r31,r0
 618 0292 5C9F      		mul r21,r28
 619 0294 F00D      		add r31,r0
 620 0296 1124      		clr r1
 621 0298 E050      		subi r30,lo8(-(Queuemsgqueue))
 622 029a F040      		sbci r31,hi8(-(Queuemsgqueue))
 623 029c 2083      		st Z,r18
 205:dataqueue.c   **** 					dequeue_next++;
 206:dataqueue.c   **** 					dequeue_next %= MESSAGE_QUEUE_SIZE; 
 625               	.LM76:
 626 029e 832F      		mov r24,r19
 627 02a0 8F5F      		subi r24,lo8(-(1))
 628 02a2 66E0      		ldi r22,lo8(6)
 629 02a4 0E94 0000 		call __udivmodqi4
 630 02a8 9093 0000 		sts dequeue_next,r25
 207:dataqueue.c   **** 					FreeAreaInQueue = FreeAreaInQueue + 1;
 632               	.LM77:
 633 02ac 8091 0000 		lds r24,FreeAreaInQueue
 634 02b0 8F5F      		subi r24,lo8(-(1))
 635 02b2 8093 0000 		sts FreeAreaInQueue,r24
 636 02b6 0CC0      		rjmp .L33
 637               	.L35:
 208:dataqueue.c   **** 					}
 209:dataqueue.c   **** 			}
 210:dataqueue.c   **** 			
 211:dataqueue.c   **** 	} else {
 212:dataqueue.c   ****             
 213:dataqueue.c   ****             if( dequeue_next !=enqueue_next ) {
 639               	.LM78:
 640 02b8 8091 0000 		lds r24,enqueue_next
 641 02bc 9817      		cp r25,r24
 642 02be 41F0      		breq .L33
 214:dataqueue.c   **** 			dequeue_next = (dequeue_next + 1)%MESSAGE_QUEUE_SIZE;
 644               	.LM79:
 645 02c0 C901      		movw r24,r18
 646 02c2 0196      		adiw r24,1
 647 02c4 66E0      		ldi r22,lo8(6)
 648 02c6 70E0      		ldi r23,hi8(6)
 649 02c8 0E94 0000 		call __divmodhi4
 650 02cc 8093 0000 		sts dequeue_next,r24
 651               	.L33:
 652               	/* epilogue: frame size=0 */
 653 02d0 DF91      		pop r29
 654 02d2 CF91      		pop r28
 655 02d4 1F91      		pop r17
 656 02d6 0895      		ret
 657               	/* epilogue end (size=4) */
 658               	/* function routeSendTask size 132 (125) */
 663               	.global	TransmitDone
 665               	TransmitDone:
 215:dataqueue.c   **** 			}
 216:dataqueue.c   **** 	} 
 217:dataqueue.c   **** }
 218:dataqueue.c   **** /**************************************************************************
 219:dataqueue.c   **** *功能描述:数据包发送完成后的处理
 220:dataqueue.c   **** *参数说明:发送出去的数据包地址
 221:dataqueue.c   **** *返回值:
 222:dataqueue.c   **** **************************************************************************/
 223:dataqueue.c   **** result_t TransmitDone(OSMACMsgPtr msg) {
 667               	.LM80:
 668               	/* prologue: frame size=0 */
 669               	/* prologue end (size=0) */
 670 02d8 DC01      		movw r26,r24
 224:dataqueue.c   **** 
 225:dataqueue.c   **** 	uint8_t type;
 226:dataqueue.c   **** 	SHopMsgPtr sHopMsg;
 227:dataqueue.c   **** 	sHopMsg = (SHopMsgPtr )msg->data;
 228:dataqueue.c   ****     type = sHopMsg->type;
 672               	.LM81:
 673 02da FC01      		movw r30,r24
 674 02dc 8581      		ldd r24,Z+5
 229:dataqueue.c   **** 
 230:dataqueue.c   **** 	switch (type) {
 676               	.LM82:
 677 02de 9927      		clr r25
 678 02e0 8330      		cpi r24,3
 679 02e2 9105      		cpc r25,__zero_reg__
 680 02e4 81F0      		breq .L48
 682               	.LM83:
 683 02e6 0497      		sbiw r24,4
 684 02e8 09F0      		breq .+2
 685 02ea 3FC0      		rjmp .L45
 231:dataqueue.c   ****     case BROADCAST: //发送广播包结束
 232:dataqueue.c   **** 	    if (msg != &QueueBroadcast.Msg) {
 687               	.LM84:
 688 02ec F0E0      		ldi r31,hi8(QueueBroadcast+2)
 689 02ee A030      		cpi r26,lo8(QueueBroadcast+2)
 690 02f0 BF07      		cpc r27,r31
 691 02f2 19F0      		breq .L47
 233:dataqueue.c   **** 		return FAIL;
 693               	.LM85:
 694 02f4 80E0      		ldi r24,lo8(0)
 695 02f6 90E0      		ldi r25,hi8(0)
 696 02f8 0895      		ret
 697               	.L47:
 234:dataqueue.c   **** 		}
 235:dataqueue.c   **** 	    QueueBroadcastState = IDLE;
 699               	.LM86:
 700 02fa 1092 0000 		sts QueueBroadcastState,__zero_reg__
 236:dataqueue.c   **** 		routeBroadcastDone(msg);
 702               	.LM87:
 703 02fe CD01      		movw r24,r26
 704 0300 0E94 0000 		call routeBroadcastDone
 237:dataqueue.c   ****         break;
 706               	.LM88:
 707 0304 32C0      		rjmp .L45
 708               	.L48:
 238:dataqueue.c   ****     
 239:dataqueue.c   **** 	case SENSOR:  //发送数据包结束
 240:dataqueue.c   **** 	    TimeMask = 4;//如果数据报发送成功,为了保证上层节点发送数据包时不冲突,尽量退避
 710               	.LM89:
 711 0306 84E0      		ldi r24,lo8(4)
 712 0308 8093 0000 		sts TimeMask,r24
 241:dataqueue.c   **** 	    if (msg == &Queuemsgqueue[dequeue_next].Msg) {
 714               	.LM90:
 715 030c 4091 0000 		lds r20,dequeue_next
 716 0310 8EE3      		ldi r24,lo8(62)
 717 0312 489F      		mul r20,r24
 718 0314 C001      		movw r24,r0
 719 0316 1124      		clr r1
 720 0318 8050      		subi r24,lo8(-(Queuemsgqueue+2))
 721 031a 9040      		sbci r25,hi8(-(Queuemsgqueue+2))
 722 031c A817      		cp r26,r24
 723 031e B907      		cpc r27,r25
 724 0320 D9F4      		brne .L49
 242:dataqueue.c   **** 			Queuemsgqueue[dequeue_next].length = 0;
 726               	.LM91:
 727 0322 242F      		mov r18,r20
 728 0324 3327      		clr r19
 729 0326 8EE3      		ldi r24,lo8(62)
 730 0328 90E0      		ldi r25,hi8(62)
 731 032a 289F      		mul r18,r24
 732 032c F001      		movw r30,r0
 733 032e 299F      		mul r18,r25
 734 0330 F00D      		add r31,r0
 735 0332 389F      		mul r19,r24
 736 0334 F00D      		add r31,r0
 737 0336 1124      		clr r1
 738 0338 E050      		subi r30,lo8(-(Queuemsgqueue))
 739 033a F040      		sbci r31,hi8(-(Queuemsgqueue))
 740 033c 1082      		st Z,__zero_reg__
 243:dataqueue.c   **** 			dequeue_next++;
 244:dataqueue.c   **** 			dequeue_next %= MESSAGE_QUEUE_SIZE; 
 742               	.LM92:
 743 033e 842F      		mov r24,r20
 744 0340 8F5F      		subi r24,lo8(-(1))
 745 0342 66E0      		ldi r22,lo8(6)
 746 0344 0E94 0000 		call __udivmodqi4
 747 0348 9093 0000 		sts dequeue_next,r25
 245:dataqueue.c   **** 			FreeAreaInQueue = FreeAreaInQueue + 1;
 749               	.LM93:
 750 034c 8091 0000 		lds r24,FreeAreaInQueue
 751 0350 8F5F      		subi r24,lo8(-(1))
 752 0352 8093 0000 		sts FreeAreaInQueue,r24
 753 0356 06C0      		rjmp .L50
 754               	.L49:
 246:dataqueue.c   **** 		}else if(msg == &QueueLocalMsg.Msg){
 756               	.LM94:
 757 0358 80E0      		ldi r24,hi8(QueueLocalMsg+2)
 758 035a A030      		cpi r26,lo8(QueueLocalMsg+2)
 759 035c B807      		cpc r27,r24
 760 035e 11F4      		brne .L50
 247:dataqueue.c   **** 			QueueLocalMsgState = IDLE;
 762               	.LM95:
 763 0360 1092 0000 		sts QueueLocalMsgState,__zero_reg__
 764               	.L50:
 248:dataqueue.c   **** 		}
 249:dataqueue.c   **** 		routeSendSENSORDone(msg);
 766               	.LM96:
 767 0364 CD01      		movw r24,r26
 768 0366 0E94 0000 		call routeSendSENSORDone
 769               	.L45:
 250:dataqueue.c   **** 	    break;
 251:dataqueue.c   **** 	}
 252:dataqueue.c   **** 	 
 253:dataqueue.c   **** 	return SUCCESS;
 771               	.LM97:
 772 036a 81E0      		ldi r24,lo8(1)
 773 036c 90E0      		ldi r25,hi8(1)
 254:dataqueue.c   **** }
 775               	.LM98:
 776 036e 0895      		ret
 777               	/* epilogue: frame size=0 */
 778 0370 0895      		ret
 779               	/* epilogue end (size=1) */
 780               	/* function TransmitDone size 77 (76) */
 784               	.global	GetFreeQueueLength
 786               	GetFreeQueueLength:
 255:dataqueue.c   **** 
 256:dataqueue.c   **** 
 257:dataqueue.c   **** result_t GetFreeQueueLength(void){
 788               	.LM99:
 789               	/* prologue: frame size=0 */
 790               	/* prologue end (size=0) */
 258:dataqueue.c   ****     return FreeAreaInQueue;
 792               	.LM100:
 793 0372 8091 0000 		lds r24,FreeAreaInQueue
 259:dataqueue.c   **** }
 795               	.LM101:
 796 0376 9927      		clr r25
 797               	/* epilogue: frame size=0 */
 798 0378 0895      		ret
 799               	/* epilogue end (size=1) */
 800               	/* function GetFreeQueueLength size 4 (3) */
 804               	.global	SendFail
 806               	SendFail:
 260:dataqueue.c   **** 
 261:dataqueue.c   **** void SendFail(OSMACMsgPtr receivemsg){
 808               	.LM102:
 809               	/* prologue: frame size=0 */
 810               	/* prologue end (size=0) */
 262:dataqueue.c   ****     RouteChangeP(receivemsg->toAddr);
 812               	.LM103:
 813 037a FC01      		movw r30,r24
 814 037c 8281      		ldd r24,Z+2
 815 037e 0E94 0000 		call RouteChangeP
 816               	/* epilogue: frame size=0 */
 817 0382 0895      		ret
 818               	/* epilogue end (size=1) */
 819               	/* function SendFail size 5 (4) */
 821               		.comm RecordPassed,30,1
 822               		.comm Queuemsgqueue,372,1
 823               		.comm QueueBroadcast,62,1
 824               		.comm QueueLocalMsg,62,1
 825               		.comm nbrTable,270,1
 826               		.comm POWERLEVEL,1,1
 827               		.comm OS_LOCAL_ADDRESS,1,1
 828               		.comm OS_BCAST_ADDR,1,1
 829               		.comm ACK_ON,1,1
 830               		.comm ACKTIME,1,1
 831               		.lcomm enqueue_next,1
 832               		.lcomm dequeue_next,1
 833               		.lcomm QueueIdle,1
 834               		.lcomm FreeAreaInQueue,1
 835               		.lcomm TimeMask,1
 836               		.lcomm nextAddr,1
 837               		.lcomm QueueBroadcastState,1
 838               		.lcomm QueueLocalMsgState,1
 857               		.text
 859               	Letext:
 860               	/* File "dataqueue.c": code  450 = 0x01c2 ( 425), prologues   7, epilogues  18 */
DEFINED SYMBOLS
                            *ABS*:00000000 dataqueue.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/cc25aaaa.s:95     .text:00000000 QueueInit
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:834    .bss:00000004 TimeMask
                             .bss:00000000 enqueue_next
                            *COM*:00000174 Queuemsgqueue
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:831    .bss:00000001 dequeue_next
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:833    .bss:00000003 FreeAreaInQueue
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:832    .bss:00000002 QueueIdle
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:836    .bss:00000006 QueueBroadcastState
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:837    .bss:00000007 QueueLocalMsgState
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:150    .text:00000036 InQueue
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:499    .text:000001d0 routeSendTask
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:263    .text:000000d8 InBroadQueue
                            *COM*:0000003e QueueBroadcast
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:322    .text:00000114 InLocalMsgQueue
                            *COM*:0000003e QueueLocalMsg
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:378    .text:00000150 MACTask
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:456    .text:000001aa routeSendBroadcast
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:474    .text:000001b8 routeSendLocalMsg
                            *COM*:00000001 OS_LOCAL_ADDRESS
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:835    .bss:00000005 nextAddr
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:665    .text:000002d8 TransmitDone
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:786    .text:00000372 GetFreeQueueLength
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:806    .text:0000037a SendFail
                            *COM*:0000001e RecordPassed
                            *COM*:0000010e nbrTable
                            *COM*:00000001 POWERLEVEL
                            *COM*:00000001 OS_BCAST_ADDR
                            *COM*:00000001 ACK_ON
                            *COM*:00000001 ACKTIME
D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc25aaaa.s:859    .text:00000384 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__divmodhi4
OSPostTask
__udivmodqi4
currentparent
LedRedOn
LedRedOff
LocalDataIn
MACBroadcastMsg
MACUnicastMsg
CheckRoute
routeBroadcastDone
routeSendSENSORDone
RouteChangeP

⌨️ 快捷键说明

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