cc2420db_library.lst
来自「MatLab图像传感器网络仿真平台WiSNAP」· LST 代码 · 共 1,465 行 · 第 1/5 页
LST
1,465 行
776 03b0 0E94 0000 call basicRfInit
267:cc2420db_library.c **** rfRxInfo.pPayload = pRxBuffer;
778 .LM47:
779 03b4 80E0 ldi r24,lo8(pRxBuffer)
780 03b6 90E0 ldi r25,hi8(pRxBuffer)
781 03b8 9093 0000 sts (rfRxInfo+6)+1,r25
782 03bc 8093 0000 sts rfRxInfo+6,r24
268:cc2420db_library.c **** rfTxInfo.pPayload = pTxBuffer;
784 .LM48:
785 03c0 80E0 ldi r24,lo8(pTxBuffer)
786 03c2 90E0 ldi r25,hi8(pTxBuffer)
787 03c4 9093 0000 sts (rfTxInfo+5)+1,r25
788 03c8 8093 0000 sts rfTxInfo+5,r24
269:cc2420db_library.c **** basicRfReceiveOn();
790 .LM49:
791 03cc 0E94 0000 call basicRfReceiveOn
270:cc2420db_library.c ****
271:cc2420db_library.c **** /* generate command response */
272:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%04X%04X\r\n",
793 .LM50:
794 03d0 8981 ldd r24,Y+1
795 03d2 9A81 ldd r25,Y+2
796 03d4 9F93 push r25
797 03d6 8F93 push r24
798 03d8 8B81 ldd r24,Y+3
799 03da 9C81 ldd r25,Y+4
800 03dc 9F93 push r25
801 03de 8F93 push r24
802 03e0 8D81 ldd r24,Y+5
803 03e2 9E81 ldd r25,Y+6
804 03e4 9F93 push r25
805 03e6 8F93 push r24
806 03e8 F801 movw r30,r16
807 03ea 8291 ld r24,-Z
808 03ec 9927 clr r25
809 03ee 9F93 push r25
810 03f0 8F93 push r24
811 03f2 80E0 ldi r24,lo8(.LC6)
812 03f4 90E0 ldi r25,hi8(.LC6)
813 03f6 9F93 push r25
814 03f8 8F93 push r24
815 03fa FF92 push r15
816 03fc EF92 push r14
817 03fe 0E94 0000 call sprintf
273:cc2420db_library.c **** command[0], channel, panid, myaddress);
274:cc2420db_library.c ****
275:cc2420db_library.c **** /* return status */
276:cc2420db_library.c **** return status;
819 .LM51:
820 0402 2DB7 in r18,__SP_L__
821 0404 3EB7 in r19,__SP_H__
822 0406 2A5E subi r18,lo8(-(22))
823 0408 3F4F sbci r19,hi8(-(22))
824 040a 0FB6 in __tmp_reg__,__SREG__
825 040c F894 cli
826 040e 3EBF out __SP_H__,r19
827 0410 0FBE out __SREG__,__tmp_reg__
828 0412 2DBF out __SP_L__,r18
829 /* epilogue: frame size=6 */
830 0414 2696 adiw r28,6
831 0416 0FB6 in __tmp_reg__,__SREG__
832 0418 F894 cli
833 041a DEBF out __SP_H__,r29
834 041c 0FBE out __SREG__,__tmp_reg__
835 041e CDBF out __SP_L__,r28
836 0420 DF91 pop r29
837 0422 CF91 pop r28
838 0424 1F91 pop r17
839 0426 0F91 pop r16
840 0428 FF90 pop r15
841 042a EF90 pop r14
842 042c 0895 ret
843 /* epilogue end (size=13) */
844 /* function init_cc_transceiver size 116 (89) */
849 .Lscope6:
851 .data
852 .LC7:
853 004a 3A25 6325 .string ":%c%02X%04X%04X%02X"
853 3032 5825
853 3034 5825
853 3034 5825
853 3032 5800
854 .LC8:
855 005e 2530 3258 .string "%02X"
855 00
856 .LC9:
857 0063 2530 3258 .string "%02X%02X\r\n"
857 2530 3258
857 0D0A 00
858 .LC10:
859 006e 3A25 630D .string ":%c\r\n"
859 0A00
860 .text
864 .global recv_cc_packet
866 recv_cc_packet:
277:cc2420db_library.c **** }
278:cc2420db_library.c ****
279:cc2420db_library.c **** /*******************************************************************************
280:cc2420db_library.c **** * Function: Receive CC2420 packet. *
281:cc2420db_library.c **** *******************************************************************************/
282:cc2420db_library.c **** int recv_cc_packet(char *command, char *response)
283:cc2420db_library.c **** {
868 .LM52:
869 /* prologue: frame size=0 */
870 042e EF92 push r14
871 0430 FF92 push r15
872 0432 0F93 push r16
873 0434 1F93 push r17
874 0436 CF93 push r28
875 0438 DF93 push r29
876 /* prologue end (size=6) */
877 043a FC01 movw r30,r24
878 043c 8B01 movw r16,r22
284:cc2420db_library.c **** int i, status;
285:cc2420db_library.c ****
286:cc2420db_library.c **** /* generate command response */
287:cc2420db_library.c **** if (sig_packet_rx == TRUE)
880 .LM53:
881 043e 8091 0000 lds r24,sig_packet_rx
882 0442 E081 ld r30,Z
883 0444 8130 cpi r24,lo8(1)
884 0446 09F0 breq .+2
885 0448 7DC0 rjmp .L42
288:cc2420db_library.c **** {
289:cc2420db_library.c ****
290:cc2420db_library.c **** /* add packet header */
291:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%04X%04X%02X", command[0],
887 .LM54:
888 044a 8091 0000 lds r24,rfRxInfo+5
889 044e 9927 clr r25
890 0450 87FD sbrc r24,7
891 0452 9095 com r25
892 0454 9F93 push r25
893 0456 8F93 push r24
894 0458 8091 0000 lds r24,rfRxInfo+3
895 045c 9091 0000 lds r25,(rfRxInfo+3)+1
896 0460 9F93 push r25
897 0462 8F93 push r24
898 0464 8091 0000 lds r24,rfRxInfo+1
899 0468 9091 0000 lds r25,(rfRxInfo+1)+1
900 046c 9F93 push r25
901 046e 8F93 push r24
902 0470 8091 0000 lds r24,rfRxInfo
903 0474 9927 clr r25
904 0476 9F93 push r25
905 0478 8F93 push r24
906 047a 8E2F mov r24,r30
907 047c 9927 clr r25
908 047e 9F93 push r25
909 0480 8F93 push r24
910 0482 80E0 ldi r24,lo8(.LC7)
911 0484 90E0 ldi r25,hi8(.LC7)
912 0486 9F93 push r25
913 0488 8F93 push r24
914 048a 7F93 push r23
915 048c 6F93 push r22
916 048e 0E94 0000 call sprintf
292:cc2420db_library.c **** rfRxInfo.seqNumber, rfRxInfo.srcAddr, rfRxInfo.srcPanId,
293:cc2420db_library.c **** rfRxInfo.length);
294:cc2420db_library.c ****
295:cc2420db_library.c **** /* add packet payload */
296:cc2420db_library.c **** for (i = 0; i < rfRxInfo.length; i++)
918 .LM55:
919 0492 2DB7 in r18,__SP_L__
920 0494 3EB7 in r19,__SP_H__
921 0496 225F subi r18,lo8(-(14))
922 0498 3F4F sbci r19,hi8(-(14))
923 049a 0FB6 in __tmp_reg__,__SREG__
924 049c F894 cli
925 049e 3EBF out __SP_H__,r19
926 04a0 0FBE out __SREG__,__tmp_reg__
927 04a2 2DBF out __SP_L__,r18
928 04a4 8091 0000 lds r24,rfRxInfo+5
929 04a8 EE24 clr r14
930 04aa FF24 clr r15
931 04ac 1816 cp __zero_reg__,r24
932 04ae 44F5 brge .L49
933 04b0 E801 movw r28,r16
934 04b2 2E96 adiw r28,14
935 .L46:
297:cc2420db_library.c **** {
298:cc2420db_library.c **** status = sprintf(&response[14+2*i], "%02X", rfRxInfo.pPayload[i]);
937 .LM56:
938 04b4 E091 0000 lds r30,rfRxInfo+6
939 04b8 F091 0000 lds r31,(rfRxInfo+6)+1
940 04bc EE0D add r30,r14
941 04be FF1D adc r31,r15
942 04c0 8081 ld r24,Z
943 04c2 9927 clr r25
944 04c4 9F93 push r25
945 04c6 8F93 push r24
946 04c8 80E0 ldi r24,lo8(.LC8)
947 04ca 90E0 ldi r25,hi8(.LC8)
948 04cc 9F93 push r25
949 04ce 8F93 push r24
950 04d0 DF93 push r29
951 04d2 CF93 push r28
952 04d4 0E94 0000 call sprintf
954 .LM57:
955 04d8 8DB7 in r24,__SP_L__
956 04da 9EB7 in r25,__SP_H__
957 04dc 0696 adiw r24,6
958 04de 0FB6 in __tmp_reg__,__SREG__
959 04e0 F894 cli
960 04e2 9EBF out __SP_H__,r25
961 04e4 0FBE out __SREG__,__tmp_reg__
962 04e6 8DBF out __SP_L__,r24
963 04e8 0894 sec
964 04ea E11C adc r14,__zero_reg__
965 04ec F11C adc r15,__zero_reg__
966 04ee 2296 adiw r28,2
967 04f0 8091 0000 lds r24,rfRxInfo+5
968 04f4 9927 clr r25
969 04f6 87FD sbrc r24,7
970 04f8 9095 com r25
971 04fa E816 cp r14,r24
972 04fc F906 cpc r15,r25
973 04fe D4F2 brlt .L46
974 .L49:
299:cc2420db_library.c **** }
300:cc2420db_library.c ****
301:cc2420db_library.c **** /* add packet footer */
302:cc2420db_library.c **** status = sprintf(&response[14+2*rfRxInfo.length], "%02X%02X\r\n",
976 .LM58:
977 0500 8091 0000 lds r24,rfRxInfo+9
978 0504 9927 clr r25
979 0506 9F93 push r25
980 0508 8F93 push r24
981 050a 8091 0000 lds r24,rfRxInfo+8
982 050e 9927 clr r25
983 0510 9F93 push r25
984 0512 8F93 push r24
985 0514 80E0 ldi r24,lo8(.LC9)
986 0516 90E0 ldi r25,hi8(.LC9)
987 0518 9F93 push r25
988 051a 8F93 push r24
989 051c 8091 0000 lds r24,rfRxInfo+5
990 0520 9927 clr r25
991 0522 87FD sbrc r24,7
992 0524 9095 com r25
993 0526 880F add r24,r24
994 0528 991F adc r25,r25
995 052a 080F add r16,r24
996 052c 191F adc r17,r25
997 052e 025F subi r16,lo8(-(14))
998 0530 1F4F sbci r17,hi8(-(14))
999 0532 1F93 push r17
1000 0534 0F93 push r16
1001 0536 0E94 0000 call sprintf
1002 053a 2DB7 in r18,__SP_L__
1003 053c 3EB7 in r19,__SP_H__
1004 053e 285F subi r18,lo8(-(8))
1005 0540 3F4F sbci r19,hi8(-(8))
1006 0542 10C0 rjmp .L50
1007 .L42:
303:cc2420db_library.c **** rfRxInfo.ackRequest, rfRxInfo.rssi & 0xff);
304:cc2420db_library.c ****
305:cc2420db_library.c **** }
306:cc2420db_library.c **** else
307:cc2420db_library.c **** {
308:cc2420db_library.c ****
309:cc2420db_library.c **** /* no new packet available */
310:cc2420db_library.c **** status = sprintf(&response[0], ":%c\r\n", command[0]);
1009 .LM59:
1010 0544 8E2F mov r24,r30
1011 0546 9927 clr r25
1012 0548 9F93 push r25
1013 054a 8F93 push r24
1014 054c 80E0 ldi r24,lo8(.LC10)
1015 054e 90E0 ldi r25,hi8(.LC10)
1016 0550 9F93 push r25
1017 0552 8F93 push r24
1018 0554 7F93 push r23
1019 0556 6F93 push r22
1020 0558 0E94 0000 call sprintf
1021 055c 2DB7 in r18,__SP_L__
1022 055e 3EB7 in r19,__SP_H__
1023 0560 2A5F subi r18,lo8(-(6))
1024 0562 3F4F sbci r19,hi8(-(6))
1025 .L50:
1026 0564 0FB6 in __tmp_reg__,__SREG__
1027 0566 F894 cli
1028 0568 3EBF out __SP_H__,r19
1029 056a 0FBE out __SREG__,__tmp_reg__
1030 056c 2DBF out __SP_L__,r18
311:cc2420db_library.c **** }
312:cc2420db_library.c ****
313:cc2420db_library.c **** /* clear packet reception */
314:cc2420db_library.c **** sig_packet_rx = FALSE;
1032 .LM60:
1033 056e 1092 0000 sts sig_packet_rx,__zero_reg__
1034 /* epilogue: frame size=0 */
1035 0572 DF91 pop r29
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?