📄 level3.lst
字号:
403 .L22:
404 .stabn 68,0,141,.LM60-Send
405 .LM60:
406 0142 EC2F mov r30,r28
407 0144 FF27 clr r31
408 0146 E050 subi r30,lo8(-(cmd_message))
409 0148 F040 sbci r31,hi8(-(cmd_message))
410 014a 612F mov r22,r17
411 014c 8081 ld r24,Z
412 014e 00D0 rcall Prepare_Data
413 0150 080F add r16,r24
414 .stabn 68,0,140,.LM61-Send
415 .LM61:
416 0152 CF5F subi r28,lo8(-(1))
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 11
417 0154 C117 cp r28,r17
418 0156 A8F3 brlo .L22
419 0158 E0CF rjmp .L25
155:level3.c **** }
420 .stabn 68,0,155,.LM62-Send
421 .LM62:
422 .L17:
423 .LBE4:
424 /* epilogue: frame size=0 */
425 015a CF91 pop r28
426 015c 1F91 pop r17
427 015e 0F91 pop r16
428 0160 FF90 pop r15
429 0162 EF90 pop r14
430 0164 0895 ret
431 /* epilogue end (size=6) */
432 /* function Send size 50 (39) */
433 .size Send, .-Send
434 .stabs "fwd_bit_count:r(4,2)",64,0,136,16
435 .stabs "i:r(4,2)",64,0,137,28
436 .stabn 192,0,0,.LBB4-Send
437 .stabn 224,0,0,.LBE4-Send
438 .Lscope3:
439 .stabs "",36,0,0,.Lscope3-Send
440 .stabs "TA_UID:t(1,1)=(1,2)=s20atqa:(4,4),0,16;uid:(1,3)=ar(12,3);0;14;(4,2),16,120;sak:(1,4)=ar(1
441 .stabs "TypeA_GetUID:F(0,20)",36,0,169,TypeA_GetUID
442 .global TypeA_GetUID
443 .type TypeA_GetUID, @function
444 TypeA_GetUID:
156:level3.c ****
157:level3.c **** //--------------------------------------------------------------
158:level3.c **** // general read function
159:level3.c **** //
160:level3.c ****
161:level3.c ****
162:level3.c **** typedef struct {
163:level3.c **** uint16_t atqa;
164:level3.c **** uint8_t uid[ 3 * 5 ];
165:level3.c **** uint8_t sak[ 3 ];
166:level3.c **** } TA_UID;
167:level3.c ****
168:level3.c **** void TypeA_GetUID( void )
169:level3.c **** {
445 .stabn 68,0,169,.LM63-TypeA_GetUID
446 .LM63:
447 /* prologue: frame size=20 */
448 0166 CF93 push r28
449 0168 DF93 push r29
450 016a CDB7 in r28,__SP_L__
451 016c DEB7 in r29,__SP_H__
452 016e 6497 sbiw r28,20
453 0170 0FB6 in __tmp_reg__,__SREG__
454 0172 F894 cli
455 0174 DEBF out __SP_H__,r29
456 0176 0FBE out __SREG__,__tmp_reg__
457 0178 CDBF out __SP_L__,r28
458 /* prologue end (size=10) */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 12
170:level3.c **** uint8_t i , j , cascade;
171:level3.c **** TA_UID ta_uid;
172:level3.c ****
173:level3.c **** // cbi( PORTD , DBG_FORWARD );
174:level3.c ****
175:level3.c **** forward_link_type = 0x02;
459 .stabn 68,0,175,.LM64-TypeA_GetUID
460 .LM64:
461 .LBB5:
462 017a 82E0 ldi r24,lo8(2)
463 017c 8093 0000 sts forward_link_type,r24
176:level3.c **** cmd_message[ 0 ] = 0x26; //REQA
464 .stabn 68,0,176,.LM65-TypeA_GetUID
465 .LM65:
466 0180 86E2 ldi r24,lo8(38)
467 0182 8093 0000 sts cmd_message,r24
177:level3.c **** expectedResponseLen = 0x10;
468 .stabn 68,0,177,.LM66-TypeA_GetUID
469 .LM66:
470 0186 80E1 ldi r24,lo8(16)
471 0188 8093 0000 sts expectedResponseLen,r24
178:level3.c ****
179:level3.c **** Send( 1 , 30 );
472 .stabn 68,0,179,.LM67-TypeA_GetUID
473 .LM67:
474 018c 6EE1 ldi r22,lo8(30)
475 018e 70E0 ldi r23,hi8(30)
476 0190 81E0 ldi r24,lo8(1)
477 0192 B7DF rcall Send
180:level3.c ****
181:level3.c **** wdt_reset( );
478 .stabn 68,0,181,.LM68-TypeA_GetUID
479 .LM68:
480 /* #APP */
481 0194 A895 wdr
182:level3.c **** #ifdef WDT
183:level3.c **** WatchDog_Feed( );
482 .stabn 68,0,183,.LM69-TypeA_GetUID
483 .LM69:
484 /* #NOAPP */
485 0196 00D0 rcall WatchDog_Feed
184:level3.c **** #endif
185:level3.c ****
186:level3.c **** Capture( );
486 .stabn 68,0,186,.LM70-TypeA_GetUID
487 .LM70:
488 0198 33DF rcall Capture
187:level3.c ****
188:level3.c ****
189:level3.c **** wdt_reset( );
489 .stabn 68,0,189,.LM71-TypeA_GetUID
490 .LM71:
491 /* #APP */
492 019a A895 wdr
190:level3.c **** #ifdef WDT
191:level3.c **** WatchDog_Feed( );
493 .stabn 68,0,191,.LM72-TypeA_GetUID
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 13
494 .LM72:
495 /* #NOAPP */
496 019c 00D0 rcall WatchDog_Feed
192:level3.c **** #endif
193:level3.c **** clean_data_cnt = ExtractTypeAData( 248 );
497 .stabn 68,0,193,.LM73-TypeA_GetUID
498 .LM73:
499 019e 88EF ldi r24,lo8(-8)
500 01a0 00D0 rcall ExtractTypeAData
501 01a2 982F mov r25,r24
502 01a4 8093 0000 sts clean_data_cnt,r24
194:level3.c ****
195:level3.c **** if ( clean_data_cnt == expectedResponseLen )
503 .stabn 68,0,195,.LM74-TypeA_GetUID
504 .LM74:
505 01a8 8091 0000 lds r24,expectedResponseLen
506 01ac 9817 cp r25,r24
507 01ae 19F0 breq .L49
508 .L34:
196:level3.c **** {
197:level3.c **** ta_uid.atqa = ( data_buffer[ 1 ] << 8 ) | ( data_buffer[ 0 ] );
198:level3.c **** }
199:level3.c **** else
200:level3.c **** {
201:level3.c **** em4094_data_valid = 0x00 ;
202:level3.c **** return;
203:level3.c **** }
204:level3.c **** i = data_buffer[ 0 ];
205:level3.c **** j = i & 0x1F;
206:level3.c **** if ( ( data_buffer[ 1 ] & 0x0F ) || ( ( i & 0xC0 ) == 0xC0 ) ||
207:level3.c **** ( !( ( j == 0x01 ) || ( j == 0x02 ) || ( j == 0x04 ) || ( j == 0x08 ) || ( j == 0x10 ) ) ) )
208:level3.c **** {
209:level3.c **** em4094_data_valid = 0x00 ;
210:level3.c **** return;
211:level3.c **** }
212:level3.c **** // Beep( 2 );
213:level3.c **** cascade = 0; //cascade loop
214:level3.c ****
215:level3.c **** i = 0x04;
216:level3.c ****
217:level3.c **** while ( i != 0 )
218:level3.c **** {
219:level3.c ****
220:level3.c **** expectedResponseLen = 0x28;
221:level3.c **** cmd_message[0] = cascade * 2 + 0x93;
222:level3.c **** cmd_message[1] = 0x20; //SEL (NVB = 0x20)
223:level3.c ****
224:level3.c **** Send( 2 , 30 );
225:level3.c ****
226:level3.c **** Capture( );
227:level3.c ****
228:level3.c **** clean_data_cnt = ExtractTypeAData( 248 );
229:level3.c ****
230:level3.c **** if ( clean_data_cnt == expectedResponseLen )
231:level3.c **** {
232:level3.c **** for ( i = 0 ; i < 5 ; i++ )
233:level3.c **** {
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 14
234:level3.c **** ta_uid.uid[ cascade * 5 + i ] = data_buffer[ i ]; //store this uid part
235:level3.c **** // SendByte( data_buffer[ i ] );
236:level3.c **** // weigan_data[ i ] = data_buffer[ i ] ;
237:level3.c **** // Beep( 3 );
238:level3.c **** cmd_message[ 2 + i ] = data_buffer[ i ]; //copy uid part to cm
239:level3.c **** }
240:level3.c **** weigan_data[ 0 ] = data_buffer[ 3 ];
241:level3.c **** weigan_data[ 1 ] = data_buffer[ 2 ];
242:level3.c **** weigan_data[ 2 ] = data_buffer[ 1 ];
243:level3.c **** weigan_data[ 3 ] = data_buffer[ 0 ];
244:level3.c **** weigan_data[ 4 ] = data_buffer[ 4 ];
245:level3.c **** em4094_data_valid = 0x55 ;
246:level3.c **** // SendByte( 0xC0 + cascade );
247:level3.c **** // Beep(2);
248:level3.c **** return;
249:level3.c **** }
250:level3.c **** else
251:level3.c **** {
252:level3.c **** em4094_data_valid = 0x00 ;
509 .stabn 68,0,252,.LM75-TypeA_GetUID
510 .LM75:
511 .LBB6:
512 01b0 1092 0000 sts em4094_data_valid,__zero_reg__
513 01b4 61C0 rjmp .L26
514 .stabn 68,0,202,.LM76-TypeA_GetUID
515 .LM76:
516 .L49:
517 .LBE6:
518 01b6 8091 0000 lds r24,data_buffer+1
519 01ba 282F mov r18,r24
520 01bc 3327 clr r19
521 01be 922F mov r25,r18
522 01c0 8827 clr r24
523 01c2 4091 0000 lds r20,data_buffer
524 01c6 642F mov r22,r20
525 01c8 7727 clr r23
526 01ca 862B or r24,r22
527 01cc 972B or r25,r23
528 01ce 8983 std Y+1,r24
529 01d0 9A83 std Y+2,r25
530 .stabn 68,0,205,.LM77-TypeA_GetUID
531 .LM77:
532 01d2 4F71 andi r20,lo8(31)
533 .stabn 68,0,206,.LM78-TypeA_GetUID
534 .LM78:
535 01d4 2F70 andi r18,lo8(15)
536 01d6 3070 andi r19,hi8(15)
537 01d8 232B or r18,r19
538 01da 51F7 brne .L34
539 01dc 607C andi r22,lo8(192)
540 01de 7070 andi r23,hi8(192)
541 01e0 603C cpi r22,192
542 01e2 7105 cpc r23,__zero_reg__
543 01e4 29F3 breq .L34
544 01e6 842F mov r24,r20
545 01e8 8150 subi r24,lo8(-(-1))
546 01ea 8230 cpi r24,lo8(2)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 15
547 01ec 30F0 brlo .L29
548 01ee 4430 cpi r20,lo8(4)
549 01f0 21F0 breq .L29
550 01f2 4830 cpi r20,lo8(8)
551 01f4 11F0 breq .L29
552 01f6 4031 cpi r20,lo8(16)
553 01f8 D9F6 brne .L34
554 .L29:
555 .stabn 68,0,220,.LM79-TypeA_GetUID
556 .LM79:
557 .LBB7:
558 01fa 88E2 ldi r24,lo8(40)
559 01fc 8093 0000 sts expectedResponseLen,r24
560 .stabn 68,0,221,.LM80-TypeA_GetUID
561 .LM80:
562 0200 83E9 ldi r24,lo8(-109)
563 0202 8093 0000 sts cmd_message,r24
564 .stabn 68,0,222,.LM81-TypeA_GetUID
565 .LM81:
566 0206 80E2 ldi r24,lo8(32)
567 0208 8093 0000 sts cmd_message+1,r24
568 .stabn 68,0,224,.LM82-TypeA_GetUID
569 .LM82:
570 020c 6EE1 ldi r22,lo8(30)
571 020e 70E0 ldi r23,hi8(30)
572 0210 82E0 ldi r24,lo8(2)
573 0212 77DF rcall Send
574 .stabn 68,0,226,.LM83-TypeA_GetUID
575 .LM83:
576 0214 F5DE rcall Capture
577 .stabn 68,0,228,.LM84-TypeA_GetUID
578 .LM84:
579 0216 88EF ldi r24,lo8(-8)
580 0218 00D0 rcall ExtractTypeAData
581 021a 982F mov r25,r24
582 021c 8093 0000 sts clean_data_cnt,r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -