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

📄 macs.lst

📁 无线传感器星型网络的节点的基站程序,采用802.15.4协议
💻 LST
📖 第 1 页 / 共 4 页
字号:
 102:macs.c        **** 	BYTE status;
 103:macs.c        **** 	SHORT_ADDR  shortaddr_alloc;
 104:macs.c        **** 	//主要任务是调用mlmeassociateresponse原语
 105:macs.c        **** 	//------------------------------------------------------
 106:macs.c        **** 	//---------------待添加------------------------------
 107:macs.c        **** 	//--------网络层是否决定关联-------------------
 108:macs.c        **** 	//--------修改status,分配shortaddr--------------------
 109:macs.c        ****      //printf("\n------success received an association request frame--------\n");
 110:macs.c        **** 	//for(uint8_t i=0;i<8;i++)
 111:macs.c        **** 	//	printf("\nthe addr is v[%d]=%d\n",i,mlme_associate_indication_info.Deviceaddr.v[i]);
 112:macs.c        **** 	//shortaddr_alloc.Val=RFD_SHORT_ADDRESS;
 113:macs.c        **** 	shortaddr_alloc=short_address_allocate_req(mlme_associate_indication_info.Deviceaddr);
 114:macs.c        **** 	printf("\n---allocated short addr is %04x---\n",shortaddr_alloc.Val);
 115:macs.c        **** 	status=0x00;
 116:macs.c        **** 	mlmeAssociateResponse(mlme_associate_indication_info.Deviceaddr, shortaddr_alloc,status, FALSE);
 117:macs.c        **** }
 118:macs.c        **** //**************************//
 119:macs.c        **** void mlmeAssociateResponse(LONG_ADDR deviceAddress, SHORT_ADDR assocShortAddress, BYTE status, bool
 120:macs.c        **** {
 445               	.LM31:
 446               	/* prologue: frame size=37 */
 447 0102 EF92      		push r14
 448 0104 0F93      		push r16
 449 0106 1F93      		push r17
 450 0108 CF93      		push r28
 451 010a DF93      		push r29
 452 010c CDB7      		in r28,__SP_L__
 453 010e DEB7      		in r29,__SP_H__
 454 0110 A597      		sbiw r28,37
 455 0112 0FB6      		in __tmp_reg__,__SREG__
 456 0114 F894      		cli
 457 0116 DEBF      		out __SP_H__,r29
 458 0118 0FBE      		out __SREG__,__tmp_reg__
 459 011a CDBF      		out __SP_L__,r28
 460               	/* prologue end (size=13) */
 461 011c 2983      		std Y+1,r18
 462 011e 3A83      		std Y+2,r19
 463 0120 4B83      		std Y+3,r20
 464 0122 5C83      		std Y+4,r21
 465 0124 6D83      		std Y+5,r22
 466 0126 7E83      		std Y+6,r23
 467 0128 8F83      		std Y+7,r24
 468 012a 9887      		std Y+8,r25
 121:macs.c        **** 	//协调者的高层在收到associate indication原语后响应MAC层的原语
 122:macs.c        **** 	//MAC层调用发送任务发送associate response帧
 123:macs.c        **** 	FRAME_CONTROL framectl_field;
 124:macs.c        **** 	NODE_INFO dst; 
 125:macs.c        **** 	NODE_INFO src; 
 126:macs.c        **** 	//下面不用做.
 127:macs.c        **** 	dst.addrMode=0x03;
 470               	.LM32:
 471 012c 83E0      		ldi r24,lo8(3)
 472 012e 8C87      		std Y+12,r24
 128:macs.c        **** 	src.addrMode=0x03;
 474               	.LM33:
 475 0130 898F      		std Y+25,r24
 129:macs.c        **** 	dst.panID=mac_pib_data.macPANId;
 477               	.LM34:
 478 0132 8091 0000 		lds r24,mac_pib_data+28
 479 0136 9091 0000 		lds r25,(mac_pib_data+28)+1
 480 013a 8F8B      		std Y+23,r24
 481 013c 988F      		std Y+24,r25
 130:macs.c        **** 	src.panID=mac_pib_data.macPANId;
 483               	.LM35:
 484 013e 8CA3      		std Y+36,r24
 485 0140 9DA3      		std Y+37,r25
 131:macs.c        ****        src.longAddr=mac_pib_data.macExtAddress;	
 487               	.LM36:
 488 0142 88E0      		ldi r24,lo8(8)
 489 0144 DE01      		movw r26,r28
 490 0146 5A96      		adiw r26,26
 491 0148 E0E0      		ldi r30,lo8(mac_pib_data+34)
 492 014a F0E0      		ldi r31,hi8(mac_pib_data+34)
 493 014c 0190      		ld __tmp_reg__,Z+
 494 014e 0D92      		st X+,__tmp_reg__
 495 0150 8A95      		dec r24
 496 0152 E1F7      		brne .-8
 132:macs.c        **** 	dst.longAddr=deviceAddress;
 498               	.LM37:
 499 0154 88E0      		ldi r24,lo8(8)
 500 0156 DE01      		movw r26,r28
 501 0158 1D96      		adiw r26,13
 502 015a FE01      		movw r30,r28
 503 015c 3196      		adiw r30,1
 504 015e AF01      		movw r20,r30
 505 0160 0190      		ld __tmp_reg__,Z+
 506 0162 0D92      		st X+,__tmp_reg__
 507 0164 8A95      		dec r24
 508 0166 E1F7      		brne .-8
 133:macs.c        **** 	framectl_field.v[0]=0x23;
 510               	.LM38:
 511 0168 83E2      		ldi r24,lo8(35)
 512 016a 8987      		std Y+9,r24
 134:macs.c        **** 	framectl_field.v[1]=0xcc;
 514               	.LM39:
 515 016c 8CEC      		ldi r24,lo8(-52)
 516 016e 8A87      		std Y+10,r24
 135:macs.c        **** 	
 136:macs.c        **** 	//
 137:macs.c        **** 	if((IS_FFD!=0x00)&&(mac_current_state==MAC_STATE_IDLE)&&(current_pending_num<MAX_PENDING_LIST_SIZE
 518               	.LM40:
 519 0170 8091 0000 		lds r24,mac_current_state
 520 0174 8031      		cpi r24,lo8(16)
 521 0176 09F0      		breq .+2
 522 0178 4DC0      		rjmp .L19
 524               	.LM41:
 525 017a 8091 0000 		lds r24,current_pending_num
 526 017e 8230      		cpi r24,lo8(2)
 527 0180 08F0      		brlo .+2
 528 0182 48C0      		rjmp .L19
 138:macs.c        **** 		{
 139:macs.c        **** 		    add_pending_queue(0, framectl_field, dst,src,0, NULL, status, TRUE, deviceAddress,assocShortA
 530               	.LM42:
 531 0184 1F93      		push r17
 532 0186 0F93      		push r16
 533 0188 8DB7      		in r24,__SP_L__
 534 018a 9EB7      		in r25,__SP_H__
 535 018c 0897      		sbiw r24,8
 536 018e 0FB6      		in __tmp_reg__,__SREG__
 537 0190 F894      		cli
 538 0192 9EBF      		out __SP_H__,r25
 539 0194 0FBE      		out __SREG__,__tmp_reg__
 540 0196 8DBF      		out __SP_L__,r24
 541 0198 0196      		adiw r24,1
 542 019a 28E0      		ldi r18,lo8(8)
 543 019c FC01      		movw r30,r24
 544 019e DA01      		movw r26,r20
 545 01a0 0D90      		ld __tmp_reg__,X+
 546 01a2 0192      		st Z+,__tmp_reg__
 547 01a4 2A95      		dec r18
 548 01a6 E1F7      		brne .-8
 549 01a8 81E0      		ldi r24,lo8(1)
 550 01aa 8F93      		push r24
 551 01ac EF92      		push r14
 552 01ae 1F92      		push __zero_reg__
 553 01b0 1F92      		push __zero_reg__
 554 01b2 1F92      		push __zero_reg__
 555 01b4 8DB7      		in r24,__SP_L__
 556 01b6 9EB7      		in r25,__SP_H__
 557 01b8 0D97      		sbiw r24,13
 558 01ba 0FB6      		in __tmp_reg__,__SREG__
 559 01bc F894      		cli
 560 01be 9EBF      		out __SP_H__,r25
 561 01c0 0FBE      		out __SREG__,__tmp_reg__
 562 01c2 8DBF      		out __SP_L__,r24
 563 01c4 0196      		adiw r24,1
 564 01c6 2DE0      		ldi r18,lo8(13)
 565 01c8 FC01      		movw r30,r24
 566 01ca DE01      		movw r26,r28
 567 01cc 5996      		adiw r26,25
 568 01ce 0D90      		ld __tmp_reg__,X+
 569 01d0 0192      		st Z+,__tmp_reg__
 570 01d2 2A95      		dec r18
 571 01d4 E1F7      		brne .-8
 572 01d6 8DB7      		in r24,__SP_L__
 573 01d8 9EB7      		in r25,__SP_H__
 574 01da 0D97      		sbiw r24,13
 575 01dc 0FB6      		in __tmp_reg__,__SREG__
 576 01de F894      		cli
 577 01e0 9EBF      		out __SP_H__,r25
 578 01e2 0FBE      		out __SREG__,__tmp_reg__
 579 01e4 8DBF      		out __SP_L__,r24
 580 01e6 0196      		adiw r24,1
 581 01e8 2DE0      		ldi r18,lo8(13)
 582 01ea FC01      		movw r30,r24
 583 01ec DE01      		movw r26,r28
 584 01ee 1C96      		adiw r26,12
 585 01f0 0D90      		ld __tmp_reg__,X+
 586 01f2 0192      		st Z+,__tmp_reg__
 587 01f4 2A95      		dec r18
 588 01f6 E1F7      		brne .-8
 589 01f8 4985      		ldd r20,Y+9
 590 01fa 5A85      		ldd r21,Y+10
 591 01fc 6B85      		ldd r22,Y+11
 592 01fe 80E0      		ldi r24,lo8(0)
 593 0200 0E94 0000 		call add_pending_queue
 594 0204 8DB7      		in r24,__SP_L__
 595 0206 9EB7      		in r25,__SP_H__
 596 0208 8996      		adiw r24,41
 597 020a 0FB6      		in __tmp_reg__,__SREG__
 598 020c F894      		cli
 599 020e 9EBF      		out __SP_H__,r25
 600 0210 0FBE      		out __SREG__,__tmp_reg__
 601 0212 8DBF      		out __SP_L__,r24
 602               	.L19:
 603               	/* epilogue: frame size=37 */
 604 0214 A596      		adiw r28,37
 605 0216 0FB6      		in __tmp_reg__,__SREG__
 606 0218 F894      		cli
 607 021a DEBF      		out __SP_H__,r29
 608 021c 0FBE      		out __SREG__,__tmp_reg__
 609 021e CDBF      		out __SP_L__,r28
 610 0220 DF91      		pop r29
 611 0222 CF91      		pop r28
 612 0224 1F91      		pop r17
 613 0226 0F91      		pop r16
 614 0228 EF90      		pop r14
 615 022a 0895      		ret
 616               	/* epilogue end (size=12) */
 617               	/* function mlmeAssociateResponse size 149 (124) */
 622               		.data
 623               	.LC3:
 624 0091 0A2D 2D2D 		.string	"\n---allocated short addr is %04x---\n"
 624      616C 6C6F 
 624      6361 7465 
 624      6420 7368 
 624      6F72 7420 
 625               		.text
 628               	.global	mlmeAssociateIndication
 630               	mlmeAssociateIndication:
 632               	.LM43:
 633               	/* prologue: frame size=11 */
 634 022c CF92      		push r12
 635 022e EF92      		push r14
 636 0230 FF92      		push r15
 637 0232 0F93      		push r16
 638 0234 1F93      		push r17
 639 0236 CF93      		push r28
 640 0238 DF93      		push r29
 641 023a CDB7      		in r28,__SP_L__
 642 023c DEB7      		in r29,__SP_H__
 643 023e 2B97      		sbiw r28,11
 644 0240 0FB6      		in __tmp_reg__,__SREG__
 645 0242 F894      		cli
 646 0244 DEBF      		out __SP_H__,r29
 647 0246 0FBE      		out __SREG__,__tmp_reg__
 648 0248 CDBF      		out __SP_L__,r28
 649               	/* prologue end (size=15) */
 650 024a E982      		std Y+1,r14
 651 024c FA82      		std Y+2,r15
 652 024e 0B83      		std Y+3,r16
 653 0250 1C83      		std Y+4,r17
 654 0252 2D83      		std Y+5,r18
 655 0254 3E83      		std Y+6,r19
 656 0256 4F83      		std Y+7,r20
 657 0258 5887      		std Y+8,r21
 658 025a 6987      		std Y+9,r22
 659 025c 7A87      		std Y+10,r23
 660 025e 8B87      		std Y+11,r24
 662               	.LM44:
 663 0260 2E2D      		mov r18,r14
 664 0262 3F2D      		mov r19,r15
 665 0264 402F      		mov r20,r16
 666 0266 512F      		mov r21,r17
 667 0268 6D81      		ldd r22,Y+5
 668 026a 7E81      		ldd r23,Y+6
 669 026c 8F81      		ldd r24,Y+7
 670 026e 9885      		ldd r25,Y+8
 671 0270 0E94 0000 		call short_address_allocate_req
 672 0274 8C01      		movw r16,r24
 674               	.LM45:
 675 0276 9F93      		push r25
 676 0278 8F93      		push r24
 677 027a 80E0      		ldi r24,lo8(.LC3)
 678 027c 90E0      		ldi r25,hi8(.LC3)
 679 027e 9F93      		push r25
 680 0280 8F93      		push r24
 681 0282 0E94 0000 		call printf
 683               	.LM46:
 684 0286 80E0      		ldi r24,lo8(0)
 686               	.LM47:
 687 0288 C82E      		mov r12,r24
 688 028a E82E      		mov r14,r24
 689 028c 2981      		ldd r18,Y+1
 690 028e 3A81      		ldd r19,Y+2
 691 0290 4B81      		ldd r20,Y+3
 692 0292 5C81      		ldd r21,Y+4
 693 0294 6D81      		ldd r22,Y+5
 694 0296 7E81      		ldd r23,Y+6
 695 0298 8F81      		ldd r24,Y+7
 696 029a 9885      		ldd r25,Y+8
 697 029c 0E94 0000 		call mlmeAssociateResponse
 698 02a0 0F90      		pop __tmp_reg__
 699 02a2 0F90      		pop __tmp_reg__
 700 02a4 0F90      		pop __tmp_reg__
 701 02a6 0F90      		pop __tmp_reg__
 702               	/* epilogue: frame size=11 */
 703 02a8 2B96      		adiw r28,11
 704 02aa 0FB6      		in __tmp_reg__,__SREG__
 705 02ac F894      		cli
 706 02ae DEBF      		out __SP_H__,r29
 707 02b0 0FBE      		out __SREG__,__tmp_reg__
 708 02b2 CDBF      		out __SP_L__,r28
 709 02b4 DF91      		pop r29
 710 02b6 CF91      		pop r28
 711 02b8 1F91      		pop r17
 712 02ba 0F91      		pop r16
 713 02bc FF90      		pop r15
 714 02be EF90      		pop r14
 715 02c0 CF90      		pop r12
 716 02c2 0895      		ret
 717               	/* epilogue end (size=14) */
 718               	/* function mlmeAssociateIndication size 76 (47) */
 722               		.data
 723               	.LC4:
 724 00b6 0A2D 2D2D 		.string	"\n----the coordinator received the disassociation indication----"
 724      2D74 6865 
 724      2063 6F6F 

⌨️ 快捷键说明

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