📄 sdi.txt
字号:
|L1.1980|
0007bc e1a00000 NOP ;791
|L1.1984|
0007c0 e3a0045a MOV r0,#0x5a000000 ;791
0007c4 e5900038 LDR r0,[r0,#0x38] ;791
0007c8 e3100e40 TST r0,#0x400 ;791
0007cc 1afffffb BNE |L1.1984| ;791
0007d0 e3a0000a MOV r0,#0xa ;792
0007d4 ebfffffe BL Delay ;792
0007d8 e3a00940 MOV r0,#0x100000 ;794
0007dc e3a0145a MOV r1,#0x5a000000 ;794
0007e0 e581002c STR r0,[r1,#0x2c] ;794
0007e4 e3a0045a MOV r0,#0x5a000000 ;795
0007e8 e590002c LDR r0,[r0,#0x2c] ;795
0007ec e3c00c70 BIC r0,r0,#0x7000 ;795
0007f0 e3a0145a MOV r1,#0x5a000000 ;795
0007f4 e581002c STR r0,[r1,#0x2c] ;795
0007f8 e1a00000 NOP ;797
|L1.2044|
0007fc e3a0045a MOV r0,#0x5a000000 ;797
000800 e5900034 LDR r0,[r0,#0x34] ;797
000804 e3100003 TST r0,#3 ;797
000808 1afffffb BNE |L1.2044| ;797
00080c e3a0045a MOV r0,#0x5a000000 ;798
000810 e5900034 LDR r0,[r0,#0x34] ;798
000814 e3500000 CMP r0,#0 ;798
000818 0a000004 BEQ |L1.2096| ;798
00081c e3a0045a MOV r0,#0x5a000000 ;799
000820 e5900034 LDR r0,[r0,#0x34] ;799
000824 e1a01000 MOV r1,r0 ;799
000828 e24f0f80 ADR r0,|L1.1584| ;799
00082c ebfffffe BL Uart_Printf ;799
|L1.2096|
000830 e3a000ff MOV r0,#0xff ;801
000834 e3a0145a MOV r1,#0x5a000000 ;801
000838 e5810034 STR r0,[r1,#0x34] ;801
00083c e1a00000 NOP ;803
|L1.2112|
000840 e3a00a65 MOV r0,#0x65000 ;806
000844 e3a0145a MOV r1,#0x5a000000 ;806
000848 e581002c STR r0,[r1,#0x2c] ;806
00084c e3a00000 MOV r0,#0 ;809
000850 e3a0145a MOV r1,#0x5a000000 ;809
000854 e5810008 STR r0,[r1,#8] ;809
000858 e3a00fd3 MOV r0,#0x34c ;810
00085c e3a0145a MOV r1,#0x5a000000 ;810
000860 e581000c STR r0,[r1,#0xc] ;810
000864 e3a01001 MOV r1,#1 ;813
000868 e3a0000c MOV r0,#0xc ;813
00086c ebfffffe BL Chk_CMDend ;813
000870 e3500000 CMP r0,#0 ;813
000874 1a000000 BNE |L1.2172| ;813
000878 eafffff0 B |L1.2112| ;814
|L1.2172|
00087c e3a00ea0 MOV r0,#0xa00 ;815
000880 e3a0145a MOV r1,#0x5a000000 ;815
000884 e5810010 STR r0,[r1,#0x10] ;815
000888 ebfffffe BL Chk_BUSYend ;818
00088c e3500000 CMP r0,#0 ;818
000890 1a000001 BNE |L1.2204| ;818
000894 e28f0060 ADR r0,|L1.2300| ;819
000898 ebfffffe BL Uart_Printf ;819
|L1.2204|
00089c e3a00008 MOV r0,#8 ;820
0008a0 e3a0145a MOV r1,#0x5a000000 ;820
0008a4 e5810034 STR r0,[r1,#0x34] ;820
0008a8 e28f0054 ADR r0,|L1.2308| ;822
0008ac ebfffffe BL Uart_Printf ;822
0008b0 eaffff9a B |L1.1824|
|L1.2228|
0008b4 65727453 DCB "Stre"
0008b8 77206d61 DCB "am w"
0008bc 65746972 DCB "rite"
0008c0 6d6f6320 DCB " com"
0008c4 646e616d DCB "mand"
0008c8 70757320 DCB " sup"
0008cc 74726f70 DCB "port"
0008d0 6e6f2073 DCB "s on"
0008d4 4d20796c DCB "ly M"
0008d8 0a21434d DCB "MC!\n"
0008dc 00000000 DCB "\0\0\0\0"
|L1.2272|
0008e0 74535b0a DCB "\n[St"
0008e4 6d616572 DCB "ream"
0008e8 69727720 DCB " wri"
0008ec 74206574 DCB "te t"
0008f0 5d747365 DCB "est]"
|L1.2292|
0008f4 0000000a DCB "\n\0\0\0"
|L1.2296|
0008f8 00907000 DCD 0x00907000
|L1.2300|
0008fc 6f727265 DCB "erro"
000900 00000a72 DCB "r\n\0\0"
|L1.2308|
000904 452d2d0a DCB "\n--E"
000908 5320646e DCB "nd S"
00090c 61657274 DCB "trea"
000910 7277206d DCB "m wr"
000914 20657469 DCB "ite "
000918 74736574 DCB "test"
00091c 0000000a DCB "\n\0\0\0"
ENDP
Flush_Rx_buf PROC
;;;131 void Flush_Rx_buf(void)
;;;132 {
000920 e92d4010 STMFD sp!,{r4,lr}
;;;133 //-- Flushing Rx buffer
;;;134 int i;
;;;135
;;;136 Rx_buffer=(unsigned int *)0x31800000;
000924 e3a005c6 MOV r0,#0x31800000
000928 e51f1584 LDR r1,|L1.940|
00092c e5810000 STR r0,[r1,#0] ; Rx_buffer
;;;137
;;;138 for(i=0;i<2048;i++) //128[word]*16[blk]=8192[byte]
000930 e3a04000 MOV r4,#0
|L1.2356|
000934 e3540e80 CMP r4,#0x800
000938 aa000007 BGE |L1.2396|
00093c ea000001 B |L1.2376|
|L1.2368|
000940 e2844001 ADD r4,r4,#1
000944 eafffffa B |L1.2356|
;;;139 *(Rx_buffer+i)=0;
|L1.2376|
000948 e3a00000 MOV r0,#0
00094c e51f15a8 LDR r1,|L1.940|
000950 e5911000 LDR r1,[r1,#0] ; Rx_buffer
000954 e7810104 STR r0,[r1,r4,LSL #2]
000958 eafffff8 B |L1.2368|
;;;140 Uart_Printf("\n--End Rx buffer flush\n");
|L1.2396|
00095c e28f0004 ADR r0,|L1.2408|
000960 ebfffffe BL Uart_Printf
;;;141 }
000964 e8bd8010 LDMFD sp!,{r4,pc}
|L1.2408|
000968 452d2d0a DCB "\n--E"
00096c 5220646e DCB "nd R"
000970 75622078 DCB "x bu"
000974 72656666 DCB "ffer"
000978 756c6620 DCB " flu"
00097c 000a6873 DCB "sh\n\0"
ENDP
TR_Buf_new PROC
;;;106 void TR_Buf_new(void)
;;;107 {
000980 e92d4070 STMFD sp!,{r4-r6,lr}
;;;108 //-- Tx & Rx Buffer initialize
;;;109 int i, j;
;;;110 int start = 0x03020100;
000984 e59f651c LDR r6,|L1.3752|
;;;111
;;;112 Tx_buffer=(unsigned int *)0x31000000;
000988 e3a005c4 MOV r0,#0x31000000
00098c e51f15ec LDR r1,|L1.936|
000990 e5810000 STR r0,[r1,#0] ; Tx_buffer
;;;113
;;;114 j=0;
000994 e3a05000 MOV r5,#0
;;;115 for(i=0;i<2048;i++) //128[word]*16[blk]=8192[byte]
000998 e3a04000 MOV r4,#0
|L1.2460|
00099c e3540e80 CMP r4,#0x800
0009a0 aa000007 BGE |L1.2500|
0009a4 ea000001 B |L1.2480|
|L1.2472|
0009a8 e2844001 ADD r4,r4,#1
0009ac eafffffa B |L1.2460|
;;;116 *(Tx_buffer+i)=i+j;
|L1.2480|
0009b0 e0840005 ADD r0,r4,r5
0009b4 e51f1614 LDR r1,|L1.936|
0009b8 e5911000 LDR r1,[r1,#0] ; Tx_buffer
0009bc e7810104 STR r0,[r1,r4,LSL #2]
0009c0 eafffff8 B |L1.2472|
;;;117 // *(Tx_buffer+i)=0x5555aaaa;
;;;118 Flush_Rx_buf();
|L1.2500|
0009c4 ebfffffe BL Flush_Rx_buf
;;;119 /*
;;;120 for(i=0;i<20;i++){
;;;121 for(j=0;j<128;j++){
;;;122 Tx_buffer[j+i*128]=start;
;;;123 if(j % 64 == 63) start = 0x0302010;
;;;124 else start = start + 0x04040404;
;;;125 }
;;;126 start = 0x03020100;
;;;127 }
;;;128 */
;;;129 }
0009c8 e8bd8070 LDMFD sp!,{r4-r6,pc}
ENDP
Chk_DATend PROC
;;;882 int Chk_DATend(void)
;;;883 {
0009cc e92d4010 STMFD sp!,{r4,lr}
;;;884 int finish;
;;;885
;;;886 finish=rSDIDSTA;
0009d0 e3a0045a MOV r0,#0x5a000000
0009d4 e5900034 LDR r0,[r0,#0x34]
0009d8 e1a04000 MOV r4,r0
;;;887 while( !( ((finish&0x10)==0x10) | ((finish&0x20)==0x20) ))
0009dc e1a00000 NOP
|L1.2528|
0009e0 e3a00001 MOV r0,#1
0009e4 e0000244 AND r0,r0,r4,ASR #4
0009e8 e3a01001 MOV r1,#1
0009ec e00112c4 AND r1,r1,r4,ASR #5
0009f0 e1900001 ORRS r0,r0,r1
0009f4 1a000003 BNE |L1.2568|
;;;888 // Chek timeout or data end
;;;889 finish=rSDIDSTA;
0009f8 e3a0045a MOV r0,#0x5a000000
0009fc e5900034 LDR r0,[r0,#0x34]
000a00 e1a04000 MOV r4,r0
000a04 eafffff5 B |L1.2528|
;;;890
;;;891 if( (finish&0xfc) != 0x10 )
|L1.2568|
000a08 e20400fc AND r0,r4,#0xfc
000a0c e3500010 CMP r0,#0x10
000a10 0a000007 BEQ |L1.2612|
;;;892 {
;;;893 Uart_Printf("DATA:finish=0x%x\n", finish);
000a14 e1a01004 MOV r1,r4
000a18 e24f0fcd ADR r0,|L1.1772|
000a1c ebfffffe BL Uart_Printf
;;;894 rSDIDSTA=0xec; // Clear error state
000a20 e3a000ec MOV r0,#0xec
000a24 e3a0145a MOV r1,#0x5a000000
000a28 e5810034 STR r0,[r1,#0x34]
;;;895 return 0;
000a2c e3a00000 MOV r0,#0
;;;896 }
;;;897 return 1;
;;;898 }
|L1.2608|
000a30 e8bd8010 LDMFD sp!,{r4,pc}
|L1.2612|
000a34 e3a00001 MOV r0,#1 ;897
000a38 eafffffc B |L1.2608| ;897
ENDP
DMA_end PROC
;;;357 void __irq DMA_end(void)
;;;358 {
000a3c e92d0003 STMFD sp!,{r0,r1}
;;;359 ClearPending(BIT_DMA0);
000a40 e3a00b80 MOV r0,#0x20000
000a44 e3a0144a MOV r1,#0x4a000000
000a48 e5810000 STR r0,[r1,#0]
000a4c e3a00b80 MOV r0,#0x20000
000a50 e3a0144a MOV r1,#0x4a000000
000a54 e5810010 STR r0,[r1,#0x10]
000a58 e3a0044a MOV r0,#0x4a000000
000a5c e5900010 LDR r0,[r0,#0x10]
;;;360
;;;361 TR_end=1;
000a60 e3a00001 MOV r0,#1
000a64 e59f1440 LDR r1,|L1.3756|
000a68 e5810000 STR r0,[r1,#0] ; TR_end
;;;362 }
000a6c e8bd0003 LDMFD sp!,{r0,r1}
000a70 e25ef004 SUBS pc,lr,#4
ENDP
Rd_Int PROC
;;;312 void __irq Rd_Int(void)
;;;313 {
000a74 e92d000f STMFD sp!,{r0-r3}
;;;314 U32 i,status;
;;;315
;;;316 status=rSDIFSTA;
000a78 e3a0245a MOV r2,#0x5a000000
000a7c e5922038 LDR r2,[r2,#0x38]
000a80 e1a01002 MOV r1,r2
;;;317 if( (status&0x200) == 0x200 ) // Check Last interrupt?
000a84 e3110f80 TST r1,#0x200
000a88 0a000019 BEQ |L1.2804|
;;;318 {
;;;319 for(i=(status & 0x7f)/4;i>0;i--)
000a8c e1a02c81 MOV r2,r1,LSL #25
000a90 e1a00da2 MOV r0,r2,LSR #27
|L1.2708|
000a94 e3500000 CMP r0,#0
000a98 0a00000f BEQ |L1.2780|
000a9c ea000001 B |L1.2728|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -