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 + -
显示快捷键?