📄 level2.lst
字号:
243:level2.c **** // parameter : None.
244:level2.c **** // ********************************************************************************************
245:level2.c ****
246:level2.c **** void ClearCaptureBuffers( void )
247:level2.c **** {
584 .stabn 68,0,247,.LM84-ClearCaptureBuffers
585 .LM84:
586 /* prologue: frame size=0 */
587 /* prologue end (size=0) */
248:level2.c **** uint8_t i;
249:level2.c **** for( i = 0 ; i < CAPTURE_SIZE ; i++ )
588 .stabn 68,0,249,.LM85-ClearCaptureBuffers
589 .LM85:
590 .LBB5:
591 01f2 80E0 ldi r24,lo8(0)
592 01f4 9FEF ldi r25,lo8(-1)
593 .L60:
250:level2.c **** {
251:level2.c **** capture.decoded_data.capture_data[ i ] = 0;
594 .stabn 68,0,251,.LM86-ClearCaptureBuffers
595 .LM86:
596 01f6 E82F mov r30,r24
597 01f8 FF27 clr r31
598 01fa E050 subi r30,lo8(-(capture))
599 01fc F040 sbci r31,hi8(-(capture))
600 01fe 1082 st Z,__zero_reg__
252:level2.c **** capture.decoded_data.capture_valid[ i ] = 0xFF;
601 .stabn 68,0,252,.LM87-ClearCaptureBuffers
602 .LM87:
603 0200 E058 subi r30,lo8(-(128))
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 16
604 0202 FF4F sbci r31,hi8(-(128))
605 0204 9083 st Z,r25
606 .stabn 68,0,249,.LM88-ClearCaptureBuffers
607 .LM88:
608 0206 8F5F subi r24,lo8(-(1))
609 0208 87FF sbrs r24,7
610 020a F5CF rjmp .L60
253:level2.c **** }
254:level2.c ****
255:level2.c **** bufferClean = 1;
611 .stabn 68,0,255,.LM89-ClearCaptureBuffers
612 .LM89:
613 020c 81E0 ldi r24,lo8(1)
614 020e 8093 0000 sts bufferClean,r24
256:level2.c **** }
615 .stabn 68,0,256,.LM90-ClearCaptureBuffers
616 .LM90:
617 .LBE5:
618 /* epilogue: frame size=0 */
619 0212 0895 ret
620 /* epilogue end (size=1) */
621 /* function ClearCaptureBuffers size 17 (16) */
622 .size ClearCaptureBuffers, .-ClearCaptureBuffers
623 .stabs "i:r(4,2)",64,0,248,24
624 .stabn 192,0,0,.LBB5-ClearCaptureBuffers
625 .stabn 224,0,0,.LBE5-ClearCaptureBuffers
626 .Lscope6:
627 .stabs "",36,0,0,.Lscope6-ClearCaptureBuffers
628 .stabs "WaitSPI:F(0,20)",36,0,266,WaitSPI
629 .global WaitSPI
630 .type WaitSPI, @function
631 WaitSPI:
257:level2.c ****
258:level2.c ****
259:level2.c **** // ********************************************************************************************
260:level2.c **** // Description : Delay some time in configure EM4094 routine(WriteSPI()).
261:level2.c **** // Return value: None.
262:level2.c **** // parameter : None.
263:level2.c **** // ********************************************************************************************
264:level2.c ****
265:level2.c **** void WaitSPI( void )
266:level2.c **** {
632 .stabn 68,0,266,.LM91-WaitSPI
633 .LM91:
634 /* prologue: frame size=0 */
635 /* prologue end (size=0) */
267:level2.c **** int register x = SPI_DELAY;
636 .stabn 68,0,267,.LM92-WaitSPI
637 .LM92:
638 .LBB6:
639 0214 25E0 ldi r18,lo8(5)
640 0216 30E0 ldi r19,hi8(5)
268:level2.c **** while( x-- > 0 )
641 .stabn 68,0,268,.LM93-WaitSPI
642 .LM93:
643 .L64:
644 0218 C901 movw r24,r18
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 17
645 021a 2150 subi r18,lo8(-(-1))
646 021c 3040 sbci r19,hi8(-(-1))
647 021e 1816 cp __zero_reg__,r24
648 0220 1906 cpc __zero_reg__,r25
649 0222 D4F3 brlt .L64
269:level2.c **** {}
270:level2.c **** }
650 .stabn 68,0,270,.LM94-WaitSPI
651 .LM94:
652 .LBE6:
653 /* epilogue: frame size=0 */
654 0224 0895 ret
655 /* epilogue end (size=1) */
656 /* function WaitSPI size 9 (8) */
657 .size WaitSPI, .-WaitSPI
658 .stabs "x:r(0,1)",64,0,267,18
659 .stabn 192,0,0,.LBB6-WaitSPI
660 .stabn 224,0,0,.LBE6-WaitSPI
661 .Lscope7:
662 .stabs "",36,0,0,.Lscope7-WaitSPI
663 .stabs "WriteSPI:F(0,20)",36,0,280,WriteSPI
664 .stabs "low:P(4,4)",64,0,279,24
665 .stabs "hi:P(4,4)",64,0,279,14
666 .global WriteSPI
667 .type WriteSPI, @function
668 WriteSPI:
271:level2.c ****
272:level2.c **** // ********************************************************************************************
273:level2.c **** // Description : Configure the EM4094 31 option bit.
274:level2.c **** // Return value: None.
275:level2.c **** // parameter : low -- the low 16 bit value of 32 bit option;
276:level2.c **** // hi -- the high 16 bit value of 32 bit option.
277:level2.c **** // ********************************************************************************************
278:level2.c ****
279:level2.c **** void WriteSPI( uint16_t low , uint16_t hi )
280:level2.c **** {
669 .stabn 68,0,280,.LM95-WriteSPI
670 .LM95:
671 /* prologue: frame size=0 */
672 0226 EF92 push r14
673 0228 FF92 push r15
674 022a 1F93 push r17
675 022c CF93 push r28
676 022e DF93 push r29
677 /* prologue end (size=5) */
678 0230 7B01 movw r14,r22
281:level2.c **** int16_t data = low;
679 .stabn 68,0,281,.LM96-WriteSPI
680 .LM96:
681 .LBB7:
682 0232 EC01 movw r28,r24
282:level2.c **** uint8_t bitcnt = 32;
283:level2.c ****
284:level2.c **** //SPI start event
285:level2.c **** cbi( PORTC , MOD_PIN );
683 .stabn 68,0,285,.LM97-WriteSPI
684 .LM97:
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 18
685 0234 A998 cbi 53-0x20,1
286:level2.c **** WaitSPI( );
686 .stabn 68,0,286,.LM98-WriteSPI
687 .LM98:
688 0236 EEDF rcall WaitSPI
287:level2.c **** sbi( PORTC , DCLK_PIN );
689 .stabn 68,0,287,.LM99-WriteSPI
690 .LM99:
691 0238 A89A sbi 53-0x20,0
288:level2.c **** WaitSPI( );
692 .stabn 68,0,288,.LM100-WriteSPI
693 .LM100:
694 023a ECDF rcall WaitSPI
289:level2.c **** sbi( PORTC , MOD_PIN );
695 .stabn 68,0,289,.LM101-WriteSPI
696 .LM101:
697 023c A99A sbi 53-0x20,1
290:level2.c **** WaitSPI( );
698 .stabn 68,0,290,.LM102-WriteSPI
699 .LM102:
700 023e EADF rcall WaitSPI
291:level2.c ****
292:level2.c **** while ( bitcnt-- > 0 )
701 .stabn 68,0,292,.LM103-WriteSPI
702 .LM103:
703 0240 1FE1 ldi r17,lo8(31)
704 .L74:
293:level2.c **** {
294:level2.c **** cbi( PORTC , DCLK_PIN );
705 .stabn 68,0,294,.LM104-WriteSPI
706 .LM104:
707 0242 A898 cbi 53-0x20,0
295:level2.c **** WaitSPI( );
708 .stabn 68,0,295,.LM105-WriteSPI
709 .LM105:
710 0244 E7DF rcall WaitSPI
296:level2.c **** if ( data & 1 )
711 .stabn 68,0,296,.LM106-WriteSPI
712 .LM106:
713 0246 C0FF sbrs r28,0
714 0248 0FC0 rjmp .L71
297:level2.c **** sbi( PORTC , MOD_PIN );
715 .stabn 68,0,297,.LM107-WriteSPI
716 .LM107:
717 024a A99A sbi 53-0x20,1
718 .L72:
298:level2.c **** else
299:level2.c **** cbi( PORTC , MOD_PIN );
300:level2.c **** WaitSPI( );
719 .stabn 68,0,300,.LM108-WriteSPI
720 .LM108:
721 024c E3DF rcall WaitSPI
301:level2.c **** data >>= 1;
722 .stabn 68,0,301,.LM109-WriteSPI
723 .LM109:
724 024e D595 asr r29
725 0250 C795 ror r28
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 19
302:level2.c **** if ( bitcnt == 16 )
726 .stabn 68,0,302,.LM110-WriteSPI
727 .LM110:
728 0252 1031 cpi r17,lo8(16)
729 0254 39F0 breq .L77
730 .L73:
303:level2.c **** data = hi;
304:level2.c **** sbi( PORTC , DCLK_PIN );
731 .stabn 68,0,304,.LM111-WriteSPI
732 .LM111:
733 0256 A89A sbi 53-0x20,0
305:level2.c **** WaitSPI( );
734 .stabn 68,0,305,.LM112-WriteSPI
735 .LM112:
736 0258 DDDF rcall WaitSPI
737 025a 812F mov r24,r17
738 025c 1150 subi r17,lo8(-(-1))
739 025e 8823 tst r24
740 0260 81F7 brne .L74
741 0262 04C0 rjmp .L78
742 .stabn 68,0,303,.LM113-WriteSPI
743 .LM113:
744 .L77:
745 0264 E701 movw r28,r14
746 0266 F7CF rjmp .L73
747 .L71:
748 .stabn 68,0,299,.LM114-WriteSPI
749 .LM114:
750 0268 A998 cbi 53-0x20,1
751 026a F0CF rjmp .L72
752 .L78:
306:level2.c **** }
307:level2.c **** cbi( PORTC , DCLK_PIN ); //for the first time, DCLK is '1', for the next, enable D
753 .stabn 68,0,307,.LM115-WriteSPI
754 .LM115:
755 026c A898 cbi 53-0x20,0
308:level2.c **** WaitSPI( );
756 .stabn 68,0,308,.LM116-WriteSPI
757 .LM116:
758 026e D2DF rcall WaitSPI
309:level2.c **** cbi( PORTC , MOD_PIN );
759 .stabn 68,0,309,.LM117-WriteSPI
760 .LM117:
761 0270 A998 cbi 53-0x20,1
310:level2.c **** }
762 .stabn 68,0,310,.LM118-WriteSPI
763 .LM118:
764 .LBE7:
765 /* epilogue: frame size=0 */
766 0272 DF91 pop r29
767 0274 CF91 pop r28
768 0276 1F91 pop r17
769 0278 FF90 pop r15
770 027a EF90 pop r14
771 027c 0895 ret
772 /* epilogue end (size=6) */
773 /* function WriteSPI size 44 (33) */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccSOaaaa.s page 20
774 .size WriteSPI, .-WriteSPI
775 .stabs "data:r(4,3)",64,0,281,28
776 .stabs "bitcnt:r(4,2)",64,0,282,17
777 .stabn 192,0,0,.LBB7-WriteSPI
778 .stabn 224,0,0,.LBE7-WriteSPI
779 .Lscope8:
780 .stabs "",36,0,0,.Lscope8-WriteSPI
781 .stabs "ISOCRCA:F(4,4)",36,0,320,ISOCRCA
782 .stabs "data:P(1,1)=*(4,2)",64,0,319,26
783 .stabs "len:P(4,2)",64,0,319,22
784 .global ISOCRCA
785 .type ISOCRCA, @function
786 ISOCRCA:
311:level2.c ****
312:level2.c **** // ********************************************************************************************
313:level2.c **** // Description : Extracts decoded data of type A from capture.decoded_data to data_buffer
314:level2.c **** // in bytes.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -