📄 level2.lst
字号:
699 022e 9B07 cpc r25,r27
700 0230 3CF3 brlt .L75
701 0232 03C0 rjmp .L77
702 .L72:
242:level2.c **** else
243:level2.c **** crc = ( crc >> 1 );
703 .stabn 68,0,243,.LM100-CRC
704 .LM100:
705 0234 3695 lsr r19
706 0236 2795 ror r18
707 0238 F0CF rjmp .L70
708 .L77:
244:level2.c **** }
245:level2.c **** }
246:level2.c **** return ~crc;
709 .stabn 68,0,246,.LM101-CRC
710 .LM101:
711 023a 2095 com r18
712 023c 3095 com r19
247:level2.c **** }
713 .stabn 68,0,247,.LM102-CRC
714 .LM102:
715 .LBE7:
716 023e C901 movw r24,r18
717 /* epilogue: frame size=0 */
718 0240 DF91 pop r29
719 0242 CF91 pop r28
720 0244 0895 ret
721 /* epilogue end (size=3) */
722 /* function CRC size 52 (47) */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 18
723 .size CRC, .-CRC
724 .stabs "crc:r(4,4)",64,0,231,18
725 .stabs "i:r(4,1)",64,0,232,22
726 .stabs "j:r(4,1)",64,0,232,24
727 .stabn 192,0,0,.LBB7-CRC
728 .stabn 224,0,0,.LBE7-CRC
729 .Lscope9:
730 .stabs "",36,0,0,.Lscope9-CRC
731 .stabs "ExtractTypeBData:F(4,2)",36,0,258,ExtractTypeBData
732 .stabs "size:P(4,2)",64,0,257,18
733 .global ExtractTypeBData
734 .type ExtractTypeBData, @function
735 ExtractTypeBData:
248:level2.c ****
249:level2.c ****
250:level2.c ****
251:level2.c ****
252:level2.c ****
253:level2.c **** // ==================================================================
254:level2.c ****
255:level2.c **** #define RAW_DATA_START 0
256:level2.c ****
257:level2.c **** uint8_t ExtractTypeBData( uint8_t size )
258:level2.c **** {
736 .stabn 68,0,258,.LM103-ExtractTypeBData
737 .LM103:
738 /* prologue: frame size=0 */
739 /* prologue end (size=0) */
740 0246 282F mov r18,r24
259:level2.c **** uint8_t value = 0;
741 .stabn 68,0,259,.LM104-ExtractTypeBData
742 .LM104:
743 .LBB8:
744 0248 90E0 ldi r25,lo8(0)
260:level2.c **** uint8_t pom;
261:level2.c **** uint8_t phase;
262:level2.c **** uint8_t phase_position;
263:level2.c **** uint8_t start;
264:level2.c **** uint8_t ptr = 0;
745 .stabn 68,0,264,.LM105-ExtractTypeBData
746 .LM105:
747 024a 492F mov r20,r25
265:level2.c **** start = 0;
748 .stabn 68,0,265,.LM106-ExtractTypeBData
749 .LM106:
750 024c 392F mov r19,r25
266:level2.c **** phase = phase_position = 0;
751 .stabn 68,0,266,.LM107-ExtractTypeBData
752 .LM107:
753 024e 892F mov r24,r25
754 0250 592F mov r21,r25
267:level2.c ****
268:level2.c **** while ( size > 0 )
755 .stabn 68,0,268,.LM108-ExtractTypeBData
756 .LM108:
757 0252 2223 tst r18
758 0254 A1F1 breq .L82
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 19
759 .L96:
269:level2.c **** {
270:level2.c **** pom = raw_data[ start ];
760 .stabn 68,0,270,.LM109-ExtractTypeBData
761 .LM109:
762 0256 E32F mov r30,r19
763 0258 FF27 clr r31
764 025a E050 subi r30,lo8(-(raw_data))
765 025c F040 sbci r31,hi8(-(raw_data))
766 025e E081 ld r30,Z
271:level2.c **** value >>= 1;
767 .stabn 68,0,271,.LM110-ExtractTypeBData
768 .LM110:
769 0260 4695 lsr r20
272:level2.c **** if ( pom != 0 )
770 .stabn 68,0,272,.LM111-ExtractTypeBData
771 .LM111:
772 0262 E111 cpse r30,__zero_reg__
273:level2.c **** value |= 0x80;
773 .stabn 68,0,273,.LM112-ExtractTypeBData
774 .LM112:
775 0264 4068 ori r20,lo8(-128)
776 .L84:
274:level2.c **** size--;
777 .stabn 68,0,274,.LM113-ExtractTypeBData
778 .LM113:
779 0266 2150 subi r18,lo8(-(-1))
275:level2.c **** start++;
780 .stabn 68,0,275,.LM114-ExtractTypeBData
781 .LM114:
782 0268 3F5F subi r19,lo8(-(1))
276:level2.c ****
277:level2.c **** if ( phase == 0 )
783 .stabn 68,0,277,.LM115-ExtractTypeBData
784 .LM115:
785 026a 5523 tst r21
786 026c 59F4 brne .L85
278:level2.c **** { //SOF check
279:level2.c **** if ( pom != 0 )
787 .stabn 68,0,279,.LM116-ExtractTypeBData
788 .LM116:
789 026e EE23 tst r30
790 0270 31F5 brne .L82
280:level2.c **** break;
281:level2.c **** if ( phase_position++ == 9 )
791 .stabn 68,0,281,.LM117-ExtractTypeBData
792 .LM117:
793 0272 8F5F subi r24,lo8(-(1))
794 0274 8A30 cpi r24,lo8(10)
795 0276 19F0 breq .L99
796 .L81:
797 0278 2223 tst r18
798 027a 69F7 brne .L96
799 027c 20C0 rjmp .L82
282:level2.c **** {
283:level2.c **** phase = 1;
800 .stabn 68,0,283,.LM118-ExtractTypeBData
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 20
801 .LM118:
802 .L99:
803 027e 51E0 ldi r21,lo8(1)
284:level2.c **** phase_position = 0;
804 .stabn 68,0,284,.LM119-ExtractTypeBData
805 .LM119:
806 .L98:
285:level2.c **** }
286:level2.c **** }
287:level2.c **** else if ( phase == 1 )
288:level2.c **** { //extra guard time and frame EOF skip
289:level2.c **** if ( pom == 0 )
290:level2.c **** {
291:level2.c **** if ( phase_position == 0 )
292:level2.c **** break; //is zero => error
293:level2.c **** phase = 2;
294:level2.c **** phase_position = 0;
807 .stabn 68,0,294,.LM120-ExtractTypeBData
808 .LM120:
809 0280 8E2F mov r24,r30
810 0282 FACF rjmp .L81
811 .L85:
812 .stabn 68,0,287,.LM121-ExtractTypeBData
813 .LM121:
814 0284 5130 cpi r21,lo8(1)
815 0286 99F0 breq .L100
295:level2.c **** }
296:level2.c **** else
297:level2.c **** phase_position++;
298:level2.c **** }
299:level2.c **** else if ( phase == 2 )
816 .stabn 68,0,299,.LM122-ExtractTypeBData
817 .LM122:
818 0288 5230 cpi r21,lo8(2)
819 028a B1F7 brne .L81
300:level2.c **** {
301:level2.c **** if ( phase_position++ == 7 )
820 .stabn 68,0,301,.LM123-ExtractTypeBData
821 .LM123:
822 028c 8F5F subi r24,lo8(-(1))
823 028e 8830 cpi r24,lo8(8)
824 0290 11F0 breq .L101
825 .L95:
302:level2.c **** {
303:level2.c **** data_buffer[ ptr / 8 ] = value; //store the byte
304:level2.c **** phase = 1;
305:level2.c **** phase_position = 0;
306:level2.c **** }
307:level2.c **** ptr++;
826 .stabn 68,0,307,.LM124-ExtractTypeBData
827 .LM124:
828 0292 9F5F subi r25,lo8(-(1))
829 0294 F1CF rjmp .L81
830 .stabn 68,0,303,.LM125-ExtractTypeBData
831 .LM125:
832 .L101:
833 0296 892F mov r24,r25
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 21
834 0298 8695 lsr r24
835 029a 8695 lsr r24
836 029c 8695 lsr r24
837 029e E82F mov r30,r24
838 02a0 FF27 clr r31
839 02a2 E050 subi r30,lo8(-(data_buffer))
840 02a4 F040 sbci r31,hi8(-(data_buffer))
841 02a6 4083 st Z,r20
842 .stabn 68,0,304,.LM126-ExtractTypeBData
843 .LM126:
844 02a8 51E0 ldi r21,lo8(1)
845 .stabn 68,0,305,.LM127-ExtractTypeBData
846 .LM127:
847 02aa 80E0 ldi r24,lo8(0)
848 02ac F2CF rjmp .L95
849 .stabn 68,0,289,.LM128-ExtractTypeBData
850 .LM128:
851 .L100:
852 02ae EE23 tst r30
853 02b0 21F4 brne .L90
854 .stabn 68,0,291,.LM129-ExtractTypeBData
855 .LM129:
856 02b2 8823 tst r24
857 02b4 21F0 breq .L82
858 .stabn 68,0,293,.LM130-ExtractTypeBData
859 .LM130:
860 02b6 52E0 ldi r21,lo8(2)
861 02b8 E3CF rjmp .L98
862 .L90:
863 .stabn 68,0,297,.LM131-ExtractTypeBData
864 .LM131:
865 02ba 8F5F subi r24,lo8(-(1))
866 02bc DDCF rjmp .L81
867 .L82:
308:level2.c **** }
309:level2.c **** }
310:level2.c **** return ptr;
868 .stabn 68,0,310,.LM132-ExtractTypeBData
869 .LM132:
870 02be 892F mov r24,r25
871 02c0 9927 clr r25
311:level2.c **** }...
872 .stabn 68,0,311,.LM133-ExtractTypeBData
873 .LM133:
874 .LBE8:
875 /* epilogue: frame size=0 */
876 02c2 0895 ret
877 /* epilogue end (size=1) */
878 /* function ExtractTypeBData size 64 (63) */
879 .size ExtractTypeBData, .-ExtractTypeBData
880 .stabs "value:r(4,2)",64,0,259,20
881 .stabs "pom:r(4,2)",64,0,260,30
882 .stabs "phase:r(4,2)",64,0,261,21
883 .stabs "phase_position:r(4,2)",64,0,262,24
884 .stabs "start:r(4,2)",64,0,263,19
885 .stabs "ptr:r(4,2)",64,0,264,25
886 .stabn 192,0,0,.LBB8-ExtractTypeBData
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 22
887 .stabn 224,0,0,.LBE8-ExtractTypeBData
888 .Lscope10:
889 .stabs "",36,0,0,.Lscope10-ExtractTypeBData
890 .comm bufferClean,1,1
891 .comm raw_data,320,1
892 .comm forward_ptr,2,1
893 .comm data_buffer,128,1
894 .comm fwd_write_ptr,2,1
895 .stabs "bufferClean:G(4,2)",32,0,14,0
896 .stabs "raw_data:G(1,2)=ar(1,3)=r(1,3);0000000000000;0000000177777;;0;319;(4,2)",32,0,65,0
897 .stabs "forward_ptr:G(1,1)",32,0,15,0
898 .stabs "data_buffer:G(1,4)=ar(1,3);0;127;(4,2)",32,0,16,0
899 .stabs "captured_byte:r(4,2)",64,0,28,6
900 .stabs "captured_valid:r(4,2)",64,0,29,7
901 .stabs "captured_bit_count:r(4,2)",64,0,30,9
902 .stabs "fwd_write_ptr:G(1,1)",32,0,23,0
903 .text
904 .stabs "",100,0,0,Letext
905 Letext:
906 /* File "level2.c": code 356 = 0x0164 ( 312), prologues 17, epilogues 27 */
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s page 23
DEFINED SYMBOLS
*ABS*:00000000 level2.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:71 .text:00000000 __vector_8
*COM*:00000002 fwd_write_ptr
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:172 .text:00000076 SendForward
*COM*:00000080 data_buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:269 .text:000000ce ShiftFwdData
*COM*:00000002 forward_ptr
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:349 .text:00000124 Prepare_SOF
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:382 .text:0000013a Prepare_Data
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:420 .text:00000158 Prepare_EOF
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:439 .text:0000015e ClearCaptureBuffers
*COM*:00000140 raw_data
*COM*:00000001 bufferClean
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:479 .text:00000174 WaitSPI
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:516 .text:00000186 WriteSPI
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:634 .text:000001de CRC
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:735 .text:00000246 ExtractTypeBData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxcaaa.s:905 .text:000002c4 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
forward_link_type
fwd_B_timing
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -