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

📄 uart1.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:

                  Uart1_RxFifoOrErr PROC
;;;322    void __irq Uart1_RxFifoOrErr(void)
;;;323    {
000be0  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;324        rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000be4  e51f0a9c          LDR      r0,|L1.336|
000be8  e590001c          LDR      r0,[r0,#0x1c]
000bec  e3800038          ORR      r0,r0,#0x38
000bf0  e51f1aa8          LDR      r1,|L1.336|
000bf4  e581001c          STR      r0,[r1,#0x1c]
;;;325        if(rSUBSRCPND&BIT_SUB_RXD1) __sub_Uart1_RxFifo();
000bf8  e1a00001          MOV      r0,r1
000bfc  e5900018          LDR      r0,[r0,#0x18]
000c00  e3100008          TST      r0,#8
000c04  0a000001          BEQ      |L1.3088|
000c08  ebfffffe          BL       __sub_Uart1_RxFifo
000c0c  ea000000          B        |L1.3092|
;;;326        else __sub_Uart1_RxErrInt();
                  |L1.3088|
000c10  ebfffffe          BL       __sub_Uart1_RxErrInt
;;;327        ClearPending(BIT_UART1);
                  |L1.3092|
000c14  e3a00880          MOV      r0,#0x800000
000c18  e51f1ad0          LDR      r1,|L1.336|
000c1c  e5810000          STR      r0,[r1,#0]
000c20  e1c10000          BIC      r0,r1,r0
000c24  e5900010          LDR      r0,[r0,#0x10]
000c28  e5810010          STR      r0,[r1,#0x10]
000c2c  e1a00001          MOV      r0,r1
000c30  e5900010          LDR      r0,[r0,#0x10]
;;;328        rSUBSRCPND=(BIT_SUB_RXD1|BIT_SUB_ERR1);
000c34  e3a00028          MOV      r0,#0x28
000c38  e1c11000          BIC      r1,r1,r0
000c3c  e5810018          STR      r0,[r1,#0x18]
;;;329        rINTSUBMSK&=~(BIT_SUB_RXD1|BIT_SUB_ERR1);
000c40  e1c10000          BIC      r0,r1,r0
000c44  e590001c          LDR      r0,[r0,#0x1c]
000c48  e3c00028          BIC      r0,r0,#0x28
000c4c  e581001c          STR      r0,[r1,#0x1c]
;;;330    }
000c50  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000c54  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_Uart1_Fifo PROC
;;;349    void Test_Uart1_Fifo(void)
;;;350    {
000c58  e92d4008          STMFD    sp!,{r3,lr}
;;;351        Uart_Port_Set(); 
000c5c  ebfffffe          BL       Uart_Port_Set
;;;352        Uart_Select(0);
000c60  e3a00000          MOV      r0,#0
000c64  ebfffffe          BL       Uart_Select
;;;353        /******* UART1 Tx FIFO test with interrupt ********/     
;;;354        Uart_Printf("[Uart channel 1 Tx FIFO Interrupt Test]\n");
000c68  e28f0fa8          ADR      r0,|L1.3856|
000c6c  ebfffffe          BL       _printf
;;;355        Uart_TxEmpty(0);	//wait until tx buffer is empty.
000c70  e3a00000          MOV      r0,#0
000c74  ebfffffe          BL       Uart_TxEmpty
;;;356        
;;;357        //-------------------------------------------------------------------------------------------->
;;;358        Uart_Printf("\nConnect PC[COM1 or COM2] and UART1 of SMDK24A0 with a serial cable!!! \n");
000c78  e51f07e4          LDR      r0,|L1.1180|
000c7c  ebfffffe          BL       _printf
;;;359        Uart_Printf("Then, press any key........\n");
000c80  e51f02cc          LDR      r0,|L1.2492|
000c84  ebfffffe          BL       _printf
;;;360        Uart_Select(1);	// Change the uart port    
000c88  e3a00001          MOV      r0,#1
000c8c  ebfffffe          BL       Uart_Select
;;;361        Uart_Getch();
000c90  ebfffffe          BL       Uart_Getch
;;;362        //----------------------------------------->
;;;363        
;;;364        
;;;365        /* <Tx Trigger Level:32Byte> */    
;;;366        uart1TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART1 Tx FIFO interrupt(32byte) test is good!!!!\r\n";
000c94  e59f02a0          LDR      r0,|L1.3900|
000c98  e51f1b4c          LDR      r1,|L1.340|
000c9c  e5810000          STR      r0,[r1,#0]  ; uart1TxStr
;;;367        pISR_UART1=(U32)Uart1_TxFifo;
000ca0  e59f0298          LDR      r0,|L1.3904|
000ca4  e51f17e8          LDR      r1,|L1.1220|
000ca8  e5810f7c          STR      r0,[r1,#0xf7c]
;;;368        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000cac  e3a00003          MOV      r0,#3
000cb0  e51f1b60          LDR      r1,|L1.344|
000cb4  e5810000          STR      r0,[r1,#0]
;;;369        rUCON1 &= 0x400;	// For the PCLK <-> UCLK fuction    
000cb8  e1c10000          BIC      r0,r1,r0
000cbc  e5900004          LDR      r0,[r0,#4]
000cc0  e2000e40          AND      r0,r0,#0x400
000cc4  e5810004          STR      r0,[r1,#4]
;;;370        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000cc8  e1a00001          MOV      r0,r1
000ccc  e5900004          LDR      r0,[r0,#4]
000cd0  e3800005          ORR      r0,r0,#5
000cd4  e5810004          STR      r0,[r1,#4]
;;;371        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;372        rUFCON1=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(1);
000cd8  e3a00097          MOV      r0,#0x97
000cdc  e1c11000          BIC      r1,r1,r0
000ce0  e5810008          STR      r0,[r1,#8]
;;;373        //Tx and Rx FIFO Trigger Level:32byte,Tx and Rx FIFO Reset,FIFO on
;;;374        rINTMSK=~(BIT_UART1);
000ce4  e3e00880          MVN      r0,#0x800000
000ce8  e51f1ba0          LDR      r1,|L1.336|
000cec  e5810008          STR      r0,[r1,#8]
;;;375        rINTSUBMSK=~(BIT_SUB_TXD1);
000cf0  e3e00010          MVN      r0,#0x10
000cf4  e0011000          AND      r1,r1,r0
000cf8  e581001c          STR      r0,[r1,#0x1c]
;;;376        Delay(500);
000cfc  e3a00f7d          MOV      r0,#0x1f4
000d00  ebfffffe          BL       Delay
;;;377        rUFCON1=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(0);
000d04  e3a00096          MOV      r0,#0x96
000d08  e51f1bb8          LDR      r1,|L1.344|
000d0c  e5810008          STR      r0,[r1,#8]
;;;378        //Tx and Rx FIFO Trigger Level:8byte,Tx and Rx FIFO Reset,FIFO off
;;;379    
;;;380        /* <Tx Trigger Level:48Byte> */    
;;;381        uart1TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART1 Tx FIFO interrupt(48byte) test is good!!!!\r\n";
000d10  e59f022c          LDR      r0,|L1.3908|
000d14  e51f1bc8          LDR      r1,|L1.340|
000d18  e5810000          STR      r0,[r1,#0]  ; uart1TxStr
;;;382        pISR_UART1=(unsigned)Uart1_TxFifo;
000d1c  e59f021c          LDR      r0,|L1.3904|
000d20  e51f1864          LDR      r1,|L1.1220|
000d24  e5810f7c          STR      r0,[r1,#0xf7c]
;;;383        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000d28  e3a00003          MOV      r0,#3
000d2c  e51f1bdc          LDR      r1,|L1.344|
000d30  e5810000          STR      r0,[r1,#0]
;;;384        rUCON1 &= 0x400;	// For the PCLK <-> UCLK fuction    
000d34  e1c10000          BIC      r0,r1,r0
000d38  e5900004          LDR      r0,[r0,#4]
000d3c  e2000e40          AND      r0,r0,#0x400
000d40  e5810004          STR      r0,[r1,#4]
;;;385        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000d44  e1a00001          MOV      r0,r1
000d48  e5900004          LDR      r0,[r0,#4]
000d4c  e3800005          ORR      r0,r0,#5
000d50  e5810004          STR      r0,[r1,#4]
;;;386        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;387        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(1);
000d54  e3a000e7          MOV      r0,#0xe7
000d58  e1c11000          BIC      r1,r1,r0
000d5c  e5810008          STR      r0,[r1,#8]
;;;388        //Tx and Rx FIFO Trigger Level:48byte,Tx and Rx FIFO Reset,FIFO on
;;;389        rINTMSK=~(BIT_UART1);
000d60  e3e00880          MVN      r0,#0x800000
000d64  e51f1c1c          LDR      r1,|L1.336|
000d68  e5810008          STR      r0,[r1,#8]
;;;390        rINTSUBMSK=~(BIT_SUB_TXD1);
000d6c  e3e00010          MVN      r0,#0x10
000d70  e0011000          AND      r1,r1,r0
000d74  e581001c          STR      r0,[r1,#0x1c]
;;;391        Delay(500);
000d78  e3a00f7d          MOV      r0,#0x1f4
000d7c  ebfffffe          BL       Delay
;;;392        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000d80  e3a000e6          MOV      r0,#0xe6
000d84  e51f1c34          LDR      r1,|L1.344|
000d88  e5810008          STR      r0,[r1,#8]
;;;393        //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off
;;;394    
;;;395        
;;;396        /******* UART1 Rx FIFO test with interrupt ********/     
;;;397        rx_dncs=0;
000d8c  e3a00000          MOV      r0,#0
000d90  e59f116c          LDR      r1,|L1.3844|
000d94  e1c100b0          STRH     r0,[r1,#0]  ; rx_dncs
;;;398        rx_point=0;
000d98  e3a00000          MOV      r0,#0
000d9c  e59f1158          LDR      r1,|L1.3836|
000da0  e5810000          STR      r0,[r1,#0]  ; rx_point
;;;399        rx_isdone=1;
000da4  e3a00001          MOV      r0,#1
000da8  e59f1158          LDR      r1,|L1.3848|
000dac  e5810000          STR      r0,[r1,#0]  ; rx_isdone
;;;400        rx_filesize=0;
000db0  e3a00000          MOV      r0,#0
000db4  e59f1144          LDR      r1,|L1.3840|
000db8  e5810000          STR      r0,[r1,#0]  ; rx_filesize
;;;401        rx_checksum=0;
000dbc  e3a00000          MOV      r0,#0
000dc0  e59f1144          LDR      r1,|L1.3852|
000dc4  e5810000          STR      r0,[r1,#0]  ; rx_checksum
;;;402        Uart_Printf("[Uart channel 1 Rx FIFO Interrupt Test]\n");
000dc8  e28f0f5e          ADR      r0,|L1.3912|
000dcc  ebfffffe          BL       _printf
;;;403    
;;;404        pISR_UART1=(unsigned)Uart1_RxFifoOrErr;
000dd0  e59f019c          LDR      r0,|L1.3956|
000dd4  e51f1918          LDR      r1,|L1.1220|
000dd8  e5810f7c          STR      r0,[r1,#0xf7c]
;;;405    
;;;406        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000ddc  e3a00003          MOV      r0,#3
000de0  e51f1c90          LDR      r1,|L1.344|
000de4  e5810000          STR      r0,[r1,#0]
;;;407        rUCON1 &= 0x400;	// For the PCLK <-> UCLK fuction
000de8  e1c10000          BIC      r0,r1,r0
000dec  e5900004          LDR      r0,[r0,#4]
000df0  e2000e40          AND      r0,r0,#0x400
000df4  e5810004          STR      r0,[r1,#4]
;;;408        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(1<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000df8  e1a00001          MOV      r0,r1
000dfc  e5900004          LDR      r0,[r0,#4]
000e00  e38000c5          ORR      r0,r0,#0xc5
000e04  e5810004          STR      r0,[r1,#4]
;;;409        //Clock,Tx:Def,Rx:Def,Rx timeout:o,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;410        rUFCON1=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
000e08  e3a00047          MOV      r0,#0x47
000e0c  e1c11000          BIC      r1,r1,r0
000e10  e5810008          STR      r0,[r1,#8]
;;;411        //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx FIFO Reset,FIFO on
;;;412    
;;;413        // Clear Int Pending and Unmask 
;;;414        ClearPending(BIT_UART1);
000e14  e3a00880          MOV      r0,#0x800000
000e18  e51f1cd0          LDR      r1,|L1.336|
000e1c  e5810000          STR      r0,[r1,#0]
000e20  e1c10000          BIC      r0,r1,r0
000e24  e5900010          LDR      r0,[r0,#0x10]
000e28  e5810010          STR      r0,[r1,#0x10]
000e2c  e1a00001          MOV      r0,r1
000e30  e5900010          LDR      r0,[r0,#0x10]
;;;415        rINTMSK=~(BIT_UART1);
000e34  e3e00880          MVN      r0,#0x800000
000e38  e0011000          AND      r1,r1,r0
000e3c  e5810008          STR      r0,[r1,#8]
;;;416        rSUBSRCPND=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000e40  e3a00038          MOV      r0,#0x38
000e44  e1c11000          BIC      r1,r1,r0
000e48  e5810018          STR      r0,[r1,#0x18]
;;;417        rINTSUBMSK=~(BIT_SUB_RXD1|BIT_SUB_ERR1);
000e4c  e3e00028          MVN      r0,#0x28
000e50  e0011000          AND      r1,r1,r0
000e54  e581001c          STR      r0,[r1,#0x1c]
;;;418    
;;;419        Uart_Printf("Download the target file[*.bin] by Uart1\n");
000e58  e28f0f46          ADR      r0,|L1.3960|
000e5c  ebfffffe          BL       _printf
;;;420    	
;;;421        while(rx_isdone);
000e60  e1a00000          NOP      
                  |L1.3684|
000e64  e59f009c          LDR      r0,|L1.3848|
000e68  e5900000          LDR      r0,[r0,#0]  ; rx_isdone
000e6c  e3500000          CMP      r0,#0
000e70  1afffffb          BNE      |L1.3684|
;;;422    
;;;423        rINTMSK |= (BIT_UART1);	
000e74  e51f0d2c          LDR      r0,|L1.336|
000e78  e5900008          LDR      r0,[r0,#8]
000e7c  e3800880          ORR      r0,r0,#0x800000
000e80  e51f1d38          LDR      r1,|L1.336|
000e84  e5810008          STR      r0,[r1,#8]
;;;424        rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000e88  e1a00001          MOV      r0,r1
000e8c  e590001c          LDR      r0,[r0,#0x1c]
000e90  e3800038          ORR      r0,r0,#0x38
000e94  e581001c          STR      r0,[r1,#0x1c]
;;;425    
;;;426        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000e98  e3a000e6          MOV      r0,#0xe6
000e9c  e51f1d4c          LDR      r1,|L1.344|
000ea0  e5810008          STR      r0,[r1,#8]
;;;427        //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off
;;;428    			
;;;429        if(rx_dncs==(rx_checksum&0xffff)) 
000ea4  e59f0060          LDR      r0,|L1.3852|
000ea8  e5900000          LDR      r0,[r0,#0]  ; rx_checksum
000eac  e1a00800          MOV      r0,r0,LSL #16
000eb0  e1a00820          MOV      r0,r0,LSR #16
000eb4  e59f1048          LDR      r1,|L1.3844|
000eb8  e1d110b0          LDRH     r1,[r1,#0]  ; rx_dncs
000ebc  e1500001          CMP      r0,r1
000ec0  1a000002          BNE      |L1.3792|
;;;430    	Uart_Printf("\nDownload test O

⌨️ 快捷键说明

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