📄 level3.lst
字号:
583 .stabn 68,0,230,.LM85-TypeA_GetUID
584 .LM85:
585 0220 8091 0000 lds r24,expectedResponseLen
586 0224 9817 cp r25,r24
587 0226 21F6 brne .L34
588 .stabn 68,0,232,.LM86-TypeA_GetUID
589 .LM86:
590 0228 90E0 ldi r25,lo8(0)
591 022a 20E0 ldi r18,lo8(cmd_message+2)
592 022c 30E0 ldi r19,hi8(cmd_message+2)
593 022e DE01 movw r26,r28
594 0230 1396 adiw r26,3
595 0232 40E0 ldi r20,lo8(data_buffer)
596 0234 50E0 ldi r21,hi8(data_buffer)
597 .L39:
598 .stabn 68,0,234,.LM87-TypeA_GetUID
599 .LM87:
600 0236 FA01 movw r30,r20
601 0238 8191 ld r24,Z+
602 023a AF01 movw r20,r30
603 023c 8D93 st X+,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 16
604 .stabn 68,0,238,.LM88-TypeA_GetUID
605 .LM88:
606 023e F901 movw r30,r18
607 0240 8193 st Z+,r24
608 0242 9F01 movw r18,r30
609 .stabn 68,0,232,.LM89-TypeA_GetUID
610 .LM89:
611 0244 9F5F subi r25,lo8(-(1))
612 0246 9530 cpi r25,lo8(5)
613 0248 B0F3 brlo .L39
614 .stabn 68,0,240,.LM90-TypeA_GetUID
615 .LM90:
616 024a 8091 0000 lds r24,data_buffer+3
617 024e 8093 0000 sts weigan_data,r24
618 .stabn 68,0,241,.LM91-TypeA_GetUID
619 .LM91:
620 0252 8091 0000 lds r24,data_buffer+2
621 0256 8093 0000 sts weigan_data+1,r24
622 .stabn 68,0,242,.LM92-TypeA_GetUID
623 .LM92:
624 025a 8091 0000 lds r24,data_buffer+1
625 025e 8093 0000 sts weigan_data+2,r24
626 .stabn 68,0,243,.LM93-TypeA_GetUID
627 .LM93:
628 0262 8091 0000 lds r24,data_buffer
629 0266 8093 0000 sts weigan_data+3,r24
630 .stabn 68,0,244,.LM94-TypeA_GetUID
631 .LM94:
632 026a 8091 0000 lds r24,data_buffer+4
633 026e 8093 0000 sts weigan_data+4,r24
634 .stabn 68,0,245,.LM95-TypeA_GetUID
635 .LM95:
636 0272 85E5 ldi r24,lo8(85)
637 0274 8093 0000 sts em4094_data_valid,r24
638 .stabn 68,0,248,.LM96-TypeA_GetUID
639 .LM96:
253:level3.c **** // SendByte( 0xD0 + cascade );
254:level3.c **** return;
255:level3.c **** }
256:level3.c ****
257:level3.c **** expectedResponseLen = 0x18;
258:level3.c **** cmd_message[ 0 ] = cascade * 2 + 0x93;
259:level3.c **** cmd_message[ 1 ] = 0x70; //SELECT (NVB = 0x70)
260:level3.c ****
261:level3.c **** uint16_t crc = ISOCRCA( cmd_message , 7 );
262:level3.c **** cmd_message[ 7 ] = crc & 0xFF;
263:level3.c **** cmd_message[ 8 ] = crc >> 8;
264:level3.c ****
265:level3.c **** Send( 9 , 30 );
266:level3.c ****
267:level3.c **** Capture( );
268:level3.c ****
269:level3.c **** clean_data_cnt = ExtractTypeAData( 248 );
270:level3.c ****
271:level3.c **** if ( clean_data_cnt == expectedResponseLen )
272:level3.c **** {
273:level3.c **** crc = ISOCRCA( data_buffer , 1 );
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 17
274:level3.c **** if ( ( data_buffer[ 1 ] == ( crc & 0xFF ) ) && ( data_buffer[ 2 ] == ( crc >> 8 ) ) )
275:level3.c **** {
276:level3.c **** i = ta_uid.sak[ cascade ] = data_buffer[ 0 ];
277:level3.c **** // em4094_data_valid = 0x55 ;
278:level3.c **** }
279:level3.c **** else
280:level3.c **** {
281:level3.c **** em4094_data_valid = 0x00 ;
282:level3.c **** // SendByte( 0xE0 + cascade );
283:level3.c **** return;
284:level3.c **** }
285:level3.c **** }
286:level3.c **** else
287:level3.c **** {
288:level3.c **** em4094_data_valid = 0x00 ;
289:level3.c **** return;
290:level3.c **** }
291:level3.c **** wdt_reset( );
292:level3.c **** #ifdef WDT
293:level3.c **** WatchDog_Feed( );
294:level3.c **** #endif
295:level3.c **** i = i & 0x04;
296:level3.c **** cascade++;
297:level3.c **** }
298:level3.c ****
299:level3.c **** //return result (AppSw has to check the sak bytes!)
300:level3.c **** //FormatResponse_Data( uart_command, 0, sizeof(ta_uid), (uint8_t*)&ta_uid );
301:level3.c **** }
640 .stabn 68,0,301,.LM97-TypeA_GetUID
641 .LM97:
642 .L26:
643 .LBE7:
644 .LBE5:
645 /* epilogue: frame size=20 */
646 0278 6496 adiw r28,20
647 027a 0FB6 in __tmp_reg__,__SREG__
648 027c F894 cli
649 027e DEBF out __SP_H__,r29
650 0280 0FBE out __SREG__,__tmp_reg__
651 0282 CDBF out __SP_L__,r28
652 0284 DF91 pop r29
653 0286 CF91 pop r28
654 0288 0895 ret
655 /* epilogue end (size=9) */
656 /* function TypeA_GetUID size 148 (129) */
657 .size TypeA_GetUID, .-TypeA_GetUID
658 .stabs "i:r(4,2)",64,0,170,25
659 .stabs "j:r(4,2)",64,0,170,20
660 .stabs "ta_uid:(1,1)",128,0,171,1
661 .stabn 192,0,0,.LBB5-TypeA_GetUID
662 .stabn 224,0,0,.LBE5-TypeA_GetUID
663 .Lscope4:
664 .stabs "",36,0,0,.Lscope4-TypeA_GetUID
665 .stabs "ScaleOnce:F(4,4)",36,0,308,ScaleOnce
666 .stabs "period:P(4,4)",64,0,307,24
667 .global ScaleOnce
668 .type ScaleOnce, @function
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 18
669 ScaleOnce:
302:level3.c ****
303:level3.c **** // ==================================================================
304:level3.c **** // Scale Once - minimum scale is RF/32
305:level3.c **** // fixed parameters - maxCaptureTimeScale
306:level3.c ****
307:level3.c **** uint16_t ScaleOnce( uint16_t period )
308:level3.c **** {
670 .stabn 68,0,308,.LM98-ScaleOnce
671 .LM98:
672 /* prologue: frame size=0 */
673 /* prologue end (size=0) */
309:level3.c **** if ( period > 255 )
674 .stabn 68,0,309,.LM99-ScaleOnce
675 .LM99:
676 028a 8F3F cpi r24,255
677 028c 9105 cpc r25,__zero_reg__
678 028e 79F0 breq .L51
679 0290 70F0 brlo .L51
310:level3.c **** {
311:level3.c **** period /= 2;
680 .stabn 68,0,311,.LM100-ScaleOnce
681 .LM100:
682 0292 9695 lsr r25
683 0294 8795 ror r24
312:level3.c **** if ( maxCaptureTimeScale <= 5 )
684 .stabn 68,0,312,.LM101-ScaleOnce
685 .LM101:
686 0296 2091 0000 lds r18,maxCaptureTimeScale
687 029a 2630 cpi r18,lo8(6)
688 029c 58F0 brlo .L57
313:level3.c **** {
314:level3.c **** maxCaptureTimeScale++;
689 .stabn 68,0,314,.LM102-ScaleOnce
690 .LM102:
315:level3.c **** }
316:level3.c **** else if ( maxCaptureTimeScale == 6 )
691 .stabn 68,0,316,.LM103-ScaleOnce
692 .LM103:
693 029e 2630 cpi r18,lo8(6)
694 02a0 39F0 breq .L58
317:level3.c **** {
318:level3.c **** period /= 2;
319:level3.c **** maxCaptureTimeScale++;
320:level3.c **** }
321:level3.c **** else if ( period > 255 )
695 .stabn 68,0,321,.LM104-ScaleOnce
696 .LM104:
697 02a2 8F3F cpi r24,255
698 02a4 9105 cpc r25,__zero_reg__
699 02a6 19F0 breq .L51
700 02a8 10F0 brlo .L51
322:level3.c **** {
323:level3.c **** period = 255;
701 .stabn 68,0,323,.LM105-ScaleOnce
702 .LM105:
703 02aa 8FEF ldi r24,lo8(255)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 19
704 02ac 90E0 ldi r25,hi8(255)
705 .L51:
324:level3.c **** }
325:level3.c **** }
326:level3.c **** return period;
327:level3.c **** }
706 .stabn 68,0,327,.LM106-ScaleOnce
707 .LM106:
708 02ae 0895 ret
709 .stabn 68,0,318,.LM107-ScaleOnce
710 .LM107:
711 .L58:
712 02b0 9695 lsr r25
713 02b2 8795 ror r24
714 .L57:
715 .stabn 68,0,319,.LM108-ScaleOnce
716 .LM108:
717 02b4 2F5F subi r18,lo8(-(1))
718 02b6 2093 0000 sts maxCaptureTimeScale,r18
719 .stabn 68,0,327,.LM109-ScaleOnce
720 .LM109:
721 02ba 0895 ret
722 /* epilogue: frame size=0 */
723 02bc 0895 ret
724 /* epilogue end (size=1) */
725 /* function ScaleOnce size 26 (25) */
726 .size ScaleOnce, .-ScaleOnce
727 .Lscope5:
728 .stabs "",36,0,0,.Lscope5-ScaleOnce
729 .stabs "ScaleTime:F(4,2)",36,0,333,ScaleTime
730 .stabs "period:P(4,4)",64,0,332,18
731 .global ScaleTime
732 .type ScaleTime, @function
733 ScaleTime:
328:level3.c ****
329:level3.c ****
330:level3.c **** // ==================================================================
331:level3.c ****
332:level3.c **** uint8_t ScaleTime( uint16_t period )
333:level3.c **** {
734 .stabn 68,0,333,.LM110-ScaleTime
735 .LM110:
736 /* prologue: frame size=0 */
737 02be CF93 push r28
738 /* prologue end (size=1) */
739 02c0 9C01 movw r18,r24
334:level3.c **** uint8_t i;
335:level3.c **** maxCaptureTimeScale = 3;
740 .stabn 68,0,335,.LM111-ScaleTime
741 .LM111:
742 .LBB8:
743 02c2 83E0 ldi r24,lo8(3)
744 02c4 8093 0000 sts maxCaptureTimeScale,r24
336:level3.c ****
337:level3.c **** for( i = 0 ; i < 4 ; i++ )
745 .stabn 68,0,337,.LM112-ScaleTime
746 .LM112:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmgaaaa.s page 20
747 02c8 C0E0 ldi r28,lo8(0)
748 .L64:
338:level3.c **** {
339:level3.c **** period = ScaleOnce( period );
749 .stabn 68,0,339,.LM113-ScaleTime
750 .LM113:
751 02ca C901 movw r24,r18
752 02cc DEDF rcall ScaleOnce
753 02ce 9C01 movw r18,r24
754 .stabn 68,0,337,.LM114-ScaleTime
755 .LM114:
756 02d0 CF5F subi r28,lo8(-(1))
757 02d2 C430 cpi r28,lo8(4)
758 02d4 D0F3 brlo .L64
340:level3.c **** }
341:level3.c **** return period;
759 .stabn 68,0,341,.LM115-ScaleTime
760 .LM115:
761 02d6 9927 clr r25
342:level3.c **** }
762 .stabn 68,0,342,.LM116-ScaleTime
763 .LM116:
764 .LBE8:
765 /* epilogue: frame size=0 */
766 02d8 CF91 pop r28
767 02da 0895 ret
768 /* epilogue end (size=2) */
769 /* function ScaleTime size 15 (12) */
770 .size ScaleTime, .-ScaleTime
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -