📄 sdi.txt
字号:
;;;263 {
;;;264 RECMDD7:
|L1.680|
0002a8 e1a00000 NOP
;;;265 rSDICARG=0<<16; //CMD7(RCA,stuff bit)
|L1.684|
0002ac e3a00000 MOV r0,#0
0002b0 e3a01446 MOV r1,#0x46000000
0002b4 e5810008 STR r0,[r1,#8]
;;;266 rSDICCON=(0x1<<8)|0x47; //no_resp, start, CMD7
0002b8 e59f00ec LDR r0,|L1.940|
0002bc e3a01446 MOV r1,#0x46000000
0002c0 e581000c STR r0,[r1,#0xc]
;;;267
;;;268 //-- Check end of CMD7
;;;269 if(!Chk_CMDend(7, 0))
0002c4 e3a01000 MOV r1,#0
0002c8 e3a00007 MOV r0,#7
0002cc ebfffffe BL Chk_CMDend
0002d0 e3500000 CMP r0,#0
0002d4 1a000000 BNE |L1.732|
;;;270 goto RECMDD7;
0002d8 eafffff3 B |L1.684|
;;;271 rSDICSTA=0x800; // Clear cmd_end(no rsp)
|L1.732|
0002dc e3a00e80 MOV r0,#0x800
0002e0 e3a01446 MOV r1,#0x46000000
0002e4 e5810010 STR r0,[r1,#0x10]
;;;272 }
;;;273 }
|L1.744|
0002e8 e8bd8010 LDMFD sp!,{r4,pc}
ENDP
View_Rx_buf PROC
;;;117 void View_Rx_buf()
;;;118 {
0002ec e92d4038 STMFD sp!,{r3-r5,lr}
;;;119 //-- Display Rx buffer
;;;120 int i,error=0;
0002f0 e3a05000 MOV r5,#0
;;;121 Tx_buffer=(int *)SDI_Tx_buffer;
0002f4 e3a00544 MOV r0,#0x11000000
0002f8 e59f10b0 LDR r1,|L1.944|
0002fc e5810000 STR r0,[r1,#0] ; Tx_buffer
;;;122 Rx_buffer=(int *)SDI_Rx_buffer;
000300 e3a00546 MOV r0,#0x11800000
000304 e59f10a8 LDR r1,|L1.948|
000308 e5810000 STR r0,[r1,#0] ; Rx_buffer
;;;123
;;;124 Uart_Printf("Check Rx data\n");
00030c e28f00a4 ADR r0,|L1.952|
000310 ebfffffe BL _printf
;;;125
;;;126 for(i=0;i<128*block;i++)
000314 e3a04000 MOV r4,#0
|L1.792|
000318 e59f00a8 LDR r0,|L1.968|
00031c e5900000 LDR r0,[r0,#0] ; block
000320 e1540380 CMP r4,r0,LSL #7
000324 2a00001a BCS |L1.916|
000328 ea000001 B |L1.820|
|L1.812|
00032c e2844001 ADD r4,r4,#1
000330 eafffff8 B |L1.792|
;;;127 {
;;;128 if(Rx_buffer[i] != Tx_buffer[i])
|L1.820|
000334 e59f0078 LDR r0,|L1.948|
000338 e5900000 LDR r0,[r0,#0] ; Rx_buffer
00033c e7900104 LDR r0,[r0,r4,LSL #2]
000340 e59f1068 LDR r1,|L1.944|
000344 e5911000 LDR r1,[r1,#0] ; Tx_buffer
000348 e7911104 LDR r1,[r1,r4,LSL #2]
00034c e1500001 CMP r0,r1
000350 0a00000c BEQ |L1.904|
;;;129 {
;;;130 Uart_Printf("\nTx/Rx error\n");
000354 e28f0070 ADR r0,|L1.972|
000358 ebfffffe BL _printf
;;;131 Uart_Printf("%d:Tx-0x%08x, Rx-0x%08x\n",i,Tx_buffer[i], Rx_buffer[i]);
00035c e59f0050 LDR r0,|L1.948|
000360 e5900000 LDR r0,[r0,#0] ; Rx_buffer
000364 e7903104 LDR r3,[r0,r4,LSL #2]
000368 e59f0040 LDR r0,|L1.944|
00036c e5900000 LDR r0,[r0,#0] ; Tx_buffer
000370 e7902104 LDR r2,[r0,r4,LSL #2]
000374 e1a01004 MOV r1,r4
000378 e28f005c ADR r0,|L1.988|
00037c ebfffffe BL _printf
;;;132 error=1;
000380 e3a05001 MOV r5,#1
;;;133 break;
000384 ea000002 B |L1.916|
;;;134 }
;;;135 Uart_Printf(".");
|L1.904|
000388 e28f0068 ADR r0,|L1.1016|
00038c ebfffffe BL _printf
;;;136 }
000390 eaffffe5 B |L1.812|
;;;137 if(!error)
|L1.916|
000394 e3550000 CMP r5,#0
000398 1a000001 BNE |L1.932|
;;;138 Uart_Printf(" O.K.\n");
00039c e28f0058 ADR r0,|L1.1020|
0003a0 ebfffffe BL _printf
;;;139 }
|L1.932|
0003a4 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.936|
0003a8 00000347 DCD 0x00000347
|L1.940|
0003ac 00000147 DCD 0x00000147
|L1.944|
0003b0 0000000c DCD ||.bss$2|| + 12
|L1.948|
0003b4 00000010 DCD ||.bss$2|| + 16
|L1.952|
0003b8 63656843 DCB "Chec"
0003bc 7852206b DCB "k Rx"
0003c0 74616420 DCB " dat"
0003c4 00000a61 DCB "a\n\0\0"
|L1.968|
0003c8 0000001c DCD ||.bss$2|| + 28
|L1.972|
0003cc 2f78540a DCB "\nTx/"
0003d0 65207852 DCB "Rx e"
0003d4 726f7272 DCB "rror"
0003d8 0000000a DCB "\n\0\0\0"
|L1.988|
0003dc 543a6425 DCB "%d:T"
0003e0 78302d78 DCB "x-0x"
0003e4 78383025 DCB "%08x"
0003e8 7852202c DCB ", Rx"
0003ec 2578302d DCB "-0x%"
0003f0 0a783830 DCB "08x\n"
0003f4 00000000 DCB "\0\0\0\0"
|L1.1016|
0003f8 0000002e DCB ".\0\0\0"
|L1.1020|
0003fc 4b2e4f20 DCB " O.K"
000400 00000a2e DCB ".\n\0\0"
ENDP
Rd_Stream PROC
;;;481 void Rd_Stream(void) // only for MMC, 3blk read
;;;482 {
000404 e92d4038 STMFD sp!,{r3-r5,lr}
;;;483 int i;
;;;484 int status, rd_cnt=0;
000408 e3a04000 MOV r4,#0
;;;485
;;;486 if(MMC!=1)
00040c e59f01b4 LDR r0,|L1.1480|
000410 e5900000 LDR r0,[r0,#0] ; MMC
000414 e3500001 CMP r0,#1
000418 0a000002 BEQ |L1.1064|
;;;487 {
;;;488 Uart_Printf("Stream read command supports only MMC!\n");
00041c e28f0f6a ADR r0,|L1.1484|
000420 ebfffffe BL _printf
;;;489 return;
;;;490 }
;;;491 Uart_Printf("\n[Stream read test]\n");
;;;492
;;;493 RECMD11:
;;;494 // rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(2<<12);
;;;495 rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(1<<14)|(2<<12);
;;;496
;;;497
;;;498 rSDICARG=0x0; // CMD11(addr)
;;;499 rSDICCON=(0x1<<9)|(0x1<<8)|0x4b; //sht_resp, wait_resp, dat, start, CMD11
;;;500
;;;501 while(rd_cnt<128*block)
;;;502 {
;;;503 if( (rSDIDSTA&0x20) == 0x20 )
;;;504 {
;;;505 Uart_Printf("Rread timeout error");
;;;506 return ;
;;;507 }
;;;508
;;;509 status=rSDIFSTA;
;;;510 if((status&0x1000)==0x1000)
;;;511 {
;;;512 //*Rx_buffer++=rSDIDAT;
;;;513 //rd_cnt++;
;;;514 Rx_buffer[rd_cnt++]=rSDIDAT;
;;;515 }
;;;516 }
;;;517
;;;518 //-- Check end of CMD11
;;;519 if(!Chk_CMDend(11, 1))
;;;520 goto RECMD11;
;;;521 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;522
;;;523 //-- Check end of DATA
;;;524 // rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(1<<14)|(0<<12);
;;;525 rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16); //YH 040220
;;;526 rSDIDCON=rSDIDCON&~(7<<12); //YH 040220, no operation, data ready
;;;527
;;;528 while( rSDIDSTA&0x3 !=0x0 );
;;;529 if(rSDIDSTA!=0)
;;;530 Uart_Printf("rSDIDSTA=0x%x\n", rSDIDSTA);
;;;531 rSDIDSTA=0xff; //YH 040221
;;;532
;;;533 STRCMD12:
;;;534 //--Stop cmd(CMD12)
;;;535 rSDICARG=0x0; //CMD12(stuff bit)
;;;536 rSDICCON=(0x1<<9)|(0x1<<8)|0x4c; //sht_resp, wait_resp, start, CMD12
;;;537
;;;538 //-- Check end of CMD12
;;;539 if(!Chk_CMDend(12, 1))
;;;540 goto STRCMD12;
;;;541 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;542 /*
;;;543 //-- Display Rx data
;;;544 //Uart_Printf("\nRx data\n");
;;;545 for(i=0;i<128*2;i++)
;;;546 {
;;;547 if(Rx_buffer[i] != Tx_buffer[i])
;;;548 {
;;;549 Uart_Printf("%08x, %08x\n",Tx_buffer[i], Rx_buffer[i]);
;;;550 break;
;;;551 }
;;;552 }
;;;553 */
;;;554
;;;555 Uart_Printf("rSDIFSTA1=0x%x\n", rSDIFSTA); //YH 040221
;;;556 rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221
;;;557 Uart_Printf("rSDIFSTA2=0x%x\n", rSDIFSTA); //YH 040221
;;;558
;;;559 Uart_Printf("\n--End stream read test\n");
;;;560 }
|L1.1060|
000424 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.1064|
000428 e28f0f71 ADR r0,|L1.1524| ;491
00042c ebfffffe BL _printf ;491
000430 e1a00000 NOP ;493
|L1.1076|
000434 e59f01d0 LDR r0,|L1.1548| ;495
000438 e3a01446 MOV r1,#0x46000000 ;495
00043c e581002c STR r0,[r1,#0x2c] ;495
000440 e3a00000 MOV r0,#0 ;498
000444 e3a01446 MOV r1,#0x46000000 ;498
000448 e5810008 STR r0,[r1,#8] ;498
00044c e59f01bc LDR r0,|L1.1552| ;499
000450 e3a01446 MOV r1,#0x46000000 ;499
000454 e581000c STR r0,[r1,#0xc] ;499
000458 e1a00000 NOP ;501
|L1.1116|
00045c e51f009c LDR r0,|L1.968| ;501
000460 e5900000 LDR r0,[r0,#0] ;501 ; block
000464 e1540380 CMP r4,r0,LSL #7 ;501
000468 2a000012 BCS |L1.1208| ;501
00046c e3a00446 MOV r0,#0x46000000 ;503
000470 e5900034 LDR r0,[r0,#0x34] ;503
000474 e3100020 TST r0,#0x20 ;503
000478 0a000002 BEQ |L1.1160| ;503
00047c e28f0f64 ADR r0,|L1.1556| ;505
000480 ebfffffe BL _printf ;505
000484 eaffffe6 B |L1.1060| ;506
|L1.1160|
000488 e3a00446 MOV r0,#0x46000000 ;509
00048c e5905038 LDR r5,[r0,#0x38] ;509
000490 e3150d40 TST r5,#0x1000 ;510
000494 0a000006 BEQ |L1.1204| ;510
000498 e3a00446 MOV r0,#0x46000000 ;514
00049c e5902040 LDR r2,[r0,#0x40] ;514
0004a0 e1a00004 MOV r0,r4 ;514
0004a4 e2844001 ADD r4,r4,#1 ;514
0004a8 e51f10fc LDR r1,|L1.948| ;514
0004ac e5911000 LDR r1,[r1,#0] ;514 ; Rx_buffer
0004b0 e7812100 STR r2,[r1,r0,LSL #2] ;514
|L1.1204|
0004b4 eaffffe8 B |L1.1116| ;516
|L1.1208|
0004b8 e3a01001 MOV r1,#1 ;519
0004bc e3a0000b MOV r0,#0xb ;519
0004c0 ebfffffe BL Chk_CMDend ;519
0004c4 e3500000 CMP r0,#0 ;519
0004c8 1a000000 BNE |L1.1232| ;519
0004cc eaffffd8 B |L1.1076| ;520
|L1.1232|
0004d0 e3a00ea0 MOV r0,#0xa00 ;521
0004d4 e3a01446 MOV r1,#0x46000000 ;521
0004d8 e5810010 STR r0,[r1,#0x10] ;521
0004dc e3a00888 MOV r0,#0x880000 ;525
0004e0 e3a01446 MOV r1,#0x46000000 ;525
0004e4 e581002c STR r0,[r1,#0x2c] ;525
0004e8 e3a00446 MOV r0,#0x46000000 ;526
0004ec e590002c LDR r0,[r0,#0x2c] ;526
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -