📄 macs.lst
字号:
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 + -