⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 level2.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取TYPE B类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -