|
1 |
1 .file "xbee.c"
|
|
2 |
2 .arch atmega128
|
|
3 |
3 __SREG__ = 0x3f
|
|
4 |
4 __SP_H__ = 0x3e
|
|
5 |
5 __SP_L__ = 0x3d
|
|
6 |
6 __tmp_reg__ = 0
|
|
7 |
7 __zero_reg__ = 1
|
|
8 |
8 .global __do_copy_data
|
|
9 |
9 .global __do_clear_bss
|
|
10 |
10 .text
|
|
11 |
11 .global __vector_30
|
|
12 |
13 __vector_30:
|
|
13 |
14 /* prologue: frame size=0 */
|
|
14 |
15 0000 1F92 push __zero_reg__
|
|
15 |
16 0002 0F92 push __tmp_reg__
|
|
16 |
17 0004 0FB6 in __tmp_reg__,__SREG__
|
|
17 |
18 0006 0F92 push __tmp_reg__
|
|
18 |
19 0008 1124 clr __zero_reg__
|
|
19 |
20 000a 2F93 push r18
|
|
20 |
21 000c 3F93 push r19
|
|
21 |
22 000e 8F93 push r24
|
|
22 |
23 0010 9F93 push r25
|
|
23 |
24 0012 EF93 push r30
|
|
24 |
25 0014 FF93 push r31
|
|
25 |
26 /* prologue end (size=11) */
|
|
26 |
27 0016 8091 9C00 lds r24,156
|
|
27 |
28 001a E091 0000 lds r30,buffer_last
|
|
28 |
29 001e F091 0000 lds r31,(buffer_last)+1
|
|
29 |
30 0022 E050 subi r30,lo8(-(arrival_buf))
|
|
30 |
31 0024 F040 sbci r31,hi8(-(arrival_buf))
|
|
31 |
32 0026 8083 st Z,r24
|
|
32 |
33 0028 2091 0000 lds r18,buffer_last
|
|
33 |
34 002c 3091 0000 lds r19,(buffer_last)+1
|
|
34 |
35 0030 2F5F subi r18,lo8(-(1))
|
|
35 |
36 0032 3F4F sbci r19,hi8(-(1))
|
|
36 |
37 0034 2038 cpi r18,128
|
|
37 |
38 0036 3105 cpc r19,__zero_reg__
|
|
38 |
39 0038 01F4 brne .L2
|
|
39 |
40 003a 20E0 ldi r18,lo8(0)
|
|
40 |
41 003c 30E0 ldi r19,hi8(0)
|
|
41 |
42 .L2:
|
|
42 |
43 003e 8091 0000 lds r24,buffer_first
|
|
43 |
44 0042 9091 0000 lds r25,(buffer_first)+1
|
|
44 |
45 0046 3093 0000 sts (buffer_last)+1,r19
|
|
45 |
46 004a 2093 0000 sts buffer_last,r18
|
|
46 |
47 /* epilogue: frame size=0 */
|
|
47 |
48 004e FF91 pop r31
|
|
48 |
49 0050 EF91 pop r30
|
|
49 |
50 0052 9F91 pop r25
|
|
50 |
51 0054 8F91 pop r24
|
|
51 |
52 0056 3F91 pop r19
|
|
52 |
53 0058 2F91 pop r18
|
|
53 |
54 005a 0F90 pop __tmp_reg__
|
|
54 |
55 005c 0FBE out __SREG__,__tmp_reg__
|
|
55 |
56 005e 0F90 pop __tmp_reg__
|
|
56 |
57 0060 1F90 pop __zero_reg__
|
|
57 |
58 0062 1895 reti
|
|
58 |
59 /* epilogue end (size=11) */
|
|
59 |
60 /* function __vector_30 size 50 (28) */
|
|
60 |
62 .data
|
|
61 |
63 .LC0:
|
|
62 |
64 0000 4F4B 0D00 .string "OK\r"
|
|
63 |
65 .text
|
|
64 |
67 xbee_wait_for_ok:
|
|
65 |
68 /* prologue: frame size=0 */
|
|
66 |
69 /* prologue end (size=0) */
|
|
67 |
70 0064 00C0 rjmp .L20
|
|
68 |
71 .L7:
|
|
69 |
72 0066 2091 0000 lds r18,buffer_last
|
|
70 |
73 006a 3091 0000 lds r19,(buffer_last)+1
|
|
71 |
74 006e 8091 0000 lds r24,buffer_first
|
|
72 |
75 0072 9091 0000 lds r25,(buffer_first)+1
|
|
73 |
76 0076 2817 cp r18,r24
|
|
74 |
77 0078 3907 cpc r19,r25
|
|
75 |
78 007a 01F0 breq .L21
|
|
76 |
79 007c 8091 0000 lds r24,buffer_first
|
|
77 |
80 0080 9091 0000 lds r25,(buffer_first)+1
|
|
78 |
81 0084 FC01 movw r30,r24
|
|
79 |
82 0086 E050 subi r30,lo8(-(arrival_buf))
|
|
80 |
83 0088 F040 sbci r31,hi8(-(arrival_buf))
|
|
81 |
84 008a E081 ld r30,Z
|
|
82 |
85 008c 0196 adiw r24,1
|
|
83 |
86 008e 9093 0000 sts (buffer_first)+1,r25
|
|
84 |
87 0092 8093 0000 sts buffer_first,r24
|
|
85 |
88 0096 8091 0000 lds r24,buffer_first
|
|
86 |
89 009a 9091 0000 lds r25,(buffer_first)+1
|
|
87 |
90 009e 8038 cpi r24,128
|
|
88 |
91 00a0 9105 cpc r25,__zero_reg__
|
|
89 |
92 00a2 01F4 brne .L9
|
|
90 |
93 00a4 1092 0000 sts (buffer_first)+1,__zero_reg__
|
|
91 |
94 00a8 1092 0000 sts buffer_first,__zero_reg__
|
|
92 |
95 .L9:
|
|
93 |
96 00ac 8C91 ld r24,X
|
|
94 |
97 00ae E817 cp r30,r24
|
|
95 |
98 00b0 01F0 breq .L11
|
|
96 |
99 .L20:
|
|
97 |
100 00b2 A0E0 ldi r26,lo8(.LC0)
|
|
98 |
101 00b4 B0E0 ldi r27,hi8(.LC0)
|
|
99 |
102 00b6 00C0 rjmp .L21
|
|
100 |
103 .L11:
|
|
101 |
104 00b8 1196 adiw r26,1
|
|
102 |
105 .L21:
|
|
103 |
106 00ba CD01 movw r24,r26
|
|
104 |
107 00bc 8050 subi r24,lo8(.LC0)
|
|
105 |
108 00be 9040 sbci r25,hi8(.LC0)
|
|
106 |
109 00c0 0397 sbiw r24,3
|
|
107 |
110 00c2 04F0 brlt .L7
|
|
108 |
111 00c4 80E0 ldi r24,lo8(0)
|
|
109 |
112 00c6 90E0 ldi r25,hi8(0)
|
|
110 |
113 /* epilogue: frame size=0 */
|
|
111 |
114 00c8 0895 ret
|
|
112 |
115 /* epilogue end (size=1) */
|
|
113 |
116 /* function xbee_wait_for_ok size 52 (51) */
|
|
114 |
118 .global xbee_get_packet
|
|
115 |
120 xbee_get_packet:
|
|
116 |
121 /* prologue: frame size=0 */
|
|
117 |
122 00ca CF93 push r28
|
|
118 |
123 00cc DF93 push r29
|
|
119 |
124 /* prologue end (size=2) */
|
|
120 |
125 00ce EC01 movw r28,r24
|
|
121 |
126 00d0 8091 0000 lds r24,currentBufPos
|
|
122 |
127 00d4 9091 0000 lds r25,(currentBufPos)+1
|
|
123 |
128 00d8 0097 sbiw r24,0
|
|
124 |
129 00da 01F4 brne .L23
|
|
125 |
130 .L73:
|
|
126 |
131 00dc 8091 0000 lds r24,buffer_first
|
|
127 |
132 00e0 9091 0000 lds r25,(buffer_first)+1
|
|
128 |
133 00e4 8038 cpi r24,128
|
|
129 |
134 00e6 9105 cpc r25,__zero_reg__
|
|
130 |
135 00e8 01F4 brne .L25
|
|
131 |
136 00ea 1092 0000 sts (buffer_first)+1,__zero_reg__
|
|
132 |
137 00ee 1092 0000 sts buffer_first,__zero_reg__
|
|
133 |
138 .L25:
|
|
134 |
139 00f2 2091 0000 lds r18,buffer_first
|
|
135 |
140 00f6 3091 0000 lds r19,(buffer_first)+1
|
|
136 |
141 00fa 8091 0000 lds r24,buffer_last
|
|
137 |
142 00fe 9091 0000 lds r25,(buffer_last)+1
|
|
138 |
143 0102 2817 cp r18,r24
|
|
139 |
144 0104 3907 cpc r19,r25
|
|
140 |
145 0106 01F4 brne .+2
|
|
141 |
146 0108 00C0 rjmp .L77
|
|
142 |
147 010a 8091 0000 lds r24,buffer_first
|
|
143 |
148 010e 9091 0000 lds r25,(buffer_first)+1
|
|
144 |
149 0112 FC01 movw r30,r24
|
|
145 |
150 0114 E050 subi r30,lo8(-(arrival_buf))
|
|
146 |
151 0116 F040 sbci r31,hi8(-(arrival_buf))
|
|
147 |
152 0118 E081 ld r30,Z
|
|
148 |
153 011a 0196 adiw r24,1
|
|
149 |
154 011c 9093 0000 sts (buffer_first)+1,r25
|
|
150 |
155 0120 8093 0000 sts buffer_first,r24
|
|
151 |
156 0124 EE37 cpi r30,lo8(126)
|
|
152 |
157 0126 01F4 brne .L73
|
|
153 |
158 0128 8091 0000 lds r24,buffer_first
|
|
154 |
159 012c 9091 0000 lds r25,(buffer_first)+1
|
|
155 |
160 0130 8038 cpi r24,128
|
|
156 |
161 0132 9105 cpc r25,__zero_reg__
|
|
157 |
162 0134 01F4 brne .L30
|
|
158 |
163 0136 1092 0000 sts (buffer_first)+1,__zero_reg__
|
|
159 |
164 013a 1092 0000 sts buffer_first,__zero_reg__
|
|
160 |
165 .L30:
|
|
161 |
166 013e E093 0000 sts xbee_buf,r30
|
|
162 |
167 0142 81E0 ldi r24,lo8(1)
|
|
163 |
168 0144 90E0 ldi r25,hi8(1)
|
|
164 |
169 0146 9093 0000 sts (currentBufPos)+1,r25
|
|
165 |
170 014a 8093 0000 sts currentBufPos,r24
|
|
166 |
171 014e 00C0 rjmp .L76
|
|
167 |
172 .L23:
|
|
168 |
173 0150 0397 sbiw r24,3
|
|
169 |
174 0152 04F4 brge .L33
|
|
170 |
175 .L76:
|
|
171 |
176 0154 6FEF ldi r22,lo8(-1)
|
|
172 |
177 0156 7FEF ldi r23,hi8(-1)
|
|
173 |
178 0158 00C0 rjmp .L32
|
|
174 |
179 .L33:
|
|
175 |
180 015a 2091 0000 lds r18,xbee_buf+2
|
|
176 |
181 015e 8091 0000 lds r24,xbee_buf+1
|
|
177 |
182 0162 9927 clr r25
|
|
178 |
183 0164 782F mov r23,r24
|
|
179 |
184 0166 6627 clr r22
|
|
180 |
185 0168 620F add r22,r18
|
|
181 |
186 016a 711D adc r23,__zero_reg__
|
|
182 |
187 .L32:
|
|
183 |
188 016c 4091 0000 lds r20,currentBufPos
|
|
184 |
189 0170 5091 0000 lds r21,(currentBufPos)+1
|
|
185 |
190 0174 DA01 movw r26,r20
|
|
186 |
191 0176 A050 subi r26,lo8(-(xbee_buf))
|
|
187 |
192 0178 B040 sbci r27,hi8(-(xbee_buf))
|
|
188 |
193 017a 00C0 rjmp .L35
|
|
189 |
194 .L36:
|
|
190 |
195 017c 4330 cpi r20,3
|
|
191 |
196 017e 5105 cpc r21,__zero_reg__
|
|
192 |
197 0180 01F4 brne .L37
|
|
193 |
198 0182 2091 0000 lds r18,xbee_buf+2
|
|
194 |
199 0186 8091 0000 lds r24,xbee_buf+1
|
|
195 |
200 018a 9927 clr r25
|
|
196 |
201 018c 782F mov r23,r24
|
|
197 |
202 018e 6627 clr r22
|
|
198 |
203 0190 620F add r22,r18
|
|
199 |
204 0192 711D adc r23,__zero_reg__
|
|
200 |
205 0194 6937 cpi r22,121
|
|
201 |
206 0196 7105 cpc r23,__zero_reg__
|
|
202 |
207 0198 04F0 brlt .+2
|
|
203 |
208 019a 00C0 rjmp .L71
|
|
204 |
209 .L37:
|
|
205 |
210 019c 2091 0000 lds r18,buffer_first
|
|
206 |
211 01a0 3091 0000 lds r19,(buffer_first)+1
|
|
207 |
212 01a4 8091 0000 lds r24,buffer_last
|
|
208 |
213 01a8 9091 0000 lds r25,(buffer_last)+1
|
|
209 |
214 01ac 2817 cp r18,r24
|
|
210 |
215 01ae 3907 cpc r19,r25
|
|
211 |
216 01b0 01F4 brne .+2
|
|
212 |
217 01b2 00C0 rjmp .L72
|
|
213 |
218 01b4 8091 0000 lds r24,buffer_first
|
|
214 |
219 01b8 9091 0000 lds r25,(buffer_first)+1
|
|
215 |
220 01bc FC01 movw r30,r24
|
|
216 |
221 01be E050 subi r30,lo8(-(arrival_buf))
|
|
217 |
222 01c0 F040 sbci r31,hi8(-(arrival_buf))
|
|
218 |
223 01c2 2081 ld r18,Z
|
|
219 |
224 01c4 2C93 st X,r18
|
|
220 |
225 01c6 4F5F subi r20,lo8(-(1))
|
|
221 |
226 01c8 5F4F sbci r21,hi8(-(1))
|
|
222 |
227 01ca 0196 adiw r24,1
|
|
223 |
228 01cc 9093 0000 sts (buffer_first)+1,r25
|
|
224 |
229 01d0 8093 0000 sts buffer_first,r24
|
|
225 |
230 01d4 8091 0000 lds r24,buffer_first
|
|
226 |
231 01d8 9091 0000 lds r25,(buffer_first)+1
|
|
227 |
232 01dc 8038 cpi r24,128
|
|
228 |
233 01de 9105 cpc r25,__zero_reg__
|
|
229 |
234 01e0 01F4 brne .L43
|
|
230 |
235 01e2 1092 0000 sts (buffer_first)+1,__zero_reg__
|
|
231 |
236 01e6 1092 0000 sts buffer_first,__zero_reg__
|
|
232 |
237 .L43:
|
|
233 |
238 01ea 1196 adiw r26,1
|
|
234 |
239 .L35:
|
|
235 |
240 01ec 8FEF ldi r24,hi8(-1)
|
|
236 |
241 01ee 6F3F cpi r22,lo8(-1)
|
|
237 |
242 01f0 7807 cpc r23,r24
|
|
238 |
243 01f2 01F0 breq .L36
|
|
239 |
244 01f4 FB01 movw r30,r22
|
|
240 |
245 01f6 3496 adiw r30,4
|
|
241 |
246 01f8 4E17 cp r20,r30
|
|
242 |
247 01fa 5F07 cpc r21,r31
|
|
243 |
248 01fc 04F4 brge .+2
|
|
244 |
249 01fe 00C0 rjmp .L36
|
|
245 |
250 0200 1092 0000 sts (currentBufPos)+1,__zero_reg__
|
|
246 |
251 0204 1092 0000 sts currentBufPos,__zero_reg__
|
|
247 |
252 0208 A0E0 ldi r26,lo8(xbee_buf+3)
|
|
248 |
253 020a B0E0 ldi r27,hi8(xbee_buf+3)
|
|
249 |
254 020c 90E0 ldi r25,lo8(0)
|
|
250 |
255 020e 23E0 ldi r18,lo8(3)
|
|
251 |
256 0210 30E0 ldi r19,hi8(3)
|
|
252 |
257 0212 00C0 rjmp .L47
|
|
253 |
258 .L48:
|
|
254 |
259 0214 8D91 ld r24,X+
|
|
255 |
260 0216 980F add r25,r24
|
|
256 |
261 0218 2F5F subi r18,lo8(-(1))
|
|
257 |
262 021a 3F4F sbci r19,hi8(-(1))
|
|
258 |
263 .L47:
|
|
259 |
264 021c 2E17 cp r18,r30
|
|
260 |
265 021e 3F07 cpc r19,r31
|
|
261 |
266 0220 04F0 brlt .L48
|
|
262 |
267 0222 9F3F cpi r25,lo8(-1)
|
|
263 |
268 0224 01F0 breq .+2
|
|
264 |
269 0226 00C0 rjmp .L77
|
|
265 |
270 0228 1616 cp __zero_reg__,r22
|
|
266 |
271 022a 1706 cpc __zero_reg__,r23
|
|
267 |
272 022c 04F0 brlt .+2
|
|
268 |
273 022e 00C0 rjmp .L51
|
|
269 |
274 0230 8091 0000 lds r24,xbee_buf+3
|
|
270 |
275 0234 8838 cpi r24,lo8(-120)
|
|
271 |
276 0236 01F0 breq .L53
|
|
272 |
277 0238 8A38 cpi r24,lo8(-118)
|
|
273 |
278 023a 01F0 breq .+2
|
|
274 |
279 023c 00C0 rjmp .L51
|
|
275 |
280 023e 00C0 rjmp .L54
|
|
276 |
281 .L53:
|
|
277 |
282 0240 8091 0000 lds r24,xbee_buf+5
|
|
278 |
283 0244 9091 0000 lds r25,xbee_buf+6
|
|
279 |
284 0248 8934 cpi r24,lo8(73)
|
|
280 |
285 024a 01F4 brne .L55
|
|
281 |
286 024c 9434 cpi r25,lo8(68)
|
|
282 |
287 024e 01F0 breq .+2
|
|
283 |
288 0250 00C0 rjmp .L54
|
|
284 |
289 0252 8091 0000 lds r24,xbee_pending_panID
|
|
285 |
290 0256 9091 0000 lds r25,(xbee_pending_panID)+1
|
|
286 |
291 025a 9093 0000 sts (xbee_panID)+1,r25
|
|
287 |
292 025e 8093 0000 sts xbee_panID,r24
|
|
288 |
293 0262 00C0 rjmp .L54
|
|
289 |
294 .L55:
|
|
290 |
295 0264 8334 cpi r24,lo8(67)
|
|
291 |
296 0266 01F4 brne .L58
|
|
292 |
297 0268 9834 cpi r25,lo8(72)
|
|
293 |
298 026a 01F0 breq .+2
|
|
294 |
299 026c 00C0 rjmp .L54
|
|
295 |
300 026e 8091 0000 lds r24,xbee_pending_channel
|
|
296 |
301 0272 9091 0000 lds r25,(xbee_pending_channel)+1
|
|
297 |
302 0276 9093 0000 sts (xbee_channel)+1,r25
|
|
298 |
303 027a 8093 0000 sts xbee_channel,r24
|
|
299 |
304 027e 00C0 rjmp .L54
|
|
300 |
305 .L58:
|
|
301 |
306 0280 8D34 cpi r24,lo8(77)
|
|
302 |
307 0282 01F0 breq .+2
|
|
303 |
308 0284 00C0 rjmp .L54
|
|
304 |
309 0286 9935 cpi r25,lo8(89)
|
|
305 |
310 0288 01F0 breq .+2
|
|
306 |
311 028a 00C0 rjmp .L54
|
|
307 |
312 028c 6550 subi r22,lo8(-(-5))
|
|
308 |
313 028e 7040 sbci r23,hi8(-(-5))
|
|
309 |
314 0290 01F4 brne .+2
|
|
310 |
315 0292 00C0 rjmp .L54
|
|
311 |
316 0294 1092 0000 sts (xbee_address)+1,__zero_reg__
|
|
312 |
317 0298 1092 0000 sts xbee_address,__zero_reg__
|
|
313 |
318 029c 40E0 ldi r20,lo8(0)
|
|
314 |
319 029e 50E0 ldi r21,hi8(0)
|
|
315 |
320 02a0 E0E0 ldi r30,lo8(xbee_buf+8)
|
|
316 |
321 02a2 F0E0 ldi r31,hi8(xbee_buf+8)
|
|
317 |
322 02a4 00C0 rjmp .L64
|
|
318 |
323 .L65:
|
|
319 |
324 02a6 8091 0000 lds r24,xbee_address
|
|
320 |
325 02aa 9091 0000 lds r25,(xbee_address)+1
|
|
321 |
326 02ae 982F mov r25,r24
|
|
322 |
327 02b0 8827 clr r24
|
|
323 |
328 02b2 2191 ld r18,Z+
|
|
324 |
329 02b4 820F add r24,r18
|
|
325 |
330 02b6 911D adc r25,__zero_reg__
|
|
326 |
331 02b8 9093 0000 sts (xbee_address)+1,r25
|
|
327 |
332 02bc 8093 0000 sts xbee_address,r24
|
|
328 |
333 02c0 4F5F subi r20,lo8(-(1))
|
|
329 |
334 02c2 5F4F sbci r21,hi8(-(1))
|
|
330 |
335 .L64:
|
|
331 |
336 02c4 4617 cp r20,r22
|
|
332 |
337 02c6 5707 cpc r21,r23
|
|
333 |
338 02c8 04F0 brlt .L65
|
|
334 |
339 02ca 8091 0000 lds r24,xbee_address
|
|
335 |
340 02ce 9091 0000 lds r25,(xbee_address)+1
|
|
336 |
341 02d2 00C0 rjmp .L54
|
|
337 |
342 .L51:
|
|
338 |
343 02d4 2097 sbiw r28,0
|
|
339 |
344 02d6 01F0 breq .L77
|
|
340 |
345 02d8 FE01 movw r30,r28
|
|
341 |
346 02da 23E0 ldi r18,lo8(3)
|
|
342 |
347 02dc 30E0 ldi r19,hi8(3)
|
|
343 |
348 02de A0E0 ldi r26,lo8(xbee_buf+3)
|
|
344 |
349 02e0 B0E0 ldi r27,hi8(xbee_buf+3)
|
|
345 |
350 02e2 AB01 movw r20,r22
|
|
346 |
351 02e4 4D5F subi r20,lo8(-(3))
|
|
347 |
352 02e6 5F4F sbci r21,hi8(-(3))
|
|
348 |
353 02e8 00C0 rjmp .L68
|
|
349 |
354 .L69:
|
|
350 |
355 02ea 8D91 ld r24,X+
|
|
351 |
356 02ec 8193 st Z+,r24
|
|
352 |
357 02ee 2F5F subi r18,lo8(-(1))
|
|
353 |
358 02f0 3F4F sbci r19,hi8(-(1))
|
|
354 |
359 .L68:
|
|
355 |
360 02f2 2417 cp r18,r20
|
|
356 |
361 02f4 3507 cpc r19,r21
|
|
357 |
362 02f6 04F0 brlt .L69
|
|
358 |
363 02f8 00C0 rjmp .L40
|
|
359 |
364 .L71:
|
|
360 |
365 02fa 1092 0000 sts (currentBufPos)+1,__zero_reg__
|
|
361 |
366 02fe 1092 0000 sts currentBufPos,__zero_reg__
|
|
362 |
367 0302 00C0 rjmp .L77
|
|
363 |
368 .L72:
|
|
364 |
369 0304 5093 0000 sts (currentBufPos)+1,r21
|
|
365 |
370 0308 4093 0000 sts currentBufPos,r20
|
|
366 |
371 .L77:
|
|
367 |
372 030c 6FEF ldi r22,lo8(-1)
|
|
368 |
373 030e 7FEF ldi r23,hi8(-1)
|
|
369 |
374 0310 00C0 rjmp .L40
|
|
370 |
375 .L54:
|
|
371 |
376 0312 63E0 ldi r22,lo8(3)
|
|
372 |
377 0314 70E0 ldi r23,hi8(3)
|
|
373 |
378 .L40:
|
|
374 |
379 0316 CB01 movw r24,r22
|
|
375 |
380 /* epilogue: frame size=0 */
|
|
376 |
381 0318 DF91 pop r29
|
|
377 |
382 031a CF91 pop r28
|
|
378 |
383 031c 0895 ret
|
|
379 |
384 /* epilogue end (size=3) */
|
|
380 |
385 /* function xbee_get_packet size 300 (295) */
|
|
381 |
387 .global xbee_get_pan_id
|
|
382 |
389 xbee_get_pan_id:
|
|
383 |
390 /* prologue: frame size=0 */
|
|
384 |
391 /* prologue end (size=0) */
|
|
385 |
392 031e 8091 0000 lds r24,xbee_panID
|
|
386 |
393 0322 9091 0000 lds r25,(xbee_panID)+1
|
|
387 |
394 /* epilogue: frame size=0 */
|
|
388 |
395 0326 0895 ret
|
|
389 |
396 /* epilogue end (size=1) */
|
|
390 |
397 /* function xbee_get_pan_id size 5 (4) */
|
|
391 |
399 .global xbee_get_channel
|
|
392 |
401 xbee_get_channel:
|
|
393 |
402 /* prologue: frame size=0 */
|
|
394 |
403 /* prologue end (size=0) */
|
|
395 |
404 0328 8091 0000 lds r24,xbee_channel
|
|
396 |
405 032c 9091 0000 lds r25,(xbee_channel)+1
|
|
397 |
406 /* epilogue: frame size=0 */
|
|
398 |
407 0330 0895 ret
|
|
399 |
408 /* epilogue end (size=1) */
|
|
400 |
409 /* function xbee_get_channel size 5 (4) */
|
|
401 |
411 .global xbee_get_address
|
|
402 |
413 xbee_get_address:
|
|
403 |
414 /* prologue: frame size=0 */
|
|
404 |
415 /* prologue end (size=0) */
|
|
405 |
416 0332 8091 0000 lds r24,xbee_address
|
|
406 |
417 0336 9091 0000 lds r25,(xbee_address)+1
|
|
407 |
418 /* epilogue: frame size=0 */
|
|
408 |
419 033a 0895 ret
|
|
409 |
420 /* epilogue end (size=1) */
|
|
410 |
421 /* function xbee_get_address size 5 (4) */
|
|
411 |
424 xbee_send:
|
|
412 |
425 /* prologue: frame size=0 */
|
|
413 |
426 033c EF92 push r14
|
|
414 |
427 033e FF92 push r15
|
|
415 |
428 0340 0F93 push r16
|
|
416 |
429 0342 1F93 push r17
|
|
417 |
430 0344 CF93 push r28
|
|
418 |
431 0346 DF93 push r29
|
|
419 |
432 /* prologue end (size=6) */
|
|
420 |
433 0348 7B01 movw r14,r22
|
|
421 |
434 034a C0E0 ldi r28,lo8(0)
|
|
422 |
435 034c D0E0 ldi r29,hi8(0)
|
|
423 |
436 034e 8C01 movw r16,r24
|
|
424 |
437 0350 00C0 rjmp .L85
|
|
425 |
438 .L86:
|
|
426 |
439 0352 F801 movw r30,r16
|
|
427 |
440 0354 8191 ld r24,Z+
|
|
428 |
441 0356 8F01 movw r16,r30
|
|
429 |
442 0358 0E94 0000 call xbee_putc
|
|
430 |
443 035c 2196 adiw r28,1
|
|
431 |
444 .L85:
|
|
432 |
445 035e CE15 cp r28,r14
|
|
433 |
446 0360 DF05 cpc r29,r15
|
|
434 |
447 0362 04F0 brlt .L86
|
|
435 |
448 0364 80E0 ldi r24,lo8(0)
|
|
436 |
449 0366 90E0 ldi r25,hi8(0)
|
|
437 |
450 /* epilogue: frame size=0 */
|
|
438 |
451 0368 DF91 pop r29
|
|
439 |
452 036a CF91 pop r28
|
|
440 |
453 036c 1F91 pop r17
|
|
441 |
454 036e 0F91 pop r16
|
|
442 |
455 0370 FF90 pop r15
|
|
443 |
456 0372 EF90 pop r14
|
|
444 |
457 0374 0895 ret
|
|
445 |
458 /* epilogue end (size=7) */
|
|
446 |
459 /* function xbee_send size 29 (16) */
|
|
447 |
461 .global xbee_send_packet
|
|
448 |
463 xbee_send_packet:
|
|
449 |
464 /* prologue: frame size=9 */
|
|
450 |
465 0376 CF92 push r12
|
|
451 |
466 0378 DF92 push r13
|
|
452 |
467 037a EF92 push r14
|
|
453 |
468 037c FF92 push r15
|
|
454 |
469 037e 0F93 push r16
|
|
455 |
470 0380 CF93 push r28
|
|
456 |
471 0382 DF93 push r29
|
|
457 |
472 0384 CDB7 in r28,__SP_L__
|
|
458 |
473 0386 DEB7 in r29,__SP_H__
|
|
459 |
474 0388 2997 sbiw r28,9
|
|
460 |
475 038a 0FB6 in __tmp_reg__,__SREG__
|
|
461 |
476 038c F894 cli
|
|
462 |
477 038e DEBF out __SP_H__,r29
|
|
463 |
478 0390 0FBE out __SREG__,__tmp_reg__
|
|
464 |
479 0392 CDBF out __SP_L__,r28
|
|
465 |
480 /* prologue end (size=15) */
|
|
466 |
481 0394 6C01 movw r12,r24
|
|
467 |
482 0396 7B01 movw r14,r22
|
|
468 |
483 0398 622F mov r22,r18
|
|
469 |
484 039a 85E6 ldi r24,lo8(101)
|
|
470 |
485 039c E816 cp r14,r24
|
|
471 |
486 039e F104 cpc r15,__zero_reg__
|
|
472 |
487 03a0 04F0 brlt .+2
|
|
473 |
488 03a2 00C0 rjmp .L90
|
|
474 |
489 03a4 81E0 ldi r24,lo8(1)
|
|
475 |
490 03a6 8D83 std Y+5,r24
|
|
476 |
491 03a8 0E83 std Y+6,r16
|
|
477 |
492 03aa 252F mov r18,r21
|
|
478 |
493 03ac 3327 clr r19
|
|
479 |
494 03ae 27FD sbrc r18,7
|
|
480 |
495 03b0 3A95 dec r19
|
|
481 |
496 03b2 2F83 std Y+7,r18
|
|
482 |
497 03b4 4887 std Y+8,r20
|
|
483 |
498 03b6 6987 std Y+9,r22
|
|
484 |
499 03b8 8EE7 ldi r24,lo8(126)
|
|
485 |
500 03ba 8A83 std Y+2,r24
|
|
486 |
501 03bc E5E0 ldi r30,lo8(5)
|
|
487 |
502 03be F0E0 ldi r31,hi8(5)
|
|
488 |
503 03c0 EE0E add r14,r30
|
|
489 |
504 03c2 FF1E adc r15,r31
|
|
490 |
505 03c4 8F2D mov r24,r15
|
|
491 |
506 03c6 9927 clr r25
|
|
492 |
507 03c8 EBEF ldi r30,lo8(-5)
|
|
493 |
508 03ca FFEF ldi r31,hi8(-5)
|
|
494 |
509 03cc EE0E add r14,r30
|
|
495 |
510 03ce FF1E adc r15,r31
|
|
496 |
511 03d0 8B83 std Y+3,r24
|
|
497 |
512 03d2 8E2D mov r24,r14
|
|
498 |
513 03d4 8B5F subi r24,lo8(-(5))
|
|
499 |
514 03d6 8C83 std Y+4,r24
|
|
500 |
515 03d8 802F mov r24,r16
|
|
501 |
516 03da 8F5F subi r24,lo8(-(1))
|
|
502 |
517 03dc 820F add r24,r18
|
|
503 |
518 03de 840F add r24,r20
|
|
504 |
519 03e0 860F add r24,r22
|
|
505 |
520 03e2 8983 std Y+1,r24
|
|
506 |
521 03e4 20E0 ldi r18,lo8(0)
|
|
507 |
522 03e6 30E0 ldi r19,hi8(0)
|
|
508 |
523 03e8 082F mov r16,r24
|
|
509 |
524 03ea F601 movw r30,r12
|
|
510 |
525 03ec 00C0 rjmp .L92
|
|
511 |
526 .L93:
|
|
512 |
527 03ee 8191 ld r24,Z+
|
|
513 |
528 03f0 080F add r16,r24
|
|
514 |
529 03f2 2F5F subi r18,lo8(-(1))
|
|
515 |
530 03f4 3F4F sbci r19,hi8(-(1))
|
|
516 |
531 .L92:
|
|
517 |
532 03f6 2E15 cp r18,r14
|
|
518 |
533 03f8 3F05 cpc r19,r15
|
|
519 |
534 03fa 04F0 brlt .L93
|
|
520 |
535 03fc 0095 com r16
|
|
521 |
536 03fe 0983 std Y+1,r16
|
|
522 |
537 0400 63E0 ldi r22,lo8(3)
|
|
523 |
538 0402 70E0 ldi r23,hi8(3)
|
|
524 |
539 0404 CE01 movw r24,r28
|
|
525 |
540 0406 0296 adiw r24,2
|
|
526 |
541 0408 0E94 0000 call xbee_send
|
|
527 |
542 040c 892B or r24,r25
|
|
528 |
543 040e 01F4 brne .L90
|
|
529 |
544 0410 65E0 ldi r22,lo8(5)
|
|
530 |
545 0412 70E0 ldi r23,hi8(5)
|
|
531 |
546 0414 CE01 movw r24,r28
|
|
532 |
547 0416 0596 adiw r24,5
|
|
533 |
548 0418 0E94 0000 call xbee_send
|
|
534 |
549 041c 892B or r24,r25
|
|
535 |
550 041e 01F4 brne .L90
|
|
536 |
551 0420 B701 movw r22,r14
|
|
537 |
552 0422 C601 movw r24,r12
|
|
538 |
553 0424 0E94 0000 call xbee_send
|
|
539 |
554 0428 892B or r24,r25
|
|
540 |
555 042a 01F4 brne .L90
|
|
541 |
556 042c 61E0 ldi r22,lo8(1)
|
|
542 |
557 042e 70E0 ldi r23,hi8(1)
|
|
543 |
558 0430 CE01 movw r24,r28
|
|
544 |
559 0432 0196 adiw r24,1
|
|
545 |
560 0434 0E94 0000 call xbee_send
|
|
546 |
561 0438 892B or r24,r25
|
|
547 |
562 043a 01F4 brne .L90
|
|
548 |
563 043c 80E0 ldi r24,lo8(0)
|
|
549 |
564 043e 90E0 ldi r25,hi8(0)
|
|
550 |
565 0440 00C0 rjmp .L99
|
|
551 |
566 .L90:
|
|
552 |
567 0442 8FEF ldi r24,lo8(-1)
|
|
553 |
568 0444 9FEF ldi r25,hi8(-1)
|
|
554 |
569 .L99:
|
|
555 |
570 /* epilogue: frame size=9 */
|
|
556 |
571 0446 2996 adiw r28,9
|
|
557 |
572 0448 0FB6 in __tmp_reg__,__SREG__
|
|
558 |
573 044a F894 cli
|
|
559 |
574 044c DEBF out __SP_H__,r29
|
|
560 |
575 044e 0FBE out __SREG__,__tmp_reg__
|
|
561 |
576 0450 CDBF out __SP_L__,r28
|
|
562 |
577 0452 DF91 pop r29
|
|
563 |
578 0454 CF91 pop r28
|
|
564 |
579 0456 0F91 pop r16
|
|
565 |
580 0458 FF90 pop r15
|
|
566 |
581 045a EF90 pop r14
|
|
567 |
582 045c DF90 pop r13
|
|
568 |
583 045e CF90 pop r12
|
|
569 |
584 0460 0895 ret
|
|
570 |
585 /* epilogue end (size=14) */
|
|
571 |
586 /* function xbee_send_packet size 118 (89) */
|
|
572 |
589 xbee_send_modify_at_command:
|
|
573 |
590 /* prologue: frame size=20 */
|
|
574 |
591 0462 0F93 push r16
|
|
575 |
592 0464 1F93 push r17
|
|
576 |
593 0466 CF93 push r28
|
|
577 |
594 0468 DF93 push r29
|
|
578 |
595 046a CDB7 in r28,__SP_L__
|
|
579 |
596 046c DEB7 in r29,__SP_H__
|
|
580 |
597 046e 6497 sbiw r28,20
|
|
581 |
598 0470 0FB6 in __tmp_reg__,__SREG__
|
|
582 |
599 0472 F894 cli
|
|
583 |
600 0474 DEBF out __SP_H__,r29
|
|
584 |
601 0476 0FBE out __SREG__,__tmp_reg__
|
|
585 |
602 0478 CDBF out __SP_L__,r28
|
|
586 |
603 /* prologue end (size=12) */
|
|
587 |
604 047a FC01 movw r30,r24
|
|
588 |
605 047c 88E0 ldi r24,lo8(8)
|
|
589 |
606 047e 8D83 std Y+5,r24
|
|
590 |
607 0480 81E0 ldi r24,lo8(1)
|
|
591 |
608 0482 8E83 std Y+6,r24
|
|
592 |
609 0484 8081 ld r24,Z
|
|
593 |
610 0486 8F83 std Y+7,r24
|
|
594 |
611 0488 8181 ldd r24,Z+1
|
|
595 |
612 048a 8887 std Y+8,r24
|
|
596 |
613 048c 6115 cp r22,__zero_reg__
|
|
597 |
614 048e 7105 cpc r23,__zero_reg__
|
|
598 |
615 0490 01F4 brne .L103
|
|
599 |
616 0492 E0E0 ldi r30,lo8(0)
|
|
600 |
617 0494 F0E0 ldi r31,hi8(0)
|
|
601 |
618 0496 00C0 rjmp .L105
|
|
602 |
619 .L103:
|
|
603 |
620 0498 FB01 movw r30,r22
|
|
604 |
621 049a 0190 ld __tmp_reg__,Z+
|
|
605 |
622 049c 0020 tst __tmp_reg__
|
|
606 |
623 049e 01F4 brne .-6
|
|
607 |
624 04a0 3197 sbiw r30,1
|
|
608 |
625 04a2 E61B sub r30,r22
|
|
609 |
626 04a4 F70B sbc r31,r23
|
|
610 |
627 04a6 E930 cpi r30,9
|
|
611 |
628 04a8 F105 cpc r31,__zero_reg__
|
|
612 |
629 04aa 04F0 brlt .+2
|
|
613 |
630 04ac 00C0 rjmp .L106
|
|
614 |
631 04ae 20E0 ldi r18,lo8(0)
|
|
615 |
632 04b0 30E0 ldi r19,hi8(0)
|
|
616 |
633 04b2 AE01 movw r20,r28
|
|
617 |
634 04b4 475F subi r20,lo8(-(9))
|
|
618 |
635 04b6 5F4F sbci r21,hi8(-(9))
|
|
619 |
636 04b8 00C0 rjmp .L108
|
|
620 |
637 .L109:
|
|
621 |
638 04ba DB01 movw r26,r22
|
|
622 |
639 04bc 8D91 ld r24,X+
|
|
623 |
640 04be BD01 movw r22,r26
|
|
624 |
641 04c0 DA01 movw r26,r20
|
|
625 |
642 04c2 8D93 st X+,r24
|
|
626 |
643 04c4 AD01 movw r20,r26
|
|
627 |
644 04c6 2F5F subi r18,lo8(-(1))
|
|
628 |
645 04c8 3F4F sbci r19,hi8(-(1))
|
|
629 |
646 .L108:
|
|
630 |
647 04ca 2E17 cp r18,r30
|
|
631 |
648 04cc 3F07 cpc r19,r31
|
|
632 |
649 04ce 04F0 brlt .L109
|
|
633 |
650 .L105:
|
|
634 |
651 04d0 8F01 movw r16,r30
|
|
635 |
652 04d2 0C5F subi r16,lo8(-(4))
|
|
636 |
653 04d4 1F4F sbci r17,hi8(-(4))
|
|
637 |
654 04d6 8EE7 ldi r24,lo8(126)
|
|
638 |
655 04d8 8A83 std Y+2,r24
|
|
639 |
656 04da 812F mov r24,r17
|
|
640 |
657 04dc 9927 clr r25
|
|
641 |
658 04de 8B83 std Y+3,r24
|
|
642 |
659 04e0 402F mov r20,r16
|
|
643 |
660 04e2 20E0 ldi r18,lo8(0)
|
|
644 |
661 04e4 30E0 ldi r19,hi8(0)
|
|
645 |
662 04e6 90E0 ldi r25,lo8(0)
|
|
646 |
663 04e8 FE01 movw r30,r28
|
|
647 |
664 04ea 3596 adiw r30,5
|
|
648 |
665 04ec 00C0 rjmp .L110
|
|
649 |
666 .L111:
|
|
650 |
667 04ee 8191 ld r24,Z+
|
|
651 |
668 04f0 980F add r25,r24
|
|
652 |
669 04f2 2F5F subi r18,lo8(-(1))
|
|
653 |
670 04f4 3F4F sbci r19,hi8(-(1))
|
|
654 |
671 .L110:
|
|
655 |
672 04f6 2017 cp r18,r16
|
|
656 |
673 04f8 3107 cpc r19,r17
|
|
657 |
674 04fa 04F0 brlt .L111
|
|
658 |
675 04fc 9095 com r25
|
|
659 |
676 04fe 9983 std Y+1,r25
|
|
660 |
677 0500 4C83 std Y+4,r20
|
|
661 |
678 0502 63E0 ldi r22,lo8(3)
|
|
662 |
679 0504 70E0 ldi r23,hi8(3)
|
|
663 |
680 0506 CE01 movw r24,r28
|
|
664 |
681 0508 0296 adiw r24,2
|
|
665 |
682 050a 0E94 0000 call xbee_send
|
|
666 |
683 050e 892B or r24,r25
|
|
667 |
684 0510 01F4 brne .L106
|
|
668 |
685 0512 B801 movw r22,r16
|
|
669 |
686 0514 CE01 movw r24,r28
|
|
670 |
687 0516 0596 adiw r24,5
|
|
671 |
688 0518 0E94 0000 call xbee_send
|
|
672 |
689 051c 892B or r24,r25
|
|
673 |
690 051e 01F4 brne .L106
|
|
674 |
691 0520 61E0 ldi r22,lo8(1)
|
|
675 |
692 0522 70E0 ldi r23,hi8(1)
|
|
676 |
693 0524 CE01 movw r24,r28
|
|
677 |
694 0526 0196 adiw r24,1
|
|
678 |
695 0528 0E94 0000 call xbee_send
|
|
679 |
696 052c 892B or r24,r25
|
|
680 |
697 052e 01F4 brne .L106
|
|
681 |
698 0530 80E0 ldi r24,lo8(0)
|
|
682 |
699 0532 90E0 ldi r25,hi8(0)
|
|
683 |
700 0534 00C0 rjmp .L116
|
|
684 |
701 .L106:
|
|
685 |
702 0536 8FEF ldi r24,lo8(-1)
|
|
686 |
703 0538 9FEF ldi r25,hi8(-1)
|
|
687 |
704 .L116:
|
|
688 |
705 /* epilogue: frame size=20 */
|
|
689 |
706 053a 6496 adiw r28,20
|
|
690 |
707 053c 0FB6 in __tmp_reg__,__SREG__
|
|
691 |
708 053e F894 cli
|
|
692 |
709 0540 DEBF out __SP_H__,r29
|
|
693 |
710 0542 0FBE out __SREG__,__tmp_reg__
|
|
694 |
711 0544 CDBF out __SP_L__,r28
|
|
695 |
712 0546 DF91 pop r29
|
|
696 |
713 0548 CF91 pop r28
|
|
697 |
714 054a 1F91 pop r17
|
|
698 |
715 054c 0F91 pop r16
|
|
699 |
716 054e 0895 ret
|
|
700 |
717 /* epilogue end (size=11) */
|
|
701 |
718 /* function xbee_send_modify_at_command size 119 (96) */
|
|
702 |
720 .data
|
|
703 |
721 .LC1:
|
|
704 |
722 0004 4348 00 .string "CH"
|
|
705 |
723 .text
|
|
706 |
724 .global xbee_set_channel
|
|
707 |
726 xbee_set_channel:
|
|
708 |
727 /* prologue: frame size=3 */
|
|
709 |
728 0550 CF93 push r28
|
|
710 |
729 0552 DF93 push r29
|
|
711 |
730 0554 CDB7 in r28,__SP_L__
|
|
712 |
731 0556 DEB7 in r29,__SP_H__
|
|
713 |
732 0558 2397 sbiw r28,3
|
|
714 |
733 055a 0FB6 in __tmp_reg__,__SREG__
|
|
715 |
734 055c F894 cli
|
|
716 |
735 055e DEBF out __SP_H__,r29
|
|
717 |
736 0560 0FBE out __SREG__,__tmp_reg__
|
|
718 |
737 0562 CDBF out __SP_L__,r28
|
|
719 |
738 /* prologue end (size=10) */
|
|
720 |
739 0564 9C01 movw r18,r24
|
|
721 |
740 0566 0B97 sbiw r24,11
|
|
722 |
741 0568 4097 sbiw r24,16
|
|
723 |
742 056a 00F0 brlo .L119
|
|
724 |
743 056c 8FEF ldi r24,lo8(-1)
|
|
725 |
744 056e 9FEF ldi r25,hi8(-1)
|
|
726 |
745 0570 00C0 rjmp .L121
|
|
727 |
746 .L119:
|
|
728 |
747 0572 2983 std Y+1,r18
|
|
729 |
748 0574 1A82 std Y+2,__zero_reg__
|
|
730 |
749 0576 3093 0000 sts (xbee_pending_channel)+1,r19
|
|
731 |
750 057a 2093 0000 sts xbee_pending_channel,r18
|
|
732 |
751 057e BE01 movw r22,r28
|
|
733 |
752 0580 6F5F subi r22,lo8(-(1))
|
|
734 |
753 0582 7F4F sbci r23,hi8(-(1))
|
|
735 |
754 0584 80E0 ldi r24,lo8(.LC1)
|
|
736 |
755 0586 90E0 ldi r25,hi8(.LC1)
|
|
737 |
756 0588 0E94 0000 call xbee_send_modify_at_command
|
|
738 |
757 .L121:
|
|
739 |
758 /* epilogue: frame size=3 */
|
|
740 |
759 058c 2396 adiw r28,3
|
|
741 |
760 058e 0FB6 in __tmp_reg__,__SREG__
|
|
742 |
761 0590 F894 cli
|
|
743 |
762 0592 DEBF out __SP_H__,r29
|
|
744 |
763 0594 0FBE out __SREG__,__tmp_reg__
|
|
745 |
764 0596 CDBF out __SP_L__,r28
|
|
746 |
765 0598 DF91 pop r29
|
|
747 |
766 059a CF91 pop r28
|
|
748 |
767 059c 0895 ret
|
|
749 |
768 /* epilogue end (size=9) */
|
|
750 |
769 /* function xbee_set_channel size 40 (21) */
|
|
751 |
771 .data
|
|
752 |
772 .LC2:
|
|
753 |
773 0007 4944 00 .string "ID"
|
|
754 |
774 .text
|
|
755 |
775 .global xbee_set_pan_id
|
|
756 |
777 xbee_set_pan_id:
|
|
757 |
778 /* prologue: frame size=3 */
|
|
758 |
779 059e CF93 push r28
|
|
759 |
780 05a0 DF93 push r29
|
|
760 |
781 05a2 CDB7 in r28,__SP_L__
|
|
761 |
782 05a4 DEB7 in r29,__SP_H__
|
|
762 |
783 05a6 2397 sbiw r28,3
|
|
763 |
784 05a8 0FB6 in __tmp_reg__,__SREG__
|
|
764 |
785 05aa F894 cli
|
|
765 |
786 05ac DEBF out __SP_H__,r29
|
|
766 |
787 05ae 0FBE out __SREG__,__tmp_reg__
|
|
767 |
788 05b0 CDBF out __SP_L__,r28
|
|
768 |
789 /* prologue end (size=10) */
|
|
769 |
790 05b2 292F mov r18,r25
|
|
770 |
791 05b4 3327 clr r19
|
|
771 |
792 05b6 27FD sbrc r18,7
|
|
772 |
793 05b8 3A95 dec r19
|
|
773 |
794 05ba 2983 std Y+1,r18
|
|
774 |
795 05bc 8A83 std Y+2,r24
|
|
775 |
796 05be 1B82 std Y+3,__zero_reg__
|
|
776 |
797 05c0 9093 0000 sts (xbee_pending_panID)+1,r25
|
|
777 |
798 05c4 8093 0000 sts xbee_pending_panID,r24
|
|
778 |
799 05c8 BE01 movw r22,r28
|
|
779 |
800 05ca 6F5F subi r22,lo8(-(1))
|
|
780 |
801 05cc 7F4F sbci r23,hi8(-(1))
|
|
781 |
802 05ce 80E0 ldi r24,lo8(.LC2)
|
|
782 |
803 05d0 90E0 ldi r25,hi8(.LC2)
|
|
783 |
804 05d2 0E94 0000 call xbee_send_modify_at_command
|
|
784 |
805 /* epilogue: frame size=3 */
|
|
785 |
806 05d6 2396 adiw r28,3
|
|
786 |
807 05d8 0FB6 in __tmp_reg__,__SREG__
|
|
787 |
808 05da F894 cli
|
|
788 |
809 05dc DEBF out __SP_H__,r29
|
|
789 |
810 05de 0FBE out __SREG__,__tmp_reg__
|
|
790 |
811 05e0 CDBF out __SP_L__,r28
|
|
791 |
812 05e2 DF91 pop r29
|
|
792 |
813 05e4 CF91 pop r28
|
|
793 |
814 05e6 0895 ret
|
|
794 |
815 /* epilogue end (size=9) */
|
|
795 |
816 /* function xbee_set_pan_id size 37 (18) */
|
|
796 |
819 xbee_send_read_at_command:
|
|
797 |
820 /* prologue: frame size=0 */
|
|
798 |
821 /* prologue end (size=0) */
|
|
799 |
822 05e8 60E0 ldi r22,lo8(0)
|
|
800 |
823 05ea 70E0 ldi r23,hi8(0)
|
|
801 |
824 05ec 0E94 0000 call xbee_send_modify_at_command
|
|
802 |
825 /* epilogue: frame size=0 */
|
|
803 |
826 05f0 0895 ret
|
|
804 |
827 /* epilogue end (size=1) */
|
|
805 |
828 /* function xbee_send_read_at_command size 5 (4) */
|
|
806 |
830 .data
|
|
807 |
831 .LC3:
|
|
808 |
832 000a 3300 .string "3"
|
|
809 |
833 .LC4:
|
|
810 |
834 000c 4244 00 .string "BD"
|
|
811 |
835 .LC5:
|
|
812 |
836 000f 4652 00 .string "FR"
|
|
813 |
837 .text
|
|
814 |
838 .global xbee_reset
|
|
815 |
840 xbee_reset:
|
|
816 |
841 /* prologue: frame size=0 */
|
|
817 |
842 /* prologue end (size=0) */
|
|
818 |
843 05f2 60E0 ldi r22,lo8(.LC3)
|
|
819 |
844 05f4 70E0 ldi r23,hi8(.LC3)
|
|
820 |
845 05f6 80E0 ldi r24,lo8(.LC4)
|
|
821 |
846 05f8 90E0 ldi r25,hi8(.LC4)
|
|
822 |
847 05fa 0E94 0000 call xbee_send_modify_at_command
|
|
823 |
848 05fe 80E0 ldi r24,lo8(.LC5)
|
|
824 |
849 0600 90E0 ldi r25,hi8(.LC5)
|
|
825 |
850 0602 0E94 0000 call xbee_send_read_at_command
|
|
826 |
851 0606 80E0 ldi r24,lo8(0)
|
|
827 |
852 0608 90E0 ldi r25,hi8(0)
|
|
828 |
853 /* #APP */
|
|
829 |
854 060a 0197 1: sbiw r24,1
|
|
830 |
855 060c 01F4 brne 1b
|
|
831 |
856 /* #NOAPP */
|
|
832 |
857 060e 80E0 ldi r24,lo8(0)
|
|
833 |
858 0610 90E0 ldi r25,hi8(0)
|
|
834 |
859 /* epilogue: frame size=0 */
|
|
835 |
860 0612 0895 ret
|
|
836 |
861 /* epilogue end (size=1) */
|
|
837 |
862 /* function xbee_reset size 19 (18) */
|
|
838 |
864 .data
|
|
839 |
865 .LC6:
|
|
840 |
866 0012 3000 .string "0"
|
|
841 |
867 .LC7:
|
|
842 |
868 0014 4150 00 .string "AP"
|
|
843 |
869 .text
|
|
844 |
870 .global xbee_terminate
|
|
845 |
872 xbee_terminate:
|
|
846 |
873 /* prologue: frame size=0 */
|
|
847 |
874 /* prologue end (size=0) */
|
|
848 |
875 0614 60E0 ldi r22,lo8(.LC6)
|
|
849 |
876 0616 70E0 ldi r23,hi8(.LC6)
|
|
850 |
877 0618 80E0 ldi r24,lo8(.LC7)
|
|
851 |
878 061a 90E0 ldi r25,hi8(.LC7)
|
|
852 |
879 061c 0E94 0000 call xbee_send_modify_at_command
|
|
853 |
880 /* epilogue: frame size=0 */
|
|
854 |
881 0620 0895 ret
|
|
855 |
882 /* epilogue end (size=1) */
|
|
856 |
883 /* function xbee_terminate size 7 (6) */
|
|
857 |
886 xbee_send_string:
|
|
858 |
887 /* prologue: frame size=0 */
|
|
859 |
888 /* prologue end (size=0) */
|
|
860 |
889 0622 FC01 movw r30,r24
|
|
861 |
890 0624 0190 ld __tmp_reg__,Z+
|
|
862 |
891 0626 0020 tst __tmp_reg__
|
|
863 |
892 0628 01F4 brne .-6
|
|
864 |
893 062a 3197 sbiw r30,1
|
|
865 |
894 062c E81B sub r30,r24
|
|
866 |
895 062e F90B sbc r31,r25
|
|
867 |
896 0630 BF01 movw r22,r30
|
|
868 |
897 0632 0E94 0000 call xbee_send
|
|
869 |
898 /* epilogue: frame size=0 */
|
|
870 |
899 0636 0895 ret
|
|
871 |
900 /* epilogue end (size=1) */
|
|
872 |
901 /* function xbee_send_string size 11 (10) */
|
|
873 |
903 .data
|
|
874 |
904 .LC8:
|
|
875 |
905 0017 2B2B 2B00 .string "+++"
|
|
876 |
906 .LC9:
|
|
877 |
907 001b 4154 434E .string "ATCN\r"
|
|
878 |
907 0D00
|
|
879 |
908 .LC10:
|
|
880 |
909 0021 4D59 00 .string "MY"
|
|
881 |
910 .LC11:
|
|
882 |
911 0024 4154 4150 .string "ATAP 1\r"
|
|
883 |
911 2031 0D00
|
|
884 |
912 .text
|
|
885 |
913 .global xbee_lib_init
|
|
886 |
915 xbee_lib_init:
|
|
887 |
916 /* prologue: frame size=0 */
|
|
888 |
917 /* prologue end (size=0) */
|
|
889 |
918 0638 8091 9A00 lds r24,154
|
|
890 |
919 063c 8068 ori r24,lo8(-128)
|
|
891 |
920 063e 8093 9A00 sts 154,r24
|
|
892 |
921 /* #APP */
|
|
893 |
922 0642 7894 sei
|
|
894 |
923 /* #NOAPP */
|
|
895 |
924 0644 80E0 ldi r24,lo8(.LC8)
|
|
896 |
925 0646 90E0 ldi r25,hi8(.LC8)
|
|
897 |
926 0648 0E94 0000 call xbee_send_string
|
|
898 |
927 064c 892B or r24,r25
|
|
899 |
928 064e 01F4 brne .L134
|
|
900 |
929 0650 0E94 0000 call xbee_wait_for_ok
|
|
901 |
930 0654 892B or r24,r25
|
|
902 |
931 0656 01F4 brne .L134
|
|
903 |
932 0658 00C0 rjmp .L144
|
|
904 |
933 .L146:
|
|
905 |
934 065a 0E94 0000 call xbee_wait_for_ok
|
|
906 |
935 065e 80E0 ldi r24,lo8(.LC9)
|
|
907 |
936 0660 90E0 ldi r25,hi8(.LC9)
|
|
908 |
937 0662 0E94 0000 call xbee_send_string
|
|
909 |
938 0666 892B or r24,r25
|
|
910 |
939 0668 01F4 brne .L134
|
|
911 |
940 066a 0E94 0000 call xbee_wait_for_ok
|
|
912 |
941 066e 80E0 ldi r24,lo8(.LC10)
|
|
913 |
942 0670 90E0 ldi r25,hi8(.LC10)
|
|
914 |
943 0672 0E94 0000 call xbee_send_read_at_command
|
|
915 |
944 0676 892B or r24,r25
|
|
916 |
945 0678 01F0 breq .L145
|
|
917 |
946 067a 00C0 rjmp .L134
|
|
918 |
947 .L140:
|
|
919 |
948 067c 80E0 ldi r24,lo8(0)
|
|
920 |
949 067e 90E0 ldi r25,hi8(0)
|
|
921 |
950 0680 0E94 0000 call xbee_get_packet
|
|
922 |
951 .L145:
|
|
923 |
952 0684 8091 0000 lds r24,xbee_address
|
|
924 |
953 0688 9091 0000 lds r25,(xbee_address)+1
|
|
925 |
954 068c 892B or r24,r25
|
|
926 |
955 068e 01F0 breq .L140
|
|
927 |
956 0690 80E0 ldi r24,lo8(0)
|
|
928 |
957 0692 90E0 ldi r25,hi8(0)
|
|
929 |
958 0694 0895 ret
|
|
930 |
959 .L134:
|
|
931 |
960 0696 8FEF ldi r24,lo8(-1)
|
|
932 |
961 0698 9FEF ldi r25,hi8(-1)
|
|
933 |
962 069a 0895 ret
|
|
934 |
963 .L144:
|
|
935 |
964 069c 80E0 ldi r24,lo8(.LC11)
|
|
936 |
965 069e 90E0 ldi r25,hi8(.LC11)
|
|
937 |
966 06a0 0E94 0000 call xbee_send_string
|
|
938 |
967 06a4 892B or r24,r25
|
|
939 |
968 06a6 01F0 breq .L146
|
|
940 |
969 06a8 00C0 rjmp .L134
|
|
941 |
970 /* epilogue: frame size=0 */
|
|
942 |
971 /* epilogue: noreturn */
|
|
943 |
972 /* epilogue end (size=0) */
|
|
944 |
973 /* function xbee_lib_init size 58 (58) */
|
|
945 |
975 .global buffer_last
|
|
946 |
976 .global buffer_last
|
|
947 |
977 .section .bss
|
|
948 |
980 buffer_last:
|
|
949 |
981 0000 0000 .skip 2,0
|
|
950 |
982 .global buffer_first
|
|
951 |
983 .global buffer_first
|
|
952 |
986 buffer_first:
|
|
953 |
987 0002 0000 .skip 2,0
|
|
954 |
988 .lcomm xbee_address,2
|
|
955 |
989 .lcomm xbee_channel,2
|
|
956 |
990 .lcomm xbee_pending_channel,2
|
|
957 |
991 .data
|
|
958 |
994 xbee_panID:
|
|
959 |
995 002c FFFF .word -1
|
|
960 |
998 xbee_pending_panID:
|
|
961 |
999 002e FFFF .word -1
|
|
962 |
1000 .lcomm currentBufPos,2
|
|
963 |
1001 .lcomm xbee_buf,108
|
|
964 |
1002 .comm arrival_buf,128,1
|
|
965 |
1003 /* File "xbee.c": code 860 = 0x035c ( 722), prologues 66, epilogues 72 */
|
|
966 |
DEFINED SYMBOLS
|
|
967 |
*ABS*:00000000 xbee.c
|
|
968 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:3 *ABS*:0000003f __SREG__
|
|
969 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:4 *ABS*:0000003e __SP_H__
|
|
970 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:5 *ABS*:0000003d __SP_L__
|
|
971 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:6 *ABS*:00000000 __tmp_reg__
|
|
972 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:7 *ABS*:00000001 __zero_reg__
|
|
973 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:13 .text:00000000 __vector_30
|
|
974 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:980 .bss:00000000 buffer_last
|
|
975 |
*COM*:00000080 arrival_buf
|
|
976 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:986 .bss:00000002 buffer_first
|
|
977 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:67 .text:00000064 xbee_wait_for_ok
|
|
978 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:120 .text:000000ca xbee_get_packet
|
|
979 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:990 .bss:0000000a currentBufPos
|
|
980 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:1000 .bss:0000000c xbee_buf
|
|
981 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:998 .data:0000002e xbee_pending_panID
|
|
982 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:994 .data:0000002c xbee_panID
|
|
983 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:989 .bss:00000008 xbee_pending_channel
|
|
984 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:988 .bss:00000006 xbee_channel
|
|
985 |
.bss:00000004 xbee_address
|
|
986 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:389 .text:0000031e xbee_get_pan_id
|
|
987 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:401 .text:00000328 xbee_get_channel
|
|
988 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:413 .text:00000332 xbee_get_address
|
|
989 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:424 .text:0000033c xbee_send
|
|
990 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:463 .text:00000376 xbee_send_packet
|
|
991 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:589 .text:00000462 xbee_send_modify_at_command
|
|
992 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:726 .text:00000550 xbee_set_channel
|
|
993 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:777 .text:0000059e xbee_set_pan_id
|
|
994 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:819 .text:000005e8 xbee_send_read_at_command
|
|
995 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:840 .text:000005f2 xbee_reset
|
|
996 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:872 .text:00000614 xbee_terminate
|
|
997 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:886 .text:00000622 xbee_send_string
|
|
998 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/ccMrpJ1L.s:915 .text:00000638 xbee_lib_init
|
|
999 |
|
|
1000 |
UNDEFINED SYMBOLS
|
|
1001 |
__do_copy_data
|
|
1002 |
__do_clear_bss
|
|
1003 |
xbee_putc
|