📄 cc2420db_library.lss
字号:
status = sscanf(&command[11+2*i], "%2X", &dummy);
738: 9f 92 push r9
73a: 8f 92 push r8
73c: 80 e0 ldi r24, 0x00 ; 0
73e: 91 e0 ldi r25, 0x01 ; 1
740: 9f 93 push r25
742: 8f 93 push r24
744: 05 5f subi r16, 0xF5 ; 245
746: 1f 4f sbci r17, 0xFF ; 255
748: 1f 93 push r17
74a: 0f 93 push r16
74c: 0b 50 subi r16, 0x0B ; 11
74e: 10 40 sbci r17, 0x00 ; 0
750: 0e 94 31 0a call 0x1462
rfTxInfo.pPayload[i] = (BYTE) (command[11+2*i] != '0' ?
754: a0 91 36 02 lds r26, 0x0236
758: b0 91 37 02 lds r27, 0x0237
75c: ae 0d add r26, r14
75e: bf 1d adc r27, r15
760: 2d b7 in r18, 0x3d ; 61
762: 3e b7 in r19, 0x3e ; 62
764: 2a 5f subi r18, 0xFA ; 250
766: 3f 4f sbci r19, 0xFF ; 255
768: 0f b6 in r0, 0x3f ; 63
76a: f8 94 cli
76c: 3e bf out 0x3e, r19 ; 62
76e: 0f be out 0x3f, r0 ; 63
770: 2d bf out 0x3d, r18 ; 61
772: 29 81 ldd r18, Y+1 ; 0x01
774: 3a 81 ldd r19, Y+2 ; 0x02
776: f8 01 movw r30, r16
778: 83 85 ldd r24, Z+11 ; 0x0b
77a: 80 33 cpi r24, 0x30 ; 48
77c: 29 f4 brne .+10 ; 0x788
77e: 44 e0 ldi r20, 0x04 ; 4
780: 36 95 lsr r19
782: 27 95 ror r18
784: 4a 95 dec r20
786: e1 f7 brne .-8 ; 0x780
788: 2c 93 st X, r18
78a: 08 94 sec
78c: e1 1c adc r14, r1
78e: f1 1c adc r15, r1
790: 0e 5f subi r16, 0xFE ; 254
792: 1f 4f sbci r17, 0xFF ; 255
794: 80 91 35 02 lds r24, 0x0235
798: 99 27 eor r25, r25
79a: 87 fd sbrc r24, 7
79c: 90 95 com r25
79e: e8 16 cp r14, r24
7a0: f9 06 cpc r15, r25
7a2: 54 f2 brlt .-108 ; 0x738
dummy : dummy >> 4);;
}
/* parse packet footer */
status = sscanf(&command[11+2*rfTxInfo.length], "%2X",
7a4: ce 01 movw r24, r28
7a6: 01 96 adiw r24, 0x01 ; 1
7a8: 9f 93 push r25
7aa: 8f 93 push r24
7ac: 80 e0 ldi r24, 0x00 ; 0
7ae: 91 e0 ldi r25, 0x01 ; 1
7b0: 9f 93 push r25
7b2: 8f 93 push r24
7b4: 80 91 35 02 lds r24, 0x0235
7b8: 99 27 eor r25, r25
7ba: 87 fd sbrc r24, 7
7bc: 90 95 com r25
7be: 88 0f add r24, r24
7c0: 99 1f adc r25, r25
7c2: 8c 0d add r24, r12
7c4: 9d 1d adc r25, r13
7c6: 0b 96 adiw r24, 0x0b ; 11
7c8: 9f 93 push r25
7ca: 8f 93 push r24
7cc: 0e 94 31 0a call 0x1462
&dummy);
rfTxInfo.ackRequest = (BOOL) dummy & 0x01;
7d0: 89 81 ldd r24, Y+1 ; 0x01
7d2: 81 70 andi r24, 0x01 ; 1
7d4: 80 93 38 02 sts 0x0238, r24
/* add packet header */
status = sprintf(&response[0], ":%c%04X%04X%02X", command[0],
7d8: 80 91 35 02 lds r24, 0x0235
7dc: 99 27 eor r25, r25
7de: 87 fd sbrc r24, 7
7e0: 90 95 com r25
7e2: 9f 93 push r25
7e4: 8f 93 push r24
7e6: 80 91 33 02 lds r24, 0x0233
7ea: 90 91 34 02 lds r25, 0x0234
7ee: 9f 93 push r25
7f0: 8f 93 push r24
7f2: 80 91 31 02 lds r24, 0x0231
7f6: 90 91 32 02 lds r25, 0x0232
7fa: 9f 93 push r25
7fc: 8f 93 push r24
7fe: f6 01 movw r30, r12
800: 80 81 ld r24, Z
802: 99 27 eor r25, r25
804: 9f 93 push r25
806: 8f 93 push r24
808: 80 e8 ldi r24, 0x80 ; 128
80a: 91 e0 ldi r25, 0x01 ; 1
80c: 9f 93 push r25
80e: 8f 93 push r24
810: bf 92 push r11
812: af 92 push r10
814: 0e 94 00 0a call 0x1400
rfTxInfo.destPanId, rfTxInfo.destAddr,rfTxInfo.length);
/* add packet payload */
for (i = 0; i < rfTxInfo.length; i++)
818: 2d b7 in r18, 0x3d ; 61
81a: 3e b7 in r19, 0x3e ; 62
81c: 2e 5e subi r18, 0xEE ; 238
81e: 3f 4f sbci r19, 0xFF ; 255
820: 0f b6 in r0, 0x3f ; 63
822: f8 94 cli
824: 3e bf out 0x3e, r19 ; 62
826: 0f be out 0x3f, r0 ; 63
828: 2d bf out 0x3d, r18 ; 61
82a: 80 91 35 02 lds r24, 0x0235
82e: ee 24 eor r14, r14
830: ff 24 eor r15, r15
832: 18 16 cp r1, r24
834: 54 f5 brge .+84 ; 0x88a
836: 85 01 movw r16, r10
838: 04 5f subi r16, 0xF4 ; 244
83a: 1f 4f sbci r17, 0xFF ; 255
{
status = sprintf(&response[12+2*i], "%02X", rfTxInfo.pPayload[i]);
83c: e0 91 36 02 lds r30, 0x0236
840: f0 91 37 02 lds r31, 0x0237
844: ee 0d add r30, r14
846: ff 1d adc r31, r15
848: 80 81 ld r24, Z
84a: 99 27 eor r25, r25
84c: 9f 93 push r25
84e: 8f 93 push r24
850: 8e e5 ldi r24, 0x5E ; 94
852: 91 e0 ldi r25, 0x01 ; 1
854: 9f 93 push r25
856: 8f 93 push r24
858: 1f 93 push r17
85a: 0f 93 push r16
85c: 0e 94 00 0a call 0x1400
860: 8d b7 in r24, 0x3d ; 61
862: 9e b7 in r25, 0x3e ; 62
864: 06 96 adiw r24, 0x06 ; 6
866: 0f b6 in r0, 0x3f ; 63
868: f8 94 cli
86a: 9e bf out 0x3e, r25 ; 62
86c: 0f be out 0x3f, r0 ; 63
86e: 8d bf out 0x3d, r24 ; 61
870: 08 94 sec
872: e1 1c adc r14, r1
874: f1 1c adc r15, r1
876: 0e 5f subi r16, 0xFE ; 254
878: 1f 4f sbci r17, 0xFF ; 255
87a: 80 91 35 02 lds r24, 0x0235
87e: 99 27 eor r25, r25
880: 87 fd sbrc r24, 7
882: 90 95 com r25
884: e8 16 cp r14, r24
886: f9 06 cpc r15, r25
888: cc f2 brlt .-78 ; 0x83c
}
/* add packet footer */
status = sprintf(&response[12+2*rfTxInfo.length], "%02X\r\n",
88a: 80 91 38 02 lds r24, 0x0238
88e: 99 27 eor r25, r25
890: 9f 93 push r25
892: 8f 93 push r24
894: 80 e9 ldi r24, 0x90 ; 144
896: 91 e0 ldi r25, 0x01 ; 1
898: 9f 93 push r25
89a: 8f 93 push r24
89c: 80 91 35 02 lds r24, 0x0235
8a0: 99 27 eor r25, r25
8a2: 87 fd sbrc r24, 7
8a4: 90 95 com r25
8a6: 88 0f add r24, r24
8a8: 99 1f adc r25, r25
8aa: 8a 0d add r24, r10
8ac: 9b 1d adc r25, r11
8ae: 0c 96 adiw r24, 0x0c ; 12
8b0: 9f 93 push r25
8b2: 8f 93 push r24
8b4: 0e 94 00 0a call 0x1400
rfTxInfo.ackRequest);
/* execute command */
status = RfSendPacket(&rfTxInfo);
8b8: 81 e3 ldi r24, 0x31 ; 49
8ba: 92 e0 ldi r25, 0x02 ; 2
8bc: 0e 94 75 00 call 0xea
/* generate command response */
status = sprintf(&response[0], ":%c%02X\r\n",
8c0: 9f 93 push r25
8c2: 8f 93 push r24
8c4: f6 01 movw r30, r12
8c6: 80 81 ld r24, Z
8c8: 99 27 eor r25, r25
8ca: 9f 93 push r25
8cc: 8f 93 push r24
8ce: 87 e9 ldi r24, 0x97 ; 151
8d0: 91 e0 ldi r25, 0x01 ; 1
8d2: 9f 93 push r25
8d4: 8f 93 push r24
8d6: bf 92 push r11
8d8: af 92 push r10
8da: 0e 94 00 0a call 0x1400
command[0], status);
/* return status */
return status;
8de: 2d b7 in r18, 0x3d ; 61
8e0: 3e b7 in r19, 0x3e ; 62
8e2: 22 5f subi r18, 0xF2 ; 242
8e4: 3f 4f sbci r19, 0xFF ; 255
8e6: 0f b6 in r0, 0x3f ; 63
8e8: f8 94 cli
8ea: 3e bf out 0x3e, r19 ; 62
8ec: 0f be out 0x3f, r0 ; 63
8ee: 2d bf out 0x3d, r18 ; 61
8f0: 22 96 adiw r28, 0x02 ; 2
8f2: 0f b6 in r0, 0x3f ; 63
8f4: f8 94 cli
8f6: de bf out 0x3e, r29 ; 62
8f8: 0f be out 0x3f, r0 ; 63
8fa: cd bf out 0x3d, r28 ; 61
8fc: df 91 pop r29
8fe: cf 91 pop r28
900: 1f 91 pop r17
902: 0f 91 pop r16
904: ff 90 pop r15
906: ef 90 pop r14
908: df 90 pop r13
90a: cf 90 pop r12
90c: bf 90 pop r11
90e: af 90 pop r10
910: 9f 90 pop r9
912: 8f 90 pop r8
914: 08 95 ret
00000916 <toggle_location_led>:
}
/*******************************************************************************
* Function: Toggle Location LED. *
*******************************************************************************/
int toggle_location_led(char *command, char *response)
{
916: fc 01 movw r30, r24
int status;
/* execute command */
PORTE = PINE ^ 0x80;
918: 81 b1 in r24, 0x01 ; 1
91a: 90 e8 ldi r25, 0x80 ; 128
91c: 89 27 eor r24, r25
91e: 83 b9 out 0x03, r24 ; 3
/* generate command response */
status = sprintf(&response[0], ":%c\r\n", command[0]);
920: 80 81 ld r24, Z
922: 99 27 eor r25, r25
924: 9f 93 push r25
926: 8f 93 push r24
928: 8e e6 ldi r24, 0x6E ; 110
92a: 91 e0 ldi r25, 0x01 ; 1
92c: 9f 93 push r25
92e: 8f 93 push r24
930: 7f 93 push r23
932: 6f 93 push r22
934: 0e 94 00 0a call 0x1400
/* return status */
return status;
938: 2d b7 in r18, 0x3d ; 61
93a: 3e b7 in r19, 0x3e ; 62
93c: 2a 5f subi r18, 0xFA ; 250
93e: 3f 4f sbci r19, 0xFF ; 255
940: 0f b6 in r0, 0x3f ; 63
942: f8 94 cli
944: 3e bf out 0x3e, r19 ; 62
946: 0f be out 0x3f, r0 ; 63
948: 2d bf out 0x3d, r18 ; 61
94a: 08 95 ret
0000094c <execute_command>:
}
/*******************************************************************************
* Function: Execute command. *
*******************************************************************************/
void execute_command(char *command, char *response)
{
94c: 0f 93 push r16
94e: 1f 93 push r17
950: cf 93 push r28
952: df 93 push r29
954: ec 01 movw r28, r24
956: 8b 01 movw r16, r22
int status;
/* decode command */
command[0] = toupper(command[0]);
958: 88 81 ld r24, Y
95a: 99 27 eor r25, r25
95c: 0e 94 51 10 call 0x20a2
960: 88 83 st Y, r24
switch (command[0])
962: 99 27 eor r25, r25
964: 84 34 cpi r24, 0x44 ; 68
966: 91 05 cpc r25, r1
968: 69 f1 breq .+90 ; 0x9c4
96a: 85 34 cpi r24, 0x45 ; 69
96c: 91 05 cpc r25, r1
96e: 54 f4 brge .+20 ; 0x984
970: 82 34 cpi r24, 0x42 ; 66
972: 91 05 cpc r25, r1
974: e9 f0 breq .+58 ; 0x9b0
976: 83 34 cpi r24, 0x43 ; 67
978: 91 05 cpc r25, r1
97a: fc f4 brge .+62 ; 0x9ba
97c: 81 34 cpi r24, 0x41 ; 65
97e: 91 05 cpc r25, r1
980: 91 f0 breq .+36 ; 0x9a6
982: 3a c0 rjmp .+116 ; 0x9f8
984: 82 35 cpi r24, 0x52 ; 82
986: 91 05 cpc r25, r1
988: 39 f1 breq .+78 ; 0x9d8
98a: 83 35 cpi r24, 0x53 ; 83
98c: 91 05 cpc r25, r1
98e: 24 f4 brge .+8 ; 0x998
990: 89 34 cpi r24, 0x49 ; 73
992: 91 05 cpc r25, r1
994: e1 f0 breq .+56 ; 0x9ce
996: 30 c0 rjmp .+96 ; 0x9f8
998: 83 35 cpi r24, 0x53 ; 83
99a: 91 05 cpc r25, r1
99c: 11 f1 breq .+68 ; 0x9e2
99e: 84 35 cpi r24, 0x54 ; 84
9a0: 91 05 cpc r25, r1
9a2: 21 f1 breq .+72 ; 0x9ec
9a4: 29 c0 rjmp .+82 ; 0x9f8
{
/* read atmega128 register */
case 'A':
/* call command routine */
status = read_at_register(&command[0], &response[0]);
9a6: b8 01 movw r22, r16
9a8: ce 01 movw r24, r28
9aa: 0e 94 8e 00 call 0x11c
break;
9ae: 22 c0 rjmp .+68 ; 0x9f4
/* write atmega128 register */
case 'B':
/* call command routine */
status = write_at_register(&command[0], &response[0]);
9b0: b8 01 movw r22, r16
9b2: ce 01 movw r24, r28
9b4: 0e 94 db 00 call 0x1b6
break;
9b8: 1d c0 rjmp .+58 ; 0x9f4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -