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

📄 sdi.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
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 + -