📄 basic_rf_receive.lst
字号:
1 .file "basic_rf_receive.c"
2 .arch atmega128
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
12 .text
13 .Ltext0:
90 .global basicRfReceiveOn
92 basicRfReceiveOn:
1:../../../lib/basic_rf/basic_rf_receive.c **** /**************************************************************************************************
2:../../../lib/basic_rf/basic_rf_receive.c **** *
3:../../../lib/basic_rf/basic_rf_receive.c **** * **********
4:../../../lib/basic_rf/basic_rf_receive.c **** * ************
5:../../../lib/basic_rf/basic_rf_receive.c **** * *** ***
6:../../../lib/basic_rf/basic_rf_receive.c **** * *** +++ ***
7:../../../lib/basic_rf/basic_rf_receive.c **** * *** + + ***
8:../../../lib/basic_rf/basic_rf_receive.c **** * *** + CHIPCON CC2420 BASIC RF LIBRARY
9:../../../lib/basic_rf/basic_rf_receive.c **** * *** + + *** Packet reception
10:../../../lib/basic_rf/basic_rf_receive.c **** * *** +++ ***
11:../../../lib/basic_rf/basic_rf_receive.c **** * *** ***
12:../../../lib/basic_rf/basic_rf_receive.c **** * ************
13:../../../lib/basic_rf/basic_rf_receive.c **** * **********
14:../../../lib/basic_rf/basic_rf_receive.c **** *
15:../../../lib/basic_rf/basic_rf_receive.c **** **************************************************************************************************
16:../../../lib/basic_rf/basic_rf_receive.c **** * This file contains functions used to enable and disable for packet reception, and the FIFOP
17:../../../lib/basic_rf/basic_rf_receive.c **** * interrupt which handles the packet reception. The application must define the
18:../../../lib/basic_rf/basic_rf_receive.c **** * basicRfReceivePacket() function, which is called when a packet has been successfully received.
19:../../../lib/basic_rf/basic_rf_receive.c **** *
20:../../../lib/basic_rf/basic_rf_receive.c **** * More information can be found in basic_rf.h
21:../../../lib/basic_rf/basic_rf_receive.c **** **************************************************************************************************
22:../../../lib/basic_rf/basic_rf_receive.c **** * Compiler: AVR-GCC
23:../../../lib/basic_rf/basic_rf_receive.c **** * Target platform: CC2420DB, CC2420 + any MCU with very few modifications required
24:../../../lib/basic_rf/basic_rf_receive.c **** **************************************************************************************************
25:../../../lib/basic_rf/basic_rf_receive.c **** * Revision history:
26:../../../lib/basic_rf/basic_rf_receive.c **** * $Log: basic_rf_receive.c,v $
27:../../../lib/basic_rf/basic_rf_receive.c **** * Revision 1.4 2004/07/26 11:28:10 mbr
28:../../../lib/basic_rf/basic_rf_receive.c **** * Modified RXFIFO flushing by strobing CC2420_SFLUSHRX
29:../../../lib/basic_rf/basic_rf_receive.c **** *
30:../../../lib/basic_rf/basic_rf_receive.c **** * Revision 1.3 2004/03/30 14:59:22 mbr
31:../../../lib/basic_rf/basic_rf_receive.c **** * Release for web
32:../../../lib/basic_rf/basic_rf_receive.c **** *
33:../../../lib/basic_rf/basic_rf_receive.c **** *
34:../../../lib/basic_rf/basic_rf_receive.c **** *
35:../../../lib/basic_rf/basic_rf_receive.c **** **************************************************************************************************
36:../../../lib/basic_rf/basic_rf_receive.c **** #include <include.h>
37:../../../lib/basic_rf/basic_rf_receive.c ****
38:../../../lib/basic_rf/basic_rf_receive.c ****
39:../../../lib/basic_rf/basic_rf_receive.c ****
40:../../../lib/basic_rf/basic_rf_receive.c ****
41:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
42:../../../lib/basic_rf/basic_rf_receive.c **** // void halRfReceiveOn(void)
43:../../../lib/basic_rf/basic_rf_receive.c **** //
44:../../../lib/basic_rf/basic_rf_receive.c **** // DESCRIPTION:
45:../../../lib/basic_rf/basic_rf_receive.c **** // Enables the CC2420 receiver and the FIFOP interrupt. When a packet is received through this
46:../../../lib/basic_rf/basic_rf_receive.c **** // interrupt, it will call halRfReceivePacket(...), which must be defined by the application
47:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
48:../../../lib/basic_rf/basic_rf_receive.c **** void basicRfReceiveOn(void) {
94 .LM1:
95 /* prologue: frame size=0 */
96 /* prologue end (size=0) */
49:../../../lib/basic_rf/basic_rf_receive.c **** rfSettings.receiveOn = TRUE;
98 .LM2:
99 0000 81E0 ldi r24,lo8(1)
100 0002 8093 0000 sts rfSettings+8,r24
50:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_STROBE(CC2420_SRXON);
102 .LM3:
103 0006 C098 cbi 56-0x20,0
104 0008 83E0 ldi r24,lo8(3)
105 000a 8FB9 out 47-0x20,r24
106 .L5:
108 .LM4:
109 000c 779B sbis 46-0x20,7
110 000e FECF rjmp .L5
111 0010 C09A sbi 56-0x20,0
51:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_STROBE(CC2420_SFLUSHRX);
113 .LM5:
114 0012 C098 cbi 56-0x20,0
115 0014 88E0 ldi r24,lo8(8)
116 0016 8FB9 out 47-0x20,r24
117 .L11:
118 0018 779B sbis 46-0x20,7
119 001a FECF rjmp .L11
120 001c C09A sbi 56-0x20,0
52:../../../lib/basic_rf/basic_rf_receive.c **** ENABLE_FIFOP_INT();
122 .LM6:
123 001e 89B7 in r24,89-0x20
124 0020 8160 ori r24,lo8(1)
125 0022 89BF out 89-0x20,r24
126 /* epilogue: frame size=0 */
127 0024 0895 ret
128 /* epilogue end (size=1) */
129 /* function basicRfReceiveOn size 19 (18) */
131 .Lscope0:
134 .global basicRfReceiveOff
136 basicRfReceiveOff:
53:../../../lib/basic_rf/basic_rf_receive.c **** } // basicRfReceiveOn
54:../../../lib/basic_rf/basic_rf_receive.c ****
55:../../../lib/basic_rf/basic_rf_receive.c ****
56:../../../lib/basic_rf/basic_rf_receive.c ****
57:../../../lib/basic_rf/basic_rf_receive.c ****
58:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
59:../../../lib/basic_rf/basic_rf_receive.c **** // void halRfReceiveOff(void)
60:../../../lib/basic_rf/basic_rf_receive.c **** //
61:../../../lib/basic_rf/basic_rf_receive.c **** // DESCRIPTION:
62:../../../lib/basic_rf/basic_rf_receive.c **** // Disables the CC2420 receiver and the FIFOP interrupt.
63:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
64:../../../lib/basic_rf/basic_rf_receive.c **** void basicRfReceiveOff(void) {
138 .LM7:
139 /* prologue: frame size=0 */
140 /* prologue end (size=0) */
65:../../../lib/basic_rf/basic_rf_receive.c **** rfSettings.receiveOn = FALSE;
142 .LM8:
143 0026 1092 0000 sts rfSettings+8,__zero_reg__
66:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_STROBE(CC2420_SRFOFF);
145 .LM9:
146 002a C098 cbi 56-0x20,0
147 002c 86E0 ldi r24,lo8(6)
148 002e 8FB9 out 47-0x20,r24
149 .L19:
151 .LM10:
152 0030 779B sbis 46-0x20,7
153 0032 FECF rjmp .L19
154 0034 C09A sbi 56-0x20,0
67:../../../lib/basic_rf/basic_rf_receive.c **** DISABLE_FIFOP_INT();
156 .LM11:
157 0036 89B7 in r24,89-0x20
158 0038 8E7F andi r24,lo8(-2)
159 003a 89BF out 89-0x20,r24
160 /* epilogue: frame size=0 */
161 003c 0895 ret
162 /* epilogue end (size=1) */
163 /* function basicRfReceiveOff size 12 (11) */
165 .Lscope1:
168 .global __vector_1
170 __vector_1:
68:../../../lib/basic_rf/basic_rf_receive.c **** } // basicRfReceiveOff
69:../../../lib/basic_rf/basic_rf_receive.c ****
70:../../../lib/basic_rf/basic_rf_receive.c ****
71:../../../lib/basic_rf/basic_rf_receive.c ****
72:../../../lib/basic_rf/basic_rf_receive.c ****
73:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
74:../../../lib/basic_rf/basic_rf_receive.c **** // SIGNAL(SIG_INTERRUPT0) - CC2420 FIFOP interrupt service routine
75:../../../lib/basic_rf/basic_rf_receive.c **** //
76:../../../lib/basic_rf/basic_rf_receive.c **** // DESCRIPTION:
77:../../../lib/basic_rf/basic_rf_receive.c **** // When a packet has been completely received, this ISR will extract the data from the RX FIFO, pu
78:../../../lib/basic_rf/basic_rf_receive.c **** // it into the active BASIC_RF_RX_INFO structure, and call basicRfReceivePacket() (defined by the
79:../../../lib/basic_rf/basic_rf_receive.c **** // application). FIFO overflow and illegally formatted packets is handled by this routine.
80:../../../lib/basic_rf/basic_rf_receive.c **** //
81:../../../lib/basic_rf/basic_rf_receive.c **** // Note: Packets are acknowledged automatically by CC2420 through the auto-acknowledgment feat
82:../../../lib/basic_rf/basic_rf_receive.c **** //-------------------------------------------------------------------------------------------------
83:../../../lib/basic_rf/basic_rf_receive.c **** SIGNAL(SIG_INTERRUPT0) {
172 .LM12:
173 /* prologue: frame size=4 */
174 003e 1F92 push __zero_reg__
175 0040 0F92 push __tmp_reg__
176 0042 0FB6 in __tmp_reg__,__SREG__
177 0044 0F92 push __tmp_reg__
178 0046 1124 clr __zero_reg__
179 0048 2F93 push r18
180 004a 3F93 push r19
181 004c 4F93 push r20
182 004e 5F93 push r21
183 0050 6F93 push r22
184 0052 7F93 push r23
185 0054 8F93 push r24
186 0056 9F93 push r25
187 0058 AF93 push r26
188 005a BF93 push r27
189 005c EF93 push r30
190 005e FF93 push r31
191 0060 CF93 push r28
192 0062 DF93 push r29
193 0064 CDB7 in r28,__SP_L__
194 0066 DEB7 in r29,__SP_H__
195 0068 2497 sbiw r28,4
196 006a DEBF out __SP_H__,r29
197 006c CDBF out __SP_L__,r28
198 /* prologue end (size=24) */
84:../../../lib/basic_rf/basic_rf_receive.c **** WORD frameControlField;
85:../../../lib/basic_rf/basic_rf_receive.c **** INT8 length;
86:../../../lib/basic_rf/basic_rf_receive.c **** BYTE pFooter[2];
87:../../../lib/basic_rf/basic_rf_receive.c ****
88:../../../lib/basic_rf/basic_rf_receive.c **** // Clean up and exit in case of FIFO overflow, which is indicated by FIFOP = 1 and FIFO = 0
89:../../../lib/basic_rf/basic_rf_receive.c **** if((FIFOP_IS_1) && (!(FIFO_IS_1))) {
200 .LM13:
201 006e 809B sbis 48-0x20,0
202 0070 0EC0 rjmp .L24
204 .LM14:
205 0072 8199 sbic 48-0x20,1
206 0074 0CC0 rjmp .L24
90:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_STROBE(CC2420_SFLUSHRX);
208 .LM15:
209 0076 C098 cbi 56-0x20,0
210 0078 88E0 ldi r24,lo8(8)
211 007a 8FB9 out 47-0x20,r24
212 .L28:
213 007c 779B sbis 46-0x20,7
214 007e FECF rjmp .L28
215 0080 C09A sbi 56-0x20,0
91:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_STROBE(CC2420_SFLUSHRX);
217 .LM16:
218 0082 C098 cbi 56-0x20,0
219 0084 88E0 ldi r24,lo8(8)
220 0086 8FB9 out 47-0x20,r24
221 .L34:
222 0088 779B sbis 46-0x20,7
223 008a FECF rjmp .L34
224 008c A7C0 rjmp .L117
225 .L24:
92:../../../lib/basic_rf/basic_rf_receive.c **** return;
93:../../../lib/basic_rf/basic_rf_receive.c **** }
94:../../../lib/basic_rf/basic_rf_receive.c ****
95:../../../lib/basic_rf/basic_rf_receive.c **** // Payload length
96:../../../lib/basic_rf/basic_rf_receive.c **** FASTSPI_READ_FIFO_BYTE(length);
227 .LM17:
228 008e C098 cbi 56-0x20,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -