1 .file "wireless.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 10 .text 12 timer_handler: 13 /* prologue: frame size=0 */ 14 /* prologue end (size=0) */ 15 0000 81E0 ldi r24,lo8(1) 16 0002 90E0 ldi r25,hi8(1) 17 0004 9093 0000 sts (wl_timeout)+1,r25 18 0008 8093 0000 sts wl_timeout,r24 19 /* epilogue: frame size=0 */ 20 000c 0895 ret 21 /* epilogue end (size=1) */ 22 /* function timer_handler size 7 (6) */ 24 .global wl_register_packet_group 26 wl_register_packet_group: 27 /* prologue: frame size=0 */ 28 /* prologue end (size=0) */ 29 000e DC01 movw r26,r24 30 0010 8D91 ld r24,X+ 31 0012 9C91 ld r25,X 32 0014 1197 sbiw r26,1 33 0016 8031 cpi r24,16 34 0018 9105 cpc r25,__zero_reg__ 35 001a 00F4 brsh .L7 36 001c FC01 movw r30,r24 37 001e EE0F lsl r30 38 0020 FF1F rol r31 39 0022 E050 subi r30,lo8(-(wl_packet_groups)) 40 0024 F040 sbci r31,hi8(-(wl_packet_groups)) 41 0026 8081 ld r24,Z 42 0028 9181 ldd r25,Z+1 43 002a 892B or r24,r25 44 002c 01F4 brne .L7 45 002e B183 std Z+1,r27 46 0030 A083 st Z,r26 47 .L7: 48 0032 0895 ret 49 /* epilogue: frame size=0 */ 50 /* epilogue: noreturn */ 51 /* epilogue end (size=0) */ 52 /* function wl_register_packet_group size 19 (19) */ 54 .global wl_unregister_packet_group 56 wl_unregister_packet_group: 57 /* prologue: frame size=0 */ 58 0034 CF93 push r28 59 0036 DF93 push r29 60 /* prologue end (size=2) */ 61 0038 FC01 movw r30,r24 62 003a C081 ld r28,Z 63 003c D181 ldd r29,Z+1 64 003e FE01 movw r30,r28 65 0040 EE0F lsl r30 66 0042 FF1F rol r31 67 0044 E050 subi r30,lo8(-(wl_packet_groups)) 68 0046 F040 sbci r31,hi8(-(wl_packet_groups)) 69 0048 0190 ld __tmp_reg__,Z+ 70 004a F081 ld r31,Z 71 004c E02D mov r30,__tmp_reg__ 72 004e 3097 sbiw r30,0 73 0050 01F0 breq .L9 74 0052 0084 ldd __tmp_reg__,Z+8 75 0054 F185 ldd r31,Z+9 76 0056 E02D mov r30,__tmp_reg__ 77 0058 3097 sbiw r30,0 78 005a 01F0 breq .L9 79 005c 0995 icall 80 .L9: 81 005e CC0F lsl r28 82 0060 DD1F rol r29 83 0062 C050 subi r28,lo8(-(wl_packet_groups)) 84 0064 D040 sbci r29,hi8(-(wl_packet_groups)) 85 0066 1982 std Y+1,__zero_reg__ 86 0068 1882 st Y,__zero_reg__ 87 /* epilogue: frame size=0 */ 88 006a DF91 pop r29 89 006c CF91 pop r28 90 006e 0895 ret 91 /* epilogue end (size=3) */ 92 /* function wl_unregister_packet_group size 30 (25) */ 94 .global wl_do 96 wl_do: 97 /* prologue: frame size=0 */ 98 0070 CF93 push r28 99 0072 DF93 push r29 100 /* prologue end (size=2) */ 101 0074 8091 0000 lds r24,wl_timeout 102 0078 9091 0000 lds r25,(wl_timeout)+1 103 007c 892B or r24,r25 104 007e 01F0 breq .L14 105 0080 C0E0 ldi r28,lo8(wl_packet_groups) 106 0082 D0E0 ldi r29,hi8(wl_packet_groups) 107 .L16: 108 0084 E881 ld r30,Y 109 0086 F981 ldd r31,Y+1 110 0088 3097 sbiw r30,0 111 008a 01F0 breq .L17 112 008c 0280 ldd __tmp_reg__,Z+2 113 008e F381 ldd r31,Z+3 114 0090 E02D mov r30,__tmp_reg__ 115 0092 3097 sbiw r30,0 116 0094 01F0 breq .L17 117 0096 0995 icall 118 .L17: 119 0098 2296 adiw r28,2 120 009a 80E0 ldi r24,hi8(wl_packet_groups+32) 121 009c C030 cpi r28,lo8(wl_packet_groups+32) 122 009e D807 cpc r29,r24 123 00a0 01F4 brne .L16 124 00a2 1092 0000 sts (wl_timeout)+1,__zero_reg__ 125 00a6 1092 0000 sts wl_timeout,__zero_reg__ 126 .L14: 127 00aa 80E0 ldi r24,lo8(wl_buf) 128 00ac 90E0 ldi r25,hi8(wl_buf) 129 00ae 0E94 0000 call xbee_get_packet 130 00b2 9C01 movw r18,r24 131 00b4 97FD sbrc r25,7 132 00b6 00C0 rjmp .L33 133 00b8 8091 0000 lds r24,wl_buf 134 00bc 8938 cpi r24,lo8(-119) 135 00be 01F4 brne .L23 136 00c0 2330 cpi r18,3 137 00c2 3105 cpc r19,__zero_reg__ 138 00c4 01F0 breq .+2 139 00c6 00C0 rjmp .L33 140 00c8 8091 0000 lds r24,wl_buf+1 141 00cc 9091 0000 lds r25,wl_buf+2 142 00d0 E82F mov r30,r24 143 00d2 E295 swap r30 144 00d4 EF70 andi r30,0x0f 145 00d6 FF27 clr r31 146 00d8 EE0F lsl r30 147 00da FF1F rol r31 148 00dc E050 subi r30,lo8(-(wl_packet_groups)) 149 00de F040 sbci r31,hi8(-(wl_packet_groups)) 150 00e0 0190 ld __tmp_reg__,Z+ 151 00e2 F081 ld r31,Z 152 00e4 E02D mov r30,__tmp_reg__ 153 00e6 3097 sbiw r30,0 154 00e8 01F0 breq .L33 155 00ea 0480 ldd __tmp_reg__,Z+4 156 00ec F581 ldd r31,Z+5 157 00ee E02D mov r30,__tmp_reg__ 158 00f0 3097 sbiw r30,0 159 00f2 01F0 breq .L33 160 00f4 60E0 ldi r22,lo8(0) 161 00f6 70E0 ldi r23,hi8(0) 162 00f8 9923 tst r25 163 00fa 01F4 brne .L28 164 00fc 61E0 ldi r22,lo8(1) 165 00fe 70E0 ldi r23,hi8(1) 166 .L28: 167 0100 9927 clr r25 168 0102 8F70 andi r24,lo8(15) 169 0104 9070 andi r25,hi8(15) 170 0106 0995 icall 171 0108 00C0 rjmp .L33 172 .L23: 173 010a 8138 cpi r24,lo8(-127) 174 010c 01F4 brne .L33 175 010e 2730 cpi r18,7 176 0110 3105 cpc r19,__zero_reg__ 177 0112 04F0 brlt .L33 178 0114 6091 0000 lds r22,wl_buf+1 179 0118 9091 0000 lds r25,wl_buf+2 180 011c 8091 0000 lds r24,wl_buf+6 181 0120 E091 0000 lds r30,wl_buf+5 182 0124 FF27 clr r31 183 0126 EE0F lsl r30 184 0128 FF1F rol r31 185 012a E050 subi r30,lo8(-(wl_packet_groups)) 186 012c F040 sbci r31,hi8(-(wl_packet_groups)) 187 012e 0190 ld __tmp_reg__,Z+ 188 0130 F081 ld r31,Z 189 0132 E02D mov r30,__tmp_reg__ 190 0134 3097 sbiw r30,0 191 0136 01F0 breq .L33 192 0138 0680 ldd __tmp_reg__,Z+6 193 013a F781 ldd r31,Z+7 194 013c E02D mov r30,__tmp_reg__ 195 013e 3097 sbiw r30,0 196 0140 01F0 breq .L33 197 0142 2750 subi r18,lo8(-(-7)) 198 0144 3040 sbci r19,hi8(-(-7)) 199 0146 7727 clr r23 200 0148 762F mov r23,r22 201 014a 6627 clr r22 202 014c 690F add r22,r25 203 014e 711D adc r23,__zero_reg__ 204 0150 40E0 ldi r20,lo8(wl_buf+7) 205 0152 50E0 ldi r21,hi8(wl_buf+7) 206 0154 0995 icall 207 .L33: 208 /* epilogue: frame size=0 */ 209 0156 DF91 pop r29 210 0158 CF91 pop r28 211 015a 0895 ret 212 /* epilogue end (size=3) */ 213 /* function wl_do size 118 (113) */ 216 wl_send_packet: 217 /* prologue: frame size=128 */ 218 015c AF92 push r10 219 015e BF92 push r11 220 0160 CF92 push r12 221 0162 EF92 push r14 222 0164 0F93 push r16 223 0166 1F93 push r17 224 0168 CF93 push r28 225 016a DF93 push r29 226 016c CDB7 in r28,__SP_L__ 227 016e DEB7 in r29,__SP_H__ 228 0170 C058 subi r28,lo8(128) 229 0172 D040 sbci r29,hi8(128) 230 0174 0FB6 in __tmp_reg__,__SREG__ 231 0176 F894 cli 232 0178 DEBF out __SP_H__,r29 233 017a 0FBE out __SREG__,__tmp_reg__ 234 017c CDBF out __SP_L__,r28 235 /* prologue end (size=17) */ 236 017e 982F mov r25,r24 237 0180 E62F mov r30,r22 238 0182 B901 movw r22,r18 239 0184 5801 movw r10,r16 240 0186 0C2D mov r16,r12 241 0188 CC20 tst r12 242 018a 01F0 breq .L37 243 018c 8C2D mov r24,r12 244 018e 8F70 andi r24,lo8(15) 245 0190 092F mov r16,r25 246 0192 0295 swap r16 247 0194 007F andi r16,0xf0 248 0196 082B or r16,r24 249 .L37: 250 0198 9983 std Y+1,r25 251 019a EA83 std Y+2,r30 252 019c E0E0 ldi r30,lo8(0) 253 019e F0E0 ldi r31,hi8(0) 254 01a0 9E01 movw r18,r28 255 01a2 2D5F subi r18,lo8(-(3)) 256 01a4 3F4F sbci r19,hi8(-(3)) 257 01a6 00C0 rjmp .L39 258 .L40: 259 01a8 DA01 movw r26,r20 260 01aa 8D91 ld r24,X+ 261 01ac AD01 movw r20,r26 262 01ae D901 movw r26,r18 263 01b0 8D93 st X+,r24 264 01b2 9D01 movw r18,r26 265 01b4 3196 adiw r30,1 266 .L39: 267 01b6 E617 cp r30,r22 268 01b8 F707 cpc r31,r23 269 01ba 04F0 brlt .L40 270 01bc 6E5F subi r22,lo8(-(2)) 271 01be 7F4F sbci r23,hi8(-(2)) 272 01c0 2E2D mov r18,r14 273 01c2 A501 movw r20,r10 274 01c4 CE01 movw r24,r28 275 01c6 0196 adiw r24,1 276 01c8 0E94 0000 call xbee_send_packet 277 /* epilogue: frame size=128 */ 278 01cc C058 subi r28,lo8(-128) 279 01ce DF4F sbci r29,hi8(-128) 280 01d0 0FB6 in __tmp_reg__,__SREG__ 281 01d2 F894 cli 282 01d4 DEBF out __SP_H__,r29 283 01d6 0FBE out __SREG__,__tmp_reg__ 284 01d8 CDBF out __SP_L__,r28 285 01da DF91 pop r29 286 01dc CF91 pop r28 287 01de 1F91 pop r17 288 01e0 0F91 pop r16 289 01e2 EF90 pop r14 290 01e4 CF90 pop r12 291 01e6 BF90 pop r11 292 01e8 AF90 pop r10 293 01ea 0895 ret 294 /* epilogue end (size=16) */ 295 /* function wl_send_packet size 72 (39) */ 297 .global wl_send_pan_packet 299 wl_send_pan_packet: 300 /* prologue: frame size=0 */ 301 01ec CF92 push r12 302 01ee EF92 push r14 303 01f0 0F93 push r16 304 01f2 1F93 push r17 305 /* prologue end (size=4) */ 306 01f4 C02E mov r12,r16 307 01f6 EE24 clr r14 308 01f8 0FEF ldi r16,lo8(-1) 309 01fa 1FEF ldi r17,hi8(-1) 310 01fc 0E94 0000 call wl_send_packet 311 /* epilogue: frame size=0 */ 312 0200 1F91 pop r17 313 0202 0F91 pop r16 314 0204 EF90 pop r14 315 0206 CF90 pop r12 316 0208 0895 ret 317 /* epilogue end (size=5) */ 318 /* function wl_send_pan_packet size 15 (6) */ 320 .global wl_send_global_packet 322 wl_send_global_packet: 323 /* prologue: frame size=0 */ 324 020a CF92 push r12 325 020c EF92 push r14 326 020e 0F93 push r16 327 0210 1F93 push r17 328 /* prologue end (size=4) */ 329 0212 C02E mov r12,r16 330 0214 74E0 ldi r23,lo8(4) 331 0216 E72E mov r14,r23 332 0218 0FEF ldi r16,lo8(-1) 333 021a 1FEF ldi r17,hi8(-1) 334 021c 0E94 0000 call wl_send_packet 335 /* epilogue: frame size=0 */ 336 0220 1F91 pop r17 337 0222 0F91 pop r16 338 0224 EF90 pop r14 339 0226 CF90 pop r12 340 0228 0895 ret 341 /* epilogue end (size=5) */ 342 /* function wl_send_global_packet size 16 (7) */ 344 .global wl_send_robot_to_robot_packet 346 wl_send_robot_to_robot_packet: 347 /* prologue: frame size=0 */ 348 022a CF92 push r12 349 022c EF92 push r14 350 022e 0F93 push r16 351 0230 1F93 push r17 352 /* prologue end (size=4) */ 353 0232 CE2C mov r12,r14 354 0234 EE24 clr r14 355 0236 0E94 0000 call wl_send_packet 356 /* epilogue: frame size=0 */ 357 023a 1F91 pop r17 358 023c 0F91 pop r16 359 023e EF90 pop r14 360 0240 CF90 pop r12 361 0242 0895 ret 362 /* epilogue end (size=5) */ 363 /* function wl_send_robot_to_robot_packet size 13 (4) */ 365 .global wl_send_robot_to_robot_global_packet 367 wl_send_robot_to_robot_global_packet: 368 /* prologue: frame size=0 */ 369 0244 CF92 push r12 370 0246 EF92 push r14 371 0248 0F93 push r16 372 024a 1F93 push r17 373 /* prologue end (size=4) */ 374 024c CE2C mov r12,r14 375 024e E4E0 ldi r30,lo8(4) 376 0250 EE2E mov r14,r30 377 0252 0E94 0000 call wl_send_packet 378 /* epilogue: frame size=0 */ 379 0256 1F91 pop r17 380 0258 0F91 pop r16 381 025a EF90 pop r14 382 025c CF90 pop r12 383 025e 0895 ret 384 /* epilogue end (size=5) */ 385 /* function wl_send_robot_to_robot_global_packet size 14 (5) */ 387 .global wl_get_xbee_id 389 wl_get_xbee_id: 390 /* prologue: frame size=0 */ 391 /* prologue end (size=0) */ 392 0260 0E94 0000 call xbee_get_address 393 /* epilogue: frame size=0 */ 394 0264 0895 ret 395 /* epilogue end (size=1) */ 396 /* function wl_get_xbee_id size 3 (2) */ 398 .global wl_get_channel 400 wl_get_channel: 401 /* prologue: frame size=0 */ 402 /* prologue end (size=0) */ 403 0266 0E94 0000 call xbee_get_channel 404 /* epilogue: frame size=0 */ 405 026a 0895 ret 406 /* epilogue end (size=1) */ 407 /* function wl_get_channel size 3 (2) */ 409 .global wl_set_channel 411 wl_set_channel: 412 /* prologue: frame size=0 */ 413 /* prologue end (size=0) */ 414 026c 0E94 0000 call xbee_set_channel 415 /* epilogue: frame size=0 */ 416 0270 0895 ret 417 /* epilogue end (size=1) */ 418 /* function wl_set_channel size 3 (2) */ 420 .global wl_get_pan 422 wl_get_pan: 423 /* prologue: frame size=0 */ 424 /* prologue end (size=0) */ 425 0272 0E94 0000 call xbee_get_pan_id 426 /* epilogue: frame size=0 */ 427 0276 0895 ret 428 /* epilogue end (size=1) */ 429 /* function wl_get_pan size 3 (2) */ 431 .global wl_set_pan 433 wl_set_pan: 434 /* prologue: frame size=0 */ 435 /* prologue end (size=0) */ 436 0278 0E94 0000 call xbee_set_pan_id 437 /* epilogue: frame size=0 */ 438 027c 0895 ret 439 /* epilogue end (size=1) */ 440 /* function wl_set_pan size 3 (2) */ 442 .global wl_terminate 444 wl_terminate: 445 /* prologue: frame size=0 */ 446 027e CF93 push r28 447 0280 DF93 push r29 448 /* prologue end (size=2) */ 449 0282 C0E0 ldi r28,lo8(wl_packet_groups) 450 0284 D0E0 ldi r29,hi8(wl_packet_groups) 451 .L62: 452 0286 E881 ld r30,Y 453 0288 F981 ldd r31,Y+1 454 028a 3097 sbiw r30,0 455 028c 01F0 breq .L63 456 028e 0084 ldd __tmp_reg__,Z+8 457 0290 F185 ldd r31,Z+9 458 0292 E02D mov r30,__tmp_reg__ 459 0294 3097 sbiw r30,0 460 0296 01F0 breq .L63 461 0298 0995 icall 462 .L63: 463 029a 2296 adiw r28,2 464 029c 80E0 ldi r24,hi8(wl_packet_groups+32) 465 029e C030 cpi r28,lo8(wl_packet_groups+32) 466 02a0 D807 cpc r29,r24 467 02a2 01F4 brne .L62 468 02a4 0E94 0000 call xbee_terminate 469 /* epilogue: frame size=0 */ 470 02a8 DF91 pop r29 471 02aa CF91 pop r28 472 02ac 0895 ret 473 /* epilogue end (size=3) */ 474 /* function wl_terminate size 24 (19) */ 476 .global wl_init 478 wl_init: 479 /* prologue: frame size=0 */ 480 /* prologue end (size=0) */ 481 02ae E0E0 ldi r30,lo8(wl_packet_groups) 482 02b0 F0E0 ldi r31,hi8(wl_packet_groups) 483 .L71: 484 02b2 1192 st Z+,__zero_reg__ 485 02b4 1192 st Z+,__zero_reg__ 486 02b6 20E0 ldi r18,hi8(wl_packet_groups+32) 487 02b8 E030 cpi r30,lo8(wl_packet_groups+32) 488 02ba F207 cpc r31,r18 489 02bc 01F4 brne .L71 490 02be 0E94 0000 call xbee_lib_init 491 02c2 8F5F subi r24,lo8(-1) 492 02c4 9F4F sbci r25,hi8(-1) 493 02c6 01F4 brne .L73 494 02c8 8FEF ldi r24,lo8(-1) 495 02ca 9FEF ldi r25,hi8(-1) 496 02cc 0895 ret 497 .L73: 498 02ce 60E0 ldi r22,lo8(gs(timer_handler)) 499 02d0 70E0 ldi r23,hi8(gs(timer_handler)) 500 02d2 88E0 ldi r24,lo8(8) 501 02d4 90E0 ldi r25,hi8(8) 502 02d6 0E94 0000 call rtc_init 503 02da 80E0 ldi r24,lo8(0) 504 02dc 90E0 ldi r25,hi8(0) 505 02de 0895 ret 506 /* epilogue: frame size=0 */ 507 /* epilogue: noreturn */ 508 /* epilogue end (size=0) */ 509 /* function wl_init size 26 (26) */ 511 .lcomm wl_timeout,2 512 .lcomm wl_buf,128 513 .lcomm wl_packet_groups,32 514 /* File "wireless.c": code 369 = 0x0171 ( 279), prologues 39, epilogues 51 */ DEFINED SYMBOLS *ABS*:00000000 wireless.c F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:3 *ABS*:0000003f __SREG__ F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:4 *ABS*:0000003e __SP_H__ F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:5 *ABS*:0000003d __SP_L__ F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:6 *ABS*:00000000 __tmp_reg__ F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:7 *ABS*:00000001 __zero_reg__ F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:12 .text:00000000 timer_handler .bss:00000000 wl_timeout F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:26 .text:0000000e wl_register_packet_group F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:512 .bss:00000082 wl_packet_groups F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:56 .text:00000034 wl_unregister_packet_group F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:96 .text:00000070 wl_do F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:511 .bss:00000002 wl_buf F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:216 .text:0000015c wl_send_packet F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:299 .text:000001ec wl_send_pan_packet F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:322 .text:0000020a wl_send_global_packet F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:346 .text:0000022a wl_send_robot_to_robot_packet F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:367 .text:00000244 wl_send_robot_to_robot_global_packet F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:389 .text:00000260 wl_get_xbee_id F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:400 .text:00000266 wl_get_channel F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:411 .text:0000026c wl_set_channel F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:422 .text:00000272 wl_get_pan F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:433 .text:00000278 wl_set_pan F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:444 .text:0000027e wl_terminate F:\DOCUME~1\Evan\LOCALS~1\Temp/ccV6KufF.s:478 .text:000002ae wl_init UNDEFINED SYMBOLS __do_copy_data __do_clear_bss xbee_get_packet xbee_send_packet xbee_get_address xbee_get_channel xbee_set_channel xbee_get_pan_id xbee_set_pan_id xbee_terminate xbee_lib_init rtc_init