📄 basic_rf_init.lst
字号:
1 .file "basic_rf_init.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:
94 .global basicRfInit
96 basicRfInit:
1:../../../lib/basic_rf/basic_rf_init.c **** /**************************************************************************************************
2:../../../lib/basic_rf/basic_rf_init.c **** *
3:../../../lib/basic_rf/basic_rf_init.c **** * **********
4:../../../lib/basic_rf/basic_rf_init.c **** * ************
5:../../../lib/basic_rf/basic_rf_init.c **** * *** ***
6:../../../lib/basic_rf/basic_rf_init.c **** * *** +++ ***
7:../../../lib/basic_rf/basic_rf_init.c **** * *** + + ***
8:../../../lib/basic_rf/basic_rf_init.c **** * *** + CHIPCON CC2420 BASIC RF LIBRARY
9:../../../lib/basic_rf/basic_rf_init.c **** * *** + + *** Initilization
10:../../../lib/basic_rf/basic_rf_init.c **** * *** +++ ***
11:../../../lib/basic_rf/basic_rf_init.c **** * *** ***
12:../../../lib/basic_rf/basic_rf_init.c **** * ************
13:../../../lib/basic_rf/basic_rf_init.c **** * **********
14:../../../lib/basic_rf/basic_rf_init.c **** *
15:../../../lib/basic_rf/basic_rf_init.c **** **************************************************************************************************
16:../../../lib/basic_rf/basic_rf_init.c **** * This file contains the basic RF initialization function.
17:../../../lib/basic_rf/basic_rf_init.c **** *
18:../../../lib/basic_rf/basic_rf_init.c **** * More information can be found in basic_rf.h
19:../../../lib/basic_rf/basic_rf_init.c **** **************************************************************************************************
20:../../../lib/basic_rf/basic_rf_init.c **** * Compiler: AVR-GCC
21:../../../lib/basic_rf/basic_rf_init.c **** * Target platform: CC2420DB, CC2420 + any MCU with very few modifications required
22:../../../lib/basic_rf/basic_rf_init.c **** **************************************************************************************************
23:../../../lib/basic_rf/basic_rf_init.c **** * Revision history:
24:../../../lib/basic_rf/basic_rf_init.c **** * $Log: basic_rf_init.c,v $
25:../../../lib/basic_rf/basic_rf_init.c **** * Revision 1.4 2004/07/26 11:28:09 mbr
26:../../../lib/basic_rf/basic_rf_init.c **** * Modified RXFIFO flushing by strobing CC2420_SFLUSHRX
27:../../../lib/basic_rf/basic_rf_init.c **** *
28:../../../lib/basic_rf/basic_rf_init.c **** * Revision 1.3 2004/03/30 14:59:22 mbr
29:../../../lib/basic_rf/basic_rf_init.c **** * Release for web
30:../../../lib/basic_rf/basic_rf_init.c **** *
31:../../../lib/basic_rf/basic_rf_init.c **** *
32:../../../lib/basic_rf/basic_rf_init.c **** *
33:../../../lib/basic_rf/basic_rf_init.c **** **************************************************************************************************
34:../../../lib/basic_rf/basic_rf_init.c **** #include <include.h>
35:../../../lib/basic_rf/basic_rf_init.c ****
36:../../../lib/basic_rf/basic_rf_init.c ****
37:../../../lib/basic_rf/basic_rf_init.c **** //-------------------------------------------------------------------------------------------------
38:../../../lib/basic_rf/basic_rf_init.c **** // The RF settings structure is declared here, since we'll always need halRfInit()
39:../../../lib/basic_rf/basic_rf_init.c **** volatile BASIC_RF_SETTINGS rfSettings;
40:../../../lib/basic_rf/basic_rf_init.c **** //-------------------------------------------------------------------------------------------------
41:../../../lib/basic_rf/basic_rf_init.c ****
42:../../../lib/basic_rf/basic_rf_init.c ****
43:../../../lib/basic_rf/basic_rf_init.c ****
44:../../../lib/basic_rf/basic_rf_init.c ****
45:../../../lib/basic_rf/basic_rf_init.c **** //-------------------------------------------------------------------------------------------------
46:../../../lib/basic_rf/basic_rf_init.c **** // void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr)
47:../../../lib/basic_rf/basic_rf_init.c **** //
48:../../../lib/basic_rf/basic_rf_init.c **** // DESCRIPTION:
49:../../../lib/basic_rf/basic_rf_init.c **** // Initializes CC2420 for radio communication via the basic RF library functions. Turns on the
50:../../../lib/basic_rf/basic_rf_init.c **** // voltage regulator, resets the CC2420, turns on the crystal oscillator, writes all necessary
51:../../../lib/basic_rf/basic_rf_init.c **** // registers and protocol addresses (for automatic address recognition). Note that the crystal
52:../../../lib/basic_rf/basic_rf_init.c **** // oscillator will remain on (forever).
53:../../../lib/basic_rf/basic_rf_init.c **** //
54:../../../lib/basic_rf/basic_rf_init.c **** // ARGUMENTS:
55:../../../lib/basic_rf/basic_rf_init.c **** // BASIC_RF_RX_INFO *pRRI
56:../../../lib/basic_rf/basic_rf_init.c **** // A pointer the BASIC_RF_RX_INFO data structure to be used during the first packet recept
57:../../../lib/basic_rf/basic_rf_init.c **** // The structure can be switched upon packet reception.
58:../../../lib/basic_rf/basic_rf_init.c **** // UINT8 channel
59:../../../lib/basic_rf/basic_rf_init.c **** // The RF channel to be used (11 = 2405 MHz to 26 = 2480 MHz)
60:../../../lib/basic_rf/basic_rf_init.c **** // WORD panId
61:../../../lib/basic_rf/basic_rf_init.c **** // The personal area network identification number
62:../../../lib/basic_rf/basic_rf_init.c **** // WORD myAddr
63:../../../lib/basic_rf/basic_rf_init.c **** // The 16-bit short address which is used by this node. Must together with the PAN ID form
64:../../../lib/basic_rf/basic_rf_init.c **** // unique 32-bit identifier to avoid addressing conflicts. Normally, in a 802.15.4 network, the
65:../../../lib/basic_rf/basic_rf_init.c **** // short address will be given to associated nodes by the PAN coordinator.
66:../../../lib/basic_rf/basic_rf_init.c **** //-------------------------------------------------------------------------------------------------
67:../../../lib/basic_rf/basic_rf_init.c **** void basicRfInit(BASIC_RF_RX_INFO *pRRI, UINT8 channel, WORD panId, WORD myAddr) {
98 .LM1:
99 /* prologue: frame size=4 */
100 0000 FF92 push r15
101 0002 0F93 push r16
102 0004 1F93 push r17
103 0006 CF93 push r28
104 0008 DF93 push r29
105 000a CDB7 in r28,__SP_L__
106 000c DEB7 in r29,__SP_H__
107 000e 2497 sbiw r28,4
108 0010 0FB6 in __tmp_reg__,__SREG__
109 0012 F894 cli
110 0014 DEBF out __SP_H__,r29
111 0016 0FBE out __SREG__,__tmp_reg__
112 0018 CDBF out __SP_L__,r28
113 /* prologue end (size=13) */
114 001a 8C01 movw r16,r24
115 001c F62E mov r15,r22
116 001e 4B83 std Y+3,r20
117 0020 5C83 std Y+4,r21
118 0022 2983 std Y+1,r18
119 0024 3A83 std Y+2,r19
68:../../../lib/basic_rf/basic_rf_init.c **** UINT8 n;
69:../../../lib/basic_rf/basic_rf_init.c ****
70:../../../lib/basic_rf/basic_rf_init.c **** // Make sure that the voltage regulator is on, and that the reset pin is inactive
71:../../../lib/basic_rf/basic_rf_init.c **** SET_VREG_ACTIVE();
121 .LM2:
122 0026 C59A sbi 56-0x20,5
72:../../../lib/basic_rf/basic_rf_init.c **** halWait(1000);
124 .LM3:
125 0028 88EE ldi r24,lo8(1000)
126 002a 93E0 ldi r25,hi8(1000)
127 002c 0E94 0000 call halWait
73:../../../lib/basic_rf/basic_rf_init.c **** SET_RESET_ACTIVE();
129 .LM4:
130 0030 C698 cbi 56-0x20,6
74:../../../lib/basic_rf/basic_rf_init.c **** halWait(1);
132 .LM5:
133 0032 81E0 ldi r24,lo8(1)
134 0034 90E0 ldi r25,hi8(1)
135 0036 0E94 0000 call halWait
75:../../../lib/basic_rf/basic_rf_init.c **** SET_RESET_INACTIVE();
137 .LM6:
138 003a C69A sbi 56-0x20,6
76:../../../lib/basic_rf/basic_rf_init.c **** halWait(5);
140 .LM7:
141 003c 85E0 ldi r24,lo8(5)
142 003e 90E0 ldi r25,hi8(5)
143 0040 0E94 0000 call halWait
77:../../../lib/basic_rf/basic_rf_init.c ****
78:../../../lib/basic_rf/basic_rf_init.c **** // Initialize the FIFOP external interrupt
79:../../../lib/basic_rf/basic_rf_init.c **** FIFOP_INT_INIT();
145 .LM8:
146 0044 8091 6A00 lds r24,106
147 0048 8360 ori r24,lo8(3)
148 004a 8093 6A00 sts 106,r24
149 004e 81E0 ldi r24,lo8(1)
150 0050 88BF out 88-0x20,r24
80:../../../lib/basic_rf/basic_rf_init.c **** ENABLE_FIFOP_INT();
152 .LM9:
153 0052 89B7 in r24,89-0x20
154 0054 8160 ori r24,lo8(1)
155 0056 89BF out 89-0x20,r24
81:../../../lib/basic_rf/basic_rf_init.c ****
82:../../../lib/basic_rf/basic_rf_init.c **** // Turn off all interrupts while we're accessing the CC2420 registers
83:../../../lib/basic_rf/basic_rf_init.c **** DISABLE_GLOBAL_INT();
157 .LM10:
158 /* #APP */
159 0058 F894 cli
160
84:../../../lib/basic_rf/basic_rf_init.c ****
85:../../../lib/basic_rf/basic_rf_init.c ****
86:../../../lib/basic_rf/basic_rf_init.c **** // Register modifications
87:../../../lib/basic_rf/basic_rf_init.c **** FASTSPI_STROBE(CC2420_SXOSCON);
162 .LM11:
163 /* #NOAPP */
164 005a C098 cbi 56-0x20,0
165 005c 81E0 ldi r24,lo8(1)
166 005e 8FB9 out 47-0x20,r24
167 .L9:
169 .LM12:
170 0060 779B sbis 46-0x20,7
171 0062 FECF rjmp .L9
172 0064 C09A sbi 56-0x20,0
88:../../../lib/basic_rf/basic_rf_init.c **** FASTSPI_SETREG(CC2420_MDMCTRL0, 0x0AF2); // Turn on automatic packet acknowledgment
174 .LM13:
175 0066 C098 cbi 56-0x20,0
176 0068 81E1 ldi r24,lo8(17)
177 006a 8FB9 out 47-0x20,r24
178 .L15:
179 006c 779B sbis 46-0x20,7
180 006e FECF rjmp .L15
181 0070 8AE0 ldi r24,lo8(10)
182 0072 8FB9 out 47-0x20,r24
183 .L20:
184 0074 779B sbis 46-0x20,7
185 0076 FECF rjmp .L20
186 0078 82EF ldi r24,lo8(-14)
187 007a 8FB9 out 47-0x20,r24
188 .L25:
189 007c 779B sbis 46-0x20,7
190 007e FECF rjmp .L25
191 0080 C09A sbi 56-0x20,0
89:../../../lib/basic_rf/basic_rf_init.c **** FASTSPI_SETREG(CC2420_MDMCTRL1, 0x0500); // Set the correlation threshold = 20
193 .LM14:
194 0082 C098 cbi 56-0x20,0
195 0084 82E1 ldi r24,lo8(18)
196 0086 8FB9 out 47-0x20,r24
197 .L31:
198 0088 779B sbis 46-0x20,7
199 008a FECF rjmp .L31
200 008c 85E0 ldi r24,lo8(5)
201 008e 8FB9 out 47-0x20,r24
202 .L36:
203 0090 779B sbis 46-0x20,7
204 0092 FECF rjmp .L36
205 0094 1FB8 out 47-0x20,__zero_reg__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -