cc2420db_library.lst
来自「MatLab图像传感器网络仿真平台WiSNAP」· LST 代码 · 共 1,465 行 · 第 1/5 页
LST
1,465 行
515 0228 8081 ld r24,Z
516 022a 9927 clr r25
517 022c 9F93 push r25
518 022e 8F93 push r24
519 0230 80E0 ldi r24,lo8(.LC3)
520 0232 90E0 ldi r25,hi8(.LC3)
521 0234 9F93 push r25
522 0236 8F93 push r24
523 0238 FF92 push r15
524 023a EF92 push r14
525 023c 0E94 0000 call sprintf
214:cc2420db_library.c **** command[0], address, value);
215:cc2420db_library.c ****
216:cc2420db_library.c **** /* return status */
217:cc2420db_library.c **** return status;
527 .LM35:
528 0240 2DB7 in r18,__SP_L__
529 0242 3EB7 in r19,__SP_H__
530 0244 265F subi r18,lo8(-(10))
531 0246 3F4F sbci r19,hi8(-(10))
532 0248 0FB6 in __tmp_reg__,__SREG__
533 024a F894 cli
534 024c 3EBF out __SP_H__,r19
535 024e 0FBE out __SREG__,__tmp_reg__
536 0250 2DBF out __SP_L__,r18
537 /* epilogue: frame size=2 */
538 0252 2296 adiw r28,2
539 0254 0FB6 in __tmp_reg__,__SREG__
540 0256 F894 cli
541 0258 DEBF out __SP_H__,r29
542 025a 0FBE out __SREG__,__tmp_reg__
543 025c CDBF out __SP_L__,r28
544 025e DF91 pop r29
545 0260 CF91 pop r28
546 0262 1F91 pop r17
547 0264 0F91 pop r16
548 0266 FF90 pop r15
549 0268 EF90 pop r14
550 026a 0895 ret
551 /* epilogue end (size=13) */
552 /* function read_cc_register size 105 (78) */
556 .Lscope4:
558 .data
559 .LC4:
560 0027 2532 5825 .string "%2X%4X"
560 3458 00
561 .text
565 .global write_cc_register
567 write_cc_register:
218:cc2420db_library.c **** }
219:cc2420db_library.c ****
220:cc2420db_library.c **** /*******************************************************************************
221:cc2420db_library.c **** * Function: Write CC2420 register. *
222:cc2420db_library.c **** *******************************************************************************/
223:cc2420db_library.c **** int write_cc_register(char *command, char *response)
224:cc2420db_library.c **** {
569 .LM36:
570 /* prologue: frame size=4 */
571 026c EF92 push r14
572 026e FF92 push r15
573 0270 0F93 push r16
574 0272 1F93 push r17
575 0274 CF93 push r28
576 0276 DF93 push r29
577 0278 CDB7 in r28,__SP_L__
578 027a DEB7 in r29,__SP_H__
579 027c 2497 sbiw r28,4
580 027e 0FB6 in __tmp_reg__,__SREG__
581 0280 F894 cli
582 0282 DEBF out __SP_H__,r29
583 0284 0FBE out __SREG__,__tmp_reg__
584 0286 CDBF out __SP_L__,r28
585 /* prologue end (size=14) */
586 0288 8C01 movw r16,r24
587 028a 7B01 movw r14,r22
225:cc2420db_library.c **** int status;
226:cc2420db_library.c **** unsigned int address = 0, value = 0;
589 .LM37:
590 028c 1B82 std Y+3,__zero_reg__
591 028e 1C82 std Y+4,__zero_reg__
592 0290 1982 std Y+1,__zero_reg__
593 0292 1A82 std Y+2,__zero_reg__
227:cc2420db_library.c ****
228:cc2420db_library.c **** /* parse command argument(s) */
229:cc2420db_library.c **** status = sscanf(&command[1], "%2X%4X", &address, &value);
595 .LM38:
596 0294 CE01 movw r24,r28
597 0296 0196 adiw r24,1
598 0298 9F93 push r25
599 029a 8F93 push r24
600 029c CE01 movw r24,r28
601 029e 0396 adiw r24,3
602 02a0 9F93 push r25
603 02a2 8F93 push r24
604 02a4 80E0 ldi r24,lo8(.LC4)
605 02a6 90E0 ldi r25,hi8(.LC4)
606 02a8 9F93 push r25
607 02aa 8F93 push r24
608 02ac 0F5F subi r16,lo8(-(1))
609 02ae 1F4F sbci r17,hi8(-(1))
610 02b0 1F93 push r17
611 02b2 0F93 push r16
612 02b4 0150 subi r16,lo8(-(-1))
613 02b6 1040 sbci r17,hi8(-(-1))
614 02b8 0E94 0000 call sscanf
230:cc2420db_library.c ****
231:cc2420db_library.c **** /* execute command */
232:cc2420db_library.c **** FASTSPI_SETREG(address, value);
616 .LM39:
617 02bc C098 cbi 56-0x20,0
618 02be 8B81 ldd r24,Y+3
619 02c0 8FB9 out 47-0x20,r24
620 02c2 2DB7 in r18,__SP_L__
621 02c4 3EB7 in r19,__SP_H__
622 02c6 285F subi r18,lo8(-(8))
623 02c8 3F4F sbci r19,hi8(-(8))
624 02ca 0FB6 in __tmp_reg__,__SREG__
625 02cc F894 cli
626 02ce 3EBF out __SP_H__,r19
627 02d0 0FBE out __SREG__,__tmp_reg__
628 02d2 2DBF out __SP_L__,r18
629 .L27:
631 .LM40:
632 02d4 779B sbis 46-0x20,7
633 02d6 FECF rjmp .L27
634 02d8 8981 ldd r24,Y+1
635 02da 9A81 ldd r25,Y+2
636 02dc 892F mov r24,r25
637 02de 9927 clr r25
638 02e0 8FB9 out 47-0x20,r24
639 .L32:
640 02e2 779B sbis 46-0x20,7
641 02e4 FECF rjmp .L32
642 02e6 8981 ldd r24,Y+1
643 02e8 8FB9 out 47-0x20,r24
644 .L37:
645 02ea 779B sbis 46-0x20,7
646 02ec FECF rjmp .L37
647 02ee C09A sbi 56-0x20,0
233:cc2420db_library.c ****
234:cc2420db_library.c **** /* generate command response */
235:cc2420db_library.c **** status = sprintf(&response[0], ":%c%02X%04X\r\n",
649 .LM41:
650 02f0 8981 ldd r24,Y+1
651 02f2 9A81 ldd r25,Y+2
652 02f4 9F93 push r25
653 02f6 8F93 push r24
654 02f8 8B81 ldd r24,Y+3
655 02fa 9C81 ldd r25,Y+4
656 02fc 9F93 push r25
657 02fe 8F93 push r24
658 0300 F801 movw r30,r16
659 0302 8081 ld r24,Z
660 0304 9927 clr r25
661 0306 9F93 push r25
662 0308 8F93 push r24
663 030a 80E0 ldi r24,lo8(.LC3)
664 030c 90E0 ldi r25,hi8(.LC3)
665 030e 9F93 push r25
666 0310 8F93 push r24
667 0312 FF92 push r15
668 0314 EF92 push r14
669 0316 0E94 0000 call sprintf
236:cc2420db_library.c **** command[0], address, value);
237:cc2420db_library.c ****
238:cc2420db_library.c **** /* return status */
239:cc2420db_library.c **** return status;
671 .LM42:
672 031a 2DB7 in r18,__SP_L__
673 031c 3EB7 in r19,__SP_H__
674 031e 265F subi r18,lo8(-(10))
675 0320 3F4F sbci r19,hi8(-(10))
676 0322 0FB6 in __tmp_reg__,__SREG__
677 0324 F894 cli
678 0326 3EBF out __SP_H__,r19
679 0328 0FBE out __SREG__,__tmp_reg__
680 032a 2DBF out __SP_L__,r18
681 /* epilogue: frame size=4 */
682 032c 2496 adiw r28,4
683 032e 0FB6 in __tmp_reg__,__SREG__
684 0330 F894 cli
685 0332 DEBF out __SP_H__,r29
686 0334 0FBE out __SREG__,__tmp_reg__
687 0336 CDBF out __SP_L__,r28
688 0338 DF91 pop r29
689 033a CF91 pop r28
690 033c 1F91 pop r17
691 033e 0F91 pop r16
692 0340 FF90 pop r15
693 0342 EF90 pop r14
694 0344 0895 ret
695 /* epilogue end (size=13) */
696 /* function write_cc_register size 109 (82) */
700 .Lscope5:
702 .data
703 .LC5:
704 002e 2532 5825 .string "%2X%4X%4X"
704 3458 2534
704 5800
705 .LC6:
706 0038 3A25 6325 .string ":%c%02X%04X%04X\r\n"
706 3032 5825
706 3034 5825
706 3034 580D
706 0A00
707 .text
711 .global init_cc_transceiver
713 init_cc_transceiver:
240:cc2420db_library.c **** }
241:cc2420db_library.c ****
242:cc2420db_library.c **** /*******************************************************************************
243:cc2420db_library.c **** * Function: Set ATmega128 port direction. *
244:cc2420db_library.c **** *******************************************************************************/
245:cc2420db_library.c ****
246:cc2420db_library.c **** /*******************************************************************************
247:cc2420db_library.c **** * Function: Read ATmega128 port. *
248:cc2420db_library.c **** *******************************************************************************/
249:cc2420db_library.c ****
250:cc2420db_library.c **** /*******************************************************************************
251:cc2420db_library.c **** * Function: Write ATmega128 port. *
252:cc2420db_library.c **** *******************************************************************************/
253:cc2420db_library.c ****
254:cc2420db_library.c **** /*******************************************************************************
255:cc2420db_library.c **** * Function: Initialize CC2420 transceiver. *
256:cc2420db_library.c **** *******************************************************************************/
257:cc2420db_library.c **** int init_cc_transceiver(char *command, char *response)
258:cc2420db_library.c **** {
715 .LM43:
716 /* prologue: frame size=6 */
717 0346 EF92 push r14
718 0348 FF92 push r15
719 034a 0F93 push r16
720 034c 1F93 push r17
721 034e CF93 push r28
722 0350 DF93 push r29
723 0352 CDB7 in r28,__SP_L__
724 0354 DEB7 in r29,__SP_H__
725 0356 2697 sbiw r28,6
726 0358 0FB6 in __tmp_reg__,__SREG__
727 035a F894 cli
728 035c DEBF out __SP_H__,r29
729 035e 0FBE out __SREG__,__tmp_reg__
730 0360 CDBF out __SP_L__,r28
731 /* prologue end (size=14) */
732 0362 8C01 movw r16,r24
733 0364 7B01 movw r14,r22
259:cc2420db_library.c **** int status;
260:cc2420db_library.c **** unsigned int channel = 0, panid = 0, myaddress = 0;
735 .LM44:
736 0366 80E0 ldi r24,lo8(0)
737 0368 90E0 ldi r25,hi8(0)
738 036a 8D83 std Y+5,r24
739 036c 9E83 std Y+6,r25
740 036e 8B83 std Y+3,r24
741 0370 9C83 std Y+4,r25
742 0372 8983 std Y+1,r24
743 0374 9A83 std Y+2,r25
261:cc2420db_library.c ****
262:cc2420db_library.c **** /* parse command argument(s) */
263:cc2420db_library.c **** status = sscanf(&command[1], "%2X%4X%4X", &channel, &panid, &myaddress);
745 .LM45:
746 0376 CE01 movw r24,r28
747 0378 0196 adiw r24,1
748 037a 9F93 push r25
749 037c 8F93 push r24
750 037e CE01 movw r24,r28
751 0380 0396 adiw r24,3
752 0382 9F93 push r25
753 0384 8F93 push r24
754 0386 CE01 movw r24,r28
755 0388 0596 adiw r24,5
756 038a 9F93 push r25
757 038c 8F93 push r24
758 038e 80E0 ldi r24,lo8(.LC5)
759 0390 90E0 ldi r25,hi8(.LC5)
760 0392 9F93 push r25
761 0394 8F93 push r24
762 0396 0F5F subi r16,lo8(-(1))
763 0398 1F4F sbci r17,hi8(-(1))
764 039a 1F93 push r17
765 039c 0F93 push r16
766 039e 0E94 0000 call sscanf
264:cc2420db_library.c ****
265:cc2420db_library.c **** /* execute command */
266:cc2420db_library.c **** basicRfInit(&rfRxInfo, channel, panid, myaddress);
768 .LM46:
769 03a2 2981 ldd r18,Y+1
770 03a4 3A81 ldd r19,Y+2
771 03a6 4B81 ldd r20,Y+3
772 03a8 5C81 ldd r21,Y+4
773 03aa 6D81 ldd r22,Y+5
774 03ac 80E0 ldi r24,lo8(rfRxInfo)
775 03ae 90E0 ldi r25,hi8(rfRxInfo)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?