root / demos / hunter_prey_john / projects / libwireless / lib / xbee.lst @ 1694
History | View | Annotate | Download (38.7 KB)
1 | 1693 | emullini | 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 | 1694 | emullini | 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 | 1693 | emullini | *COM*:00000080 arrival_buf |
976 | 1694 | emullini | 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 | 1693 | emullini | .bss:00000004 xbee_address |
986 | 1694 | emullini | 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 | 1693 | emullini | |
1000 | UNDEFINED SYMBOLS |
||
1001 | __do_copy_data |
||
1002 | __do_clear_bss |
||
1003 | xbee_putc |