📄 sdi.txt
字号:
0007c4 1afffffb BNE |L1.1976| ;757
0007c8 e3a0000a MOV r0,#0xa ;758
0007cc ebfffffe BL Delay ;758
0007d0 e3a00940 MOV r0,#0x100000 ;760
0007d4 e3a01446 MOV r1,#0x46000000 ;760
0007d8 e581002c STR r0,[r1,#0x2c] ;760
0007dc e3a00446 MOV r0,#0x46000000 ;761
0007e0 e590002c LDR r0,[r0,#0x2c] ;761
0007e4 e3c00c70 BIC r0,r0,#0x7000 ;761
0007e8 e3a01446 MOV r1,#0x46000000 ;761
0007ec e581002c STR r0,[r1,#0x2c] ;761
0007f0 e1a00000 NOP ;763
|L1.2036|
0007f4 e3a00446 MOV r0,#0x46000000 ;763
0007f8 e5900034 LDR r0,[r0,#0x34] ;763
0007fc e3100003 TST r0,#3 ;763
000800 1afffffb BNE |L1.2036| ;763
000804 e3a00446 MOV r0,#0x46000000 ;764
000808 e5900034 LDR r0,[r0,#0x34] ;764
00080c e3500000 CMP r0,#0 ;764
000810 0a000004 BEQ |L1.2088| ;764
000814 e3a00446 MOV r0,#0x46000000 ;765
000818 e5900034 LDR r0,[r0,#0x34] ;765
00081c e1a01000 MOV r1,r0 ;765
000820 e24f0f80 ADR r0,|L1.1576| ;765
000824 ebfffffe BL _printf ;765
|L1.2088|
000828 e3a000ff MOV r0,#0xff ;767
00082c e3a01446 MOV r1,#0x46000000 ;767
000830 e5810034 STR r0,[r1,#0x34] ;767
000834 e1a00000 NOP ;769
|L1.2104|
000838 e3a00a65 MOV r0,#0x65000 ;772
00083c e3a01446 MOV r1,#0x46000000 ;772
000840 e581002c STR r0,[r1,#0x2c] ;772
000844 e3a00000 MOV r0,#0 ;775
000848 e3a01446 MOV r1,#0x46000000 ;775
00084c e5810008 STR r0,[r1,#8] ;775
000850 e3a00fd3 MOV r0,#0x34c ;776
000854 e3a01446 MOV r1,#0x46000000 ;776
000858 e581000c STR r0,[r1,#0xc] ;776
00085c e3a01001 MOV r1,#1 ;779
000860 e3a0000c MOV r0,#0xc ;779
000864 ebfffffe BL Chk_CMDend ;779
000868 e3500000 CMP r0,#0 ;779
00086c 1a000000 BNE |L1.2164| ;779
000870 eafffff0 B |L1.2104| ;780
|L1.2164|
000874 e3a00ea0 MOV r0,#0xa00 ;781
000878 e3a01446 MOV r1,#0x46000000 ;781
00087c e5810010 STR r0,[r1,#0x10] ;781
000880 ebfffffe BL Chk_BUSYend ;784
000884 e3500000 CMP r0,#0 ;784
000888 1a000001 BNE |L1.2196| ;784
00088c e28f0060 ADR r0,|L1.2292| ;785
000890 ebfffffe BL _printf ;785
|L1.2196|
000894 e3a00008 MOV r0,#8 ;786
000898 e3a01446 MOV r1,#0x46000000 ;786
00089c e5810034 STR r0,[r1,#0x34] ;786
0008a0 e28f0054 ADR r0,|L1.2300| ;788
0008a4 ebfffffe BL _printf ;788
0008a8 eaffff9a B |L1.1816|
|L1.2220|
0008ac 65727453 DCB "Stre"
0008b0 77206d61 DCB "am w"
0008b4 65746972 DCB "rite"
0008b8 6d6f6320 DCB " com"
0008bc 646e616d DCB "mand"
0008c0 70757320 DCB " sup"
0008c4 74726f70 DCB "port"
0008c8 6e6f2073 DCB "s on"
0008cc 4d20796c DCB "ly M"
0008d0 0a21434d DCB "MC!\n"
0008d4 00000000 DCB "\0\0\0\0"
|L1.2264|
0008d8 74535b0a DCB "\n[St"
0008dc 6d616572 DCB "ream"
0008e0 69727720 DCB " wri"
0008e4 74206574 DCB "te t"
0008e8 5d747365 DCB "est]"
|L1.2284|
0008ec 0000000a DCB "\n\0\0\0"
|L1.2288|
0008f0 00907000 DCD 0x00907000
|L1.2292|
0008f4 6f727265 DCB "erro"
0008f8 00000a72 DCB "r\n\0\0"
|L1.2300|
0008fc 452d2d0a DCB "\n--E"
000900 5320646e DCB "nd S"
000904 61657274 DCB "trea"
000908 7277206d DCB "m wr"
00090c 20657469 DCB "ite "
000910 74736574 DCB "test"
000914 0000000a DCB "\n\0\0\0"
ENDP
Flush_Rx_buf PROC
;;;105 void Flush_Rx_buf(void)
;;;106 {
000918 e3a01546 MOV r1,#0x11800000
;;;107 //-- Flushing Rx buffer
;;;108 int i;
;;;109
;;;110 Rx_buffer=(int *)SDI_Rx_buffer;
00091c e51f2570 LDR r2,|L1.948|
000920 e5821000 STR r1,[r2,#0] ; Rx_buffer
;;;111
;;;112 for(i=0;i<2048;i++) //128[word]*16[blk]=8192[byte]
000924 e3a00000 MOV r0,#0
|L1.2344|
000928 e3500e80 CMP r0,#0x800
00092c aa000007 BGE |L1.2384|
000930 ea000001 B |L1.2364|
|L1.2356|
000934 e2800001 ADD r0,r0,#1
000938 eafffffa B |L1.2344|
;;;113 *(Rx_buffer+i)=0;
|L1.2364|
00093c e3a01000 MOV r1,#0
000940 e51f2594 LDR r2,|L1.948|
000944 e5922000 LDR r2,[r2,#0] ; Rx_buffer
000948 e7821100 STR r1,[r2,r0,LSL #2]
00094c eafffff8 B |L1.2356|
;;;114 //Uart_Printf("\n--End Rx buffer flush\n");
;;;115 }
|L1.2384|
000950 e12fff1e BX lr
ENDP
TR_Buf_new PROC
;;;92 void TR_Buf_new(void)
;;;93 {
000954 e52de004 STR lr,[sp,#-4]!
;;;94 //-- Tx & Rx Buffer initialize
;;;95 int i;
;;;96
;;;97 Tx_buffer = (int *)SDI_Tx_buffer;
000958 e3a00544 MOV r0,#0x11000000
00095c e51f15b4 LDR r1,|L1.944|
000960 e5810000 STR r0,[r1,#0] ; Tx_buffer
;;;98
;;;99 for(i=0;i<2048;i++) //128[word]*16[blk]=8192[byte]
000964 e3a03000 MOV r3,#0
|L1.2408|
000968 e3530e80 CMP r3,#0x800
00096c aa000006 BGE |L1.2444|
000970 ea000001 B |L1.2428|
|L1.2420|
000974 e2833001 ADD r3,r3,#1
000978 eafffffa B |L1.2408|
;;;100 *(Tx_buffer+i)=i;
|L1.2428|
00097c e51f05d4 LDR r0,|L1.944|
000980 e5900000 LDR r0,[r0,#0] ; Tx_buffer
000984 e7803103 STR r3,[r0,r3,LSL #2]
000988 eafffff9 B |L1.2420|
;;;101
;;;102 Flush_Rx_buf();
|L1.2444|
00098c ebfffffe BL Flush_Rx_buf
;;;103 }
000990 e49df004 LDR pc,[sp],#4
ENDP
Chk_DATend PROC
;;;848 int Chk_DATend(void)
;;;849 {
000994 e92d4010 STMFD sp!,{r4,lr}
;;;850 int finish;
;;;851
;;;852 finish=rSDIDSTA;
000998 e3a00446 MOV r0,#0x46000000
00099c e5900034 LDR r0,[r0,#0x34]
0009a0 e1a04000 MOV r4,r0
;;;853 while( !( ((finish&0x10)==0x10) | ((finish&0x20)==0x20) ))
0009a4 e1a00000 NOP
|L1.2472|
0009a8 e3a00001 MOV r0,#1
0009ac e0000244 AND r0,r0,r4,ASR #4
0009b0 e3a01001 MOV r1,#1
0009b4 e00112c4 AND r1,r1,r4,ASR #5
0009b8 e1900001 ORRS r0,r0,r1
0009bc 1a000003 BNE |L1.2512|
;;;854 // Chek timeout or data end
;;;855 finish=rSDIDSTA;
0009c0 e3a00446 MOV r0,#0x46000000
0009c4 e5900034 LDR r0,[r0,#0x34]
0009c8 e1a04000 MOV r4,r0
0009cc eafffff5 B |L1.2472|
;;;856
;;;857 if( (finish&0xfc) != 0x10 )
|L1.2512|
0009d0 e20400fc AND r0,r4,#0xfc
0009d4 e3500010 CMP r0,#0x10
0009d8 0a000007 BEQ |L1.2556|
;;;858 {
;;;859 Uart_Printf("DATA:finish=0x%x\n", finish);
0009dc e1a01004 MOV r1,r4
0009e0 e24f0fc1 ADR r0,|L1.1764|
0009e4 ebfffffe BL _printf
;;;860 rSDIDSTA=0xec; // Clear error state
0009e8 e3a000ec MOV r0,#0xec
0009ec e3a01446 MOV r1,#0x46000000
0009f0 e5810034 STR r0,[r1,#0x34]
;;;861 return 0;
0009f4 e3a00000 MOV r0,#0
;;;862 }
;;;863 return 1;
;;;864 }
|L1.2552|
0009f8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.2556|
0009fc e3a00001 MOV r0,#1 ;863
000a00 eafffffc B |L1.2552| ;863
ENDP
DMA_end PROC
;;;320 void __irq DMA_end(void)
;;;321 {
000a04 e92d0003 STMFD sp!,{r0,r1}
;;;322 rSUBSRCPND=(BIT_SUB_DMA2);
000a08 e3a00680 MOV r0,#0x8000000
000a0c e59f145c LDR r1,|L1.3696|
000a10 e5810018 STR r0,[r1,#0x18]
;;;323 ClearPending(BIT_DMA);
000a14 e3a00940 MOV r0,#0x100000
000a18 e1c11000 BIC r1,r1,r0
000a1c e5810000 STR r0,[r1,#0]
000a20 e1c10000 BIC r0,r1,r0
000a24 e5900010 LDR r0,[r0,#0x10]
000a28 e5810010 STR r0,[r1,#0x10]
000a2c e1a00001 MOV r0,r1
000a30 e5900010 LDR r0,[r0,#0x10]
;;;324
;;;325 TR_end=1;
000a34 e3a00001 MOV r0,#1
000a38 e59f1434 LDR r1,|L1.3700|
000a3c e5810000 STR r0,[r1,#0] ; TR_end
;;;326 }
000a40 e8bd0003 LDMFD sp!,{r0,r1}
000a44 e25ef004 SUBS pc,lr,#4
ENDP
Rd_Int PROC
;;;275 void __irq Rd_Int(void)
;;;276 {
000a48 e92d000f STMFD sp!,{r0-r3}
;;;277 U32 i,status;
;;;278
;;;279 status=rSDIFSTA;
000a4c e3a02446 MOV r2,#0x46000000
000a50 e5922038 LDR r2,[r2,#0x38]
000a54 e1a01002 MOV r1,r2
;;;280 if( (status&0x200) == 0x200 ) // Check Last interrupt?
000a58 e3110f80 TST r1,#0x200
000a5c 0a000019 BEQ |L1.2760|
;;;281 {
;;;282 for(i=(status & 0x7f)/4;i>0;i--)
000a60 e1a02c81 MOV r2,r1,LSL #25
000a64 e1a00da2 MOV r0,r2,LSR #27
|L1.2664|
000a68 e3500000 CMP r0,#0
000a6c 0a00000f BEQ |L1.2736|
000a70 ea000001 B |L1.2684|
|L1.2676|
000a74 e2400001 SUB r0,r0,#1
000a78 eafffffa B |L1.2664|
;;;283 {
;;;284 *Rx_buffer++=rSDIDAT;
|L1.2684|
000a7c e3a02446 MOV r2,#0x46000000
000a80 e5923040 LDR r3,[r2,#0x40]
000a84 e51f26d8 LDR r2,|L1.948|
000a88 e5922000 LDR r2,[r2,#0] ; Rx_buffer
000a8c e4823004 STR r3,[r2],#4
000a90 e51f36e4 LDR r3,|L1.948|
000a94 e5832000 STR r2,[r3,#0] ; Rx_buffer
;;;285 rd_cnt++;
000a98 e59f23d8 LDR r2,|L1.3704|
000a9c e5922000 LDR r2,[r2,#0] ; rd_cnt
000aa0 e2822001 ADD r2,r2,#1
000aa4 e59f33cc LDR r3,|L1.3704|
000aa8 e5832000 STR r2,[r3,#0] ; rd_cnt
;;;286 }
000aac eafffff0 B |L1.2676|
;;;287 // Uart_Printf("status1=0x%x\n", status);
;;;288 // status=rSDIFSTA&0x200; //If you do like this, rSDIFSTA register will not be updated., YH 040221
;;;289 rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221
|L1.2736|
000ab0 e3a02446 MOV r2,#0x46000000
000ab4 e5922038 LDR r2,[r2,#0x38]
000ab8 e2022f80 AND r2,r2,#0x200
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -