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

📄 level3.lst

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 LST
📖 第 1 页 / 共 5 页
字号:
 383 0170 B695      	1:	lsr r27
 384 0172 A795      		ror r26
 385 0174 9795      		ror r25
 386 0176 8795      		ror r24
 387 0178 2A95      		dec r18
 388 017a D1F7      		brne 1b
 389 017c 9C01      		movw r18,r24
 390 017e 2F5F      		subi r18,lo8(-(1))
 391 0180 3F4F      		sbci r19,hi8(-(1))
 177:level3.c      **** 
 178:level3.c      ****     decode_number = flags & 3;//////decode_number = 0x02;
 392               		.stabn 68,0,178,.LM60-Compute_Timeouts
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 11


 393               	.LM60:
 394 0182 8C2F      		mov r24,r28
 395 0184 8370      		andi r24,lo8(3)
 396 0186 8093 0000 		sts decode_number,r24
 179:level3.c      **** 
 180:level3.c      ****     if ( decode_number & 2 ) 
 397               		.stabn 68,0,180,.LM61-Compute_Timeouts
 398               	.LM61:
 399 018a 9927      		clr r25
 400 018c 8270      		andi r24,lo8(2)
 401 018e 9070      		andi r25,hi8(2)
 402 0190 892B      		or r24,r25
 403 0192 41F0      		breq .L28
 181:level3.c      ****     {
 182:level3.c      ****         halfDataRate    = 288;             //high data rates
 404               		.stabn 68,0,182,.LM62-Compute_Timeouts
 405               	.LM62:
 406 0194 80E2      		ldi r24,lo8(288)
 407 0196 91E0      		ldi r25,hi8(288)
 408 0198 9093 0000 		sts (halfDataRate)+1,r25
 409 019c 8093 0000 		sts halfDataRate,r24
 183:level3.c      ****         pulsesPerBit    = 8;
 410               		.stabn 68,0,183,.LM63-Compute_Timeouts
 411               	.LM63:
 412 01a0 88E0      		ldi r24,lo8(8)
 413 01a2 07C0      		rjmp .L30
 414               	.L28:
 184:level3.c      ****     } 
 185:level3.c      ****     else 
 186:level3.c      ****     {
 187:level3.c      ****         halfDataRate    = 288 * 4;         //low data rates
 415               		.stabn 68,0,187,.LM64-Compute_Timeouts
 416               	.LM64:
 417 01a4 80E8      		ldi r24,lo8(1152)
 418 01a6 94E0      		ldi r25,hi8(1152)
 419 01a8 9093 0000 		sts (halfDataRate)+1,r25
 420 01ac 8093 0000 		sts halfDataRate,r24
 188:level3.c      ****         pulsesPerBit    = 32;
 421               		.stabn 68,0,188,.LM65-Compute_Timeouts
 422               	.LM65:
 423 01b0 80E2      		ldi r24,lo8(32)
 424               	.L30:
 425 01b2 8093 0000 		sts pulsesPerBit,r24
 189:level3.c      ****     }
 190:level3.c      ****     maxTGeneral     = pom;
 426               		.stabn 68,0,190,.LM66-Compute_Timeouts
 427               	.LM66:
 428 01b6 3093 0000 		sts (maxTGeneral)+1,r19
 429 01ba 2093 0000 		sts maxTGeneral,r18
 191:level3.c      ****     maxTwa1ee       = write_tag_memory_delay + pom;
 430               		.stabn 68,0,191,.LM67-Compute_Timeouts
 431               	.LM67:
 432 01be 8091 0000 		lds r24,write_tag_memory_delay
 433 01c2 9091 0000 		lds r25,(write_tag_memory_delay)+1
 434 01c6 820F      		add r24,r18
 435 01c8 931F      		adc r25,r19
 436 01ca 9093 0000 		sts (maxTwa1ee)+1,r25
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 12


 437 01ce 8093 0000 		sts maxTwa1ee,r24
 192:level3.c      **** 
 193:level3.c      **** }
 438               		.stabn 68,0,193,.LM68-Compute_Timeouts
 439               	.LM68:
 440               	.LBE4:
 441               	/* epilogue: frame size=0 */
 442 01d2 CF91      		pop r28
 443 01d4 0895      		ret
 444               	/* epilogue end (size=2) */
 445               	/* function Compute_Timeouts size 97 (94) */
 446               		.size	Compute_Timeouts, .-Compute_Timeouts
 447               		.stabs	"pom:r(4,4)",64,0,161,18
 448               		.stabs	"corr:r(4,4)",64,0,162,24
 449               		.stabn	192,0,0,.LBB4-Compute_Timeouts
 450               		.stabn	224,0,0,.LBE4-Compute_Timeouts
 451               	.Lscope1:
 452               		.stabs	"",36,0,0,.Lscope1-Compute_Timeouts
 453               		.stabs	"Send:F(0,20)",36,0,199,Send
 454               		.stabs	"len:P(4,2)",64,0,198,18
 455               		.stabs	"wait_time:P(4,4)",64,0,198,14
 456               	.global	Send
 457               		.type	Send, @function
 458               	Send:
 194:level3.c      **** 
 195:level3.c      **** //--------------------------------------------------------------
 196:level3.c      **** //send command and wait
 197:level3.c      **** //
 198:level3.c      **** void Send( uint8_t len , uint16_t wait_time ) 
 199:level3.c      **** {
 459               		.stabn 68,0,199,.LM69-Send
 460               	.LM69:
 461               	/* prologue: frame size=0 */
 462 01d6 DF92      		push r13
 463 01d8 EF92      		push r14
 464 01da FF92      		push r15
 465 01dc 0F93      		push r16
 466 01de 1F93      		push r17
 467 01e0 CF93      		push r28
 468 01e2 DF93      		push r29
 469               	/* prologue end (size=7) */
 470 01e4 282F      		mov r18,r24
 471 01e6 7B01      		movw r14,r22
 200:level3.c      ****     uint8_t fwd_bit_count;
 201:level3.c      ****     int i;
 202:level3.c      ****     forward_ptr = data_buffer;
 472               		.stabn 68,0,202,.LM70-Send
 473               	.LM70:
 474               	.LBB5:
 475 01e8 80E0      		ldi r24,lo8(data_buffer)
 476 01ea 90E0      		ldi r25,hi8(data_buffer)
 477 01ec 9093 0000 		sts (forward_ptr)+1,r25
 478 01f0 8093 0000 		sts forward_ptr,r24
 203:level3.c      ****     fwd_bit_count = 0;
 479               		.stabn 68,0,203,.LM71-Send
 480               	.LM71:
 481 01f4 DD24      		clr r13
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 13


 204:level3.c      **** 
 205:level3.c      ****     for ( i = 0 ; i < len ; i++ ) 
 482               		.stabn 68,0,205,.LM72-Send
 483               	.LM72:
 484 01f6 3327      		clr r19
 485 01f8 2115      		cp r18,__zero_reg__
 486 01fa 3105      		cpc r19,__zero_reg__
 487 01fc 51F0      		breq .L39
 488 01fe 00E0      		ldi r16,lo8(cmd_message)
 489 0200 10E0      		ldi r17,hi8(cmd_message)
 490 0202 E901      		movw r28,r18
 491               	.L36:
 206:level3.c      ****         fwd_bit_count += Prepare_Data( cmd_message[ i ] );
 492               		.stabn 68,0,206,.LM73-Send
 493               	.LM73:
 494 0204 F801      		movw r30,r16
 495 0206 8191      		ld r24,Z+
 496 0208 8F01      		movw r16,r30
 497 020a 00D0      		rcall Prepare_Data
 498 020c D80E      		add r13,r24
 499               		.stabn 68,0,205,.LM74-Send
 500               	.LM74:
 501 020e 2197      		sbiw r28,1
 502 0210 C9F7      		brne .L36
 503               	.L39:
 207:level3.c      **** 
 208:level3.c      ****     Compute_Timeouts( cmd_message[ 0 ] );
 504               		.stabn 68,0,208,.LM75-Send
 505               	.LM75:
 506 0212 8091 0000 		lds r24,cmd_message
 507 0216 7EDF      		rcall Compute_Timeouts
 209:level3.c      ****     ClearCaptureBuffers( );
 508               		.stabn 68,0,209,.LM76-Send
 509               	.LM76:
 510 0218 00D0      		rcall ClearCaptureBuffers
 210:level3.c      **** 
 211:level3.c      ****     maxCaptureTimeLow = ( uint8_t )maxTGeneral; 
 511               		.stabn 68,0,211,.LM77-Send
 512               	.LM77:
 513 021a 8091 0000 		lds r24,maxTGeneral
 514 021e 8093 0000 		sts maxCaptureTimeLow,r24
 212:level3.c      ****     maxCaptureTimeHi = maxTGeneral >> 8; 
 515               		.stabn 68,0,212,.LM78-Send
 516               	.LM78:
 517 0222 8091 0000 		lds r24,maxTGeneral
 518 0226 9091 0000 		lds r25,(maxTGeneral)+1
 519 022a 892F      		mov r24,r25
 520 022c 9927      		clr r25
 521 022e 8093 0000 		sts maxCaptureTimeHi,r24
 213:level3.c      **** 
 214:level3.c      ****     SendForward( fwd_bit_count );
 522               		.stabn 68,0,214,.LM79-Send
 523               	.LM79:
 524 0232 8D2D      		mov r24,r13
 525 0234 00D0      		rcall SendForward
 215:level3.c      **** 
 216:level3.c      ****     if ( wait_time != 0 ) 
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 14


 526               		.stabn 68,0,216,.LM80-Send
 527               	.LM80:
 528 0236 E114      		cp r14,__zero_reg__
 529 0238 F104      		cpc r15,__zero_reg__
 530 023a 11F0      		breq .L31
 217:level3.c      ****     	  Wait( wait_time );
 531               		.stabn 68,0,217,.LM81-Send
 532               	.LM81:
 533 023c C701      		movw r24,r14
 534 023e 00D0      		rcall Wait
 218:level3.c      **** }
 535               		.stabn 68,0,218,.LM82-Send
 536               	.LM82:
 537               	.L31:
 538               	.LBE5:
 539               	/* epilogue: frame size=0 */
 540 0240 DF91      		pop r29
 541 0242 CF91      		pop r28
 542 0244 1F91      		pop r17
 543 0246 0F91      		pop r16
 544 0248 FF90      		pop r15
 545 024a EF90      		pop r14
 546 024c DF90      		pop r13
 547 024e 0895      		ret
 548               	/* epilogue end (size=8) */
 549               	/* function Send size 62 (47) */
 550               		.size	Send, .-Send
 551               		.stabs	"fwd_bit_count:r(4,2)",64,0,200,13
 552               		.stabs	"i:r(0,1)",64,0,201,28
 553               		.stabn	192,0,0,.LBB5-Send
 554               		.stabn	224,0,0,.LBE5-Send
 555               	.Lscope2:
 556               		.stabs	"",36,0,0,.Lscope2-Send
 557               		.stabs	"AddCRC:F(0,20)",36,0,224,AddCRC
 558               		.stabs	"where:P(4,2)",64,0,223,17
 559               	.global	AddCRC
 560               		.type	AddCRC, @function
 561               	AddCRC:
 219:level3.c      **** 
 220:level3.c      **** 
 221:level3.c      **** //--------------------------------------------------------------
 222:level3.c      **** // Appends crc to ISO15693 command
 223:level3.c      **** void AddCRC( uint8_t where ) 
 224:level3.c      **** {  
 562               		.stabn 68,0,224,.LM83-AddCRC
 563               	.LM83:
 564               	/* prologue: frame size=0 */
 565 0250 1F93      		push r17
 566               	/* prologue end (size=1) */
 567 0252 182F      		mov r17,r24
 225:level3.c      ****     uint16_t crc = CRC( cmd_message , where );
 568               		.stabn 68,0,225,.LM84-AddCRC
 569               	.LM84:
 570               	.LBB6:
 571 0254 682F      		mov r22,r24
 572 0256 80E0      		ldi r24,lo8(cmd_message)
 573 0258 90E0      		ldi r25,hi8(cmd_message)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqgcaaa.s 			page 15


 574 025a 00D0      		rcall CRC
 575 025c 9C01      		movw r18,r24
 226:level3.c      ****     cmd_message[ where++ ] = crc & 255;
 576               		.stabn 68,0,226,.LM85-AddCRC
 577               	.LM85:
 578 025e 80E0      		ldi r24,lo8(cmd_message)
 579 0260 90E0      		ldi r25,hi8(cmd_message)
 580 0262 FC01      		movw r30,r24
 581 0264 E10F      		add r30,r17
 582 0266 F11D      		adc r31,__zero_reg__
 583 0268 2083      		st Z,r18
 584 026a 1F5F      		subi r17,lo8(-(1))
 227:level3.c      ****     cmd_message[ where ] = crc >> 8;
 585               		.stabn 68,0,227,.LM86-AddCRC
 586               	.LM86:
 587 026c FC01      		movw r30,r24
 588 026e E10F      		add r30,r17
 589 0270 F11D      		adc r31,__zero_reg__
 590 0272 832F      		mov r24,r19
 591 0274 9927      		clr r25
 592 0276 8083      		st Z,r24
 228:level3.c      **** 
 229:level3.c      **** }
 593               		.stabn 68,0,229,.LM87-AddCRC
 594               	.LM87:
 595               	.LBE6:
 596               	/* epilogue: frame size=0 */
 597 0278 1F91      		pop r17
 598 027a 0895      		ret
 599               	/* epilogue end (size=2) */
 600               	/* function AddCRC size 22 (19) */
 601               		.size	AddCRC, .-AddCRC
 602               		.stabs	"crc:r(4,4)",64,0,225,18
 603               		.stabn	192,0,0,.LBB6-AddCRC
 604               		.stabn	224,0,0,.LBE6-AddCRC
 605               	.Lscope3:
 606               		.stabs	"",36,0,0,.Lscope3-AddCRC
 607               		.stabs	"TINVENTORY:t(1,1)=(1,2)=s16mask_len:(4,2),0,8;value:(4,2),8,8;mask:(1,3)=ar(12,3);0;11;(4,
 608               		.stabs	"InventoryStep_version4:F(4,1)",36,0,261,InventoryStep_version4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -