📄 basic_rf_send_packet.lst
字号:
265 00e8 8EE3 ldi r24,lo8(62)
266 00ea 8FB9 out 47-0x20,r24
267 .L79:
268 00ec 779B sbis 46-0x20,7
269 00ee FECF rjmp .L79
270 .LBB4:
271 00f0 90E0 ldi r25,lo8(0)
272 .L90:
273 00f2 E92F mov r30,r25
274 00f4 FF27 clr r31
275 00f6 E050 subi r30,lo8(-(rfSettings+2))
276 00f8 F040 sbci r31,hi8(-(rfSettings+2))
277 00fa 8081 ld r24,Z
278 00fc 8FB9 out 47-0x20,r24
279 .L87:
280 00fe 779B sbis 46-0x20,7
281 0100 FECF rjmp .L87
282 0102 9F5F subi r25,lo8(-(1))
283 0104 B1F3 breq .L90
284 .LBE4:
285 0106 C09A sbi 56-0x20,0
94:../../../lib/basic_rf/basic_rf_send_packet.c **** FASTSPI_WRITE_FIFO((BYTE*) &rfSettings.panId, 2); // Dest. PAN ID
287 .LM17:
288 0108 C098 cbi 56-0x20,0
289 010a 8EE3 ldi r24,lo8(62)
290 010c 8FB9 out 47-0x20,r24
291 .L94:
292 010e 779B sbis 46-0x20,7
293 0110 FECF rjmp .L94
294 .LBB5:
295 0112 90E0 ldi r25,lo8(0)
296 .L105:
297 0114 E92F mov r30,r25
298 0116 FF27 clr r31
299 0118 E050 subi r30,lo8(-(rfSettings+4))
300 011a F040 sbci r31,hi8(-(rfSettings+4))
301 011c 8081 ld r24,Z
302 011e 8FB9 out 47-0x20,r24
303 .L102:
304 0120 779B sbis 46-0x20,7
305 0122 FECF rjmp .L102
306 0124 9F5F subi r25,lo8(-(1))
307 0126 9230 cpi r25,lo8(2)
308 0128 A8F3 brlo .L105
309 .LBE5:
310 012a C09A sbi 56-0x20,0
95:../../../lib/basic_rf/basic_rf_send_packet.c **** FASTSPI_WRITE_FIFO((BYTE*) &pRTI->destAddr, 2); // Dest. address
312 .LM18:
313 012c C098 cbi 56-0x20,0
314 012e 8EE3 ldi r24,lo8(62)
315 0130 8FB9 out 47-0x20,r24
316 .L109:
317 0132 779B sbis 46-0x20,7
318 0134 FECF rjmp .L109
319 .LBB6:
320 0136 90E0 ldi r25,lo8(0)
321 .L120:
322 0138 F701 movw r30,r14
323 013a E90F add r30,r25
324 013c F11D adc r31,__zero_reg__
325 013e 8281 ldd r24,Z+2
326 0140 8FB9 out 47-0x20,r24
327 .L117:
328 0142 779B sbis 46-0x20,7
329 0144 FECF rjmp .L117
330 0146 9F5F subi r25,lo8(-(1))
331 0148 9230 cpi r25,lo8(2)
332 014a B0F3 brlo .L120
333 .LBE6:
334 014c C09A sbi 56-0x20,0
96:../../../lib/basic_rf/basic_rf_send_packet.c **** FASTSPI_WRITE_FIFO((BYTE*) &rfSettings.myAddr, 2); // Source address
336 .LM19:
337 014e C098 cbi 56-0x20,0
338 0150 8EE3 ldi r24,lo8(62)
339 0152 8FB9 out 47-0x20,r24
340 .L124:
341 0154 779B sbis 46-0x20,7
342 0156 FECF rjmp .L124
343 .LBB7:
344 0158 90E0 ldi r25,lo8(0)
345 .L135:
346 015a E92F mov r30,r25
347 015c FF27 clr r31
348 015e E050 subi r30,lo8(-(rfSettings+6))
349 0160 F040 sbci r31,hi8(-(rfSettings+6))
350 0162 8081 ld r24,Z
351 0164 8FB9 out 47-0x20,r24
352 .L132:
353 0166 779B sbis 46-0x20,7
354 0168 FECF rjmp .L132
355 016a 9F5F subi r25,lo8(-(1))
356 016c 9230 cpi r25,lo8(2)
357 016e A8F3 brlo .L135
358 .LBE7:
359 0170 C09A sbi 56-0x20,0
97:../../../lib/basic_rf/basic_rf_send_packet.c **** FASTSPI_WRITE_FIFO((BYTE*) pRTI->pPayload, pRTI->length); // Payload
361 .LM20:
362 0172 C098 cbi 56-0x20,0
363 0174 8EE3 ldi r24,lo8(62)
364 0176 8FB9 out 47-0x20,r24
365 .L139:
366 0178 779B sbis 46-0x20,7
367 017a FECF rjmp .L139
368 .LBB8:
369 017c 40E0 ldi r20,lo8(0)
370 017e F701 movw r30,r14
371 0180 8481 ldd r24,Z+4
372 0182 1816 cp __zero_reg__,r24
373 0184 A4F4 brge .L181
374 .L150:
375 0186 F701 movw r30,r14
376 0188 A581 ldd r26,Z+5
377 018a B681 ldd r27,Z+6
378 018c A40F add r26,r20
379 018e B11D adc r27,__zero_reg__
380 0190 8C91 ld r24,X
381 0192 8FB9 out 47-0x20,r24
382 .L147:
383 0194 779B sbis 46-0x20,7
384 0196 FECF rjmp .L147
385 0198 4F5F subi r20,lo8(-(1))
386 019a 242F mov r18,r20
387 019c 3327 clr r19
388 019e F701 movw r30,r14
389 01a0 8481 ldd r24,Z+4
390 01a2 9927 clr r25
391 01a4 87FD sbrc r24,7
392 01a6 9095 com r25
393 01a8 2817 cp r18,r24
394 01aa 3907 cpc r19,r25
395 01ac 64F3 brlt .L150
396 .L181:
397 .LBE8:
398 01ae C09A sbi 56-0x20,0
399 .L151:
98:../../../lib/basic_rf/basic_rf_send_packet.c ****
99:../../../lib/basic_rf/basic_rf_send_packet.c **** // Wait for the transmission to begin before exiting (makes sure that this function cannot be call
100:../../../lib/basic_rf/basic_rf_send_packet.c **** // a second time, and thereby cancelling the first transmission (observe the FIFOP + SFD test abov
101:../../../lib/basic_rf/basic_rf_send_packet.c **** while (!SFD_IS_1);
401 .LM21:
402 01b0 849B sbis 48-0x20,4
403 01b2 FECF rjmp .L151
102:../../../lib/basic_rf/basic_rf_send_packet.c **** success = TRUE;
405 .LM22:
406 01b4 91E0 ldi r25,lo8(1)
103:../../../lib/basic_rf/basic_rf_send_packet.c ****
104:../../../lib/basic_rf/basic_rf_send_packet.c **** // Turn interrupts back on
105:../../../lib/basic_rf/basic_rf_send_packet.c **** ENABLE_GLOBAL_INT();
408 .LM23:
409 /* #APP */
410 01b6 7894 sei
411
106:../../../lib/basic_rf/basic_rf_send_packet.c ****
107:../../../lib/basic_rf/basic_rf_send_packet.c **** // Wait for the acknowledge to be received, if any
108:../../../lib/basic_rf/basic_rf_send_packet.c **** if (pRTI->ackRequest) {
413 .LM24:
414 /* #NOAPP */
415 01b8 F701 movw r30,r14
416 01ba 8781 ldd r24,Z+7
417 01bc 8823 tst r24
418 01be 51F0 breq .L155
109:../../../lib/basic_rf/basic_rf_send_packet.c **** rfSettings.ackReceived = FALSE;
420 .LM25:
421 01c0 1092 0000 sts rfSettings+3,__zero_reg__
422 .L156:
110:../../../lib/basic_rf/basic_rf_send_packet.c ****
111:../../../lib/basic_rf/basic_rf_send_packet.c **** // Wait for the SFD to go low again
112:../../../lib/basic_rf/basic_rf_send_packet.c **** while (SFD_IS_1);
424 .LM26:
425 01c4 8499 sbic 48-0x20,4
426 01c6 FECF rjmp .L156
113:../../../lib/basic_rf/basic_rf_send_packet.c ****
114:../../../lib/basic_rf/basic_rf_send_packet.c **** // We'll enter RX automatically, so just wait until we can be sure that the ack reception s
115:../../../lib/basic_rf/basic_rf_send_packet.c **** // The timeout consists of a 12-symbol turnaround time, the ack packet duration, and a smal
116:../../../lib/basic_rf/basic_rf_send_packet.c **** halWait((12 * BASIC_RF_SYMBOL_DURATION) + (BASIC_RF_ACK_DURATION) + (2 * BASIC_RF_SYMBOL_DU
428 .LM27:
429 01c8 84EA ldi r24,lo8(676)
430 01ca 92E0 ldi r25,hi8(676)
431 01cc 0E94 0000 call halWait
117:../../../lib/basic_rf/basic_rf_send_packet.c ****
118:../../../lib/basic_rf/basic_rf_send_packet.c **** // If an acknowledgment has been received (by the FIFOP interrupt), the ackReceived flag should b
119:../../../lib/basic_rf/basic_rf_send_packet.c **** success = rfSettings.ackReceived;
433 .LM28:
434 01d0 9091 0000 lds r25,rfSettings+3
435 .L155:
120:../../../lib/basic_rf/basic_rf_send_packet.c **** }
121:../../../lib/basic_rf/basic_rf_send_packet.c ****
122:../../../lib/basic_rf/basic_rf_send_packet.c **** // Turn off the receiver if it should not continue to be enabled
123:../../../lib/basic_rf/basic_rf_send_packet.c **** DISABLE_GLOBAL_INT();
437 .LM29:
438 /* #APP */
439 01d4 F894 cli
440
124:../../../lib/basic_rf/basic_rf_send_packet.c **** if (!rfSettings.receiveOn) FASTSPI_STROBE(CC2420_SRFOFF);
442 .LM30:
443 /* #NOAPP */
444 01d6 8091 0000 lds r24,rfSettings+8
445 01da 8823 tst r24
446 01dc 31F4 brne .L160
447 01de C098 cbi 56-0x20,0
448 01e0 86E0 ldi r24,lo8(6)
449 01e2 8FB9 out 47-0x20,r24
450 .L164:
451 01e4 779B sbis 46-0x20,7
452 01e6 FECF rjmp .L164
453 01e8 C09A sbi 56-0x20,0
454 .L160:
125:../../../lib/basic_rf/basic_rf_send_packet.c **** ENABLE_GLOBAL_INT();
456 .LM31:
457 /* #APP */
458 01ea 7894 sei
459
126:../../../lib/basic_rf/basic_rf_send_packet.c ****
127:../../../lib/basic_rf/basic_rf_send_packet.c **** // Increment the sequence number, and return the result
128:../../../lib/basic_rf/basic_rf_send_packet.c **** rfSettings.txSeqNumber++;
461 .LM32:
462 /* #NOAPP */
463 01ec 8091 0000 lds r24,rfSettings+2
464 01f0 8F5F subi r24,lo8(-(1))
465 01f2 8093 0000 sts rfSettings+2,r24
129:../../../lib/basic_rf/basic_rf_send_packet.c **** return success;
130:../../../lib/basic_rf/basic_rf_send_packet.c ****
131:../../../lib/basic_rf/basic_rf_send_packet.c **** } // halRfSendPacket
467 .LM33:
468 01f6 892F mov r24,r25
469 01f8 9927 clr r25
470 /* epilogue: frame size=3 */
471 01fa 2396 adiw r28,3
472 01fc 0FB6 in __tmp_reg__,__SREG__
473 01fe F894 cli
474 0200 DEBF out __SP_H__,r29
475 0202 0FBE out __SREG__,__tmp_reg__
476 0204 CDBF out __SP_L__,r28
477 0206 DF91 pop r29
478 0208 CF91 pop r28
479 020a 1F91 pop r17
480 020c FF90 pop r15
481 020e EF90 pop r14
482 0210 0895 ret
483 /* epilogue end (size=12) */
484 /* function basicRfSendPacket size 279 (254) */
511 .Lscope0:
513 .text
515 Letext:
516 /* File "../../../lib/basic_rf/basic_rf_send_packet.c": code 279 = 0x0117 ( 254), prologues 13, e
DEFINED SYMBOLS
*ABS*:00000000 basic_rf_send_packet.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\zx\LOCALS~1\Temp/cc6taaaa.s:93 .text:00000000 basicRfSendPacket
C:\DOCUME~1\zx\LOCALS~1\Temp/cc6taaaa.s:515 .text:00000212 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
rfSettings
halWait
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -