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

📄 uart1.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000c14  0a000008          BEQ      |L1.3132|
;;;326        	WrUTXH1(*uart1TxStr++);	
000c18  e51f0ac8          LDR      r0,|L1.344|
000c1c  e5901000          LDR      r1,[r0,#0]  ; uart1TxStr
000c20  e5d10000          LDRB     r0,[r1,#0]
000c24  e2811001          ADD      r1,r1,#1
000c28  e51f2ad8          LDR      r2,|L1.344|
000c2c  e5821000          STR      r1,[r2,#0]  ; uart1TxStr
000c30  e51f1adc          LDR      r1,|L1.348|
000c34  e5c10020          STRB     r0,[r1,#0x20]
000c38  eaffffed          B        |L1.3060|
;;;327    
;;;328        if(*uart1TxStr == '\0') 
                  |L1.3132|
000c3c  e51f0aec          LDR      r0,|L1.344|
000c40  e5900000          LDR      r0,[r0,#0]  ; uart1TxStr
000c44  e5d00000          LDRB     r0,[r0,#0]
000c48  e3500000          CMP      r0,#0
000c4c  1a000010          BNE      |L1.3220|
;;;329        {
;;;330        	rINTMSK|=BIT_UART1;
000c50  e3a0044a          MOV      r0,#0x4a000000
000c54  e5900008          LDR      r0,[r0,#8]
000c58  e3800880          ORR      r0,r0,#0x800000
000c5c  e3a0144a          MOV      r1,#0x4a000000
000c60  e5810008          STR      r0,[r1,#8]
;;;331            rSUBSRCPND=BIT_SUB_TXD1;	// Clear Sub int pending
000c64  e3a00010          MOV      r0,#0x10
000c68  e3a0144a          MOV      r1,#0x4a000000
000c6c  e5810018          STR      r0,[r1,#0x18]
;;;332            ClearPending(BIT_UART1);	// Clear master pending
000c70  e3a00880          MOV      r0,#0x800000
000c74  e3a0144a          MOV      r1,#0x4a000000
000c78  e5810000          STR      r0,[r1,#0]
000c7c  e3a00880          MOV      r0,#0x800000
000c80  e3a0144a          MOV      r1,#0x4a000000
000c84  e5810010          STR      r0,[r1,#0x10]
000c88  e3a0044a          MOV      r0,#0x4a000000
000c8c  e5900010          LDR      r0,[r0,#0x10]
000c90  ea00000f          B        |L1.3284|
;;;333        }
;;;334        else 
;;;335        {
;;;336            ClearPending(BIT_UART1);	// Clear master pending
                  |L1.3220|
000c94  e3a00880          MOV      r0,#0x800000
000c98  e3a0144a          MOV      r1,#0x4a000000
000c9c  e5810000          STR      r0,[r1,#0]
000ca0  e3a00880          MOV      r0,#0x800000
000ca4  e3a0144a          MOV      r1,#0x4a000000
000ca8  e5810010          STR      r0,[r1,#0x10]
000cac  e3a0044a          MOV      r0,#0x4a000000
000cb0  e5900010          LDR      r0,[r0,#0x10]
;;;337            rSUBSRCPND=BIT_SUB_TXD1;	// Clear Sub int pending
000cb4  e3a00010          MOV      r0,#0x10
000cb8  e3a0144a          MOV      r1,#0x4a000000
000cbc  e5810018          STR      r0,[r1,#0x18]
;;;338            rINTSUBMSK&=~(BIT_SUB_TXD1);	// Unmask sub int
000cc0  e3a0044a          MOV      r0,#0x4a000000
000cc4  e590001c          LDR      r0,[r0,#0x1c]
000cc8  e3c00010          BIC      r0,r0,#0x10
000ccc  e3a0144a          MOV      r1,#0x4a000000
000cd0  e581001c          STR      r0,[r1,#0x1c]
;;;339        }
;;;340    }
                  |L1.3284|
000cd4  e8bd0007          LDMFD    sp!,{r0-r2}
000cd8  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_Uart1_Fifo PROC
;;;342    void Test_Uart1_Fifo(void)
;;;343    {
000cdc  e92d4008          STMFD    sp!,{r3,lr}
;;;344        Uart_Port_Set(); 
000ce0  ebfffffe          BL       Uart_Port_Set
;;;345        Uart_Select(1);
000ce4  e3a00001          MOV      r0,#1
000ce8  ebfffffe          BL       Uart_Select
;;;346        /******* UART1 Tx FIFO test with interrupt ********/     
;;;347        Uart_Printf("[Uart channel 1 Tx FIFO Interrupt Test]\n");
000cec  e28f0f8d          ADR      r0,|L1.3880|
000cf0  ebfffffe          BL       Uart_Printf
;;;348        Uart_TxEmpty(1);	//wait until tx buffer is empty.
000cf4  e3a00001          MOV      r0,#1
000cf8  ebfffffe          BL       Uart_TxEmpty
;;;349        
;;;350          
;;;351        /* <Tx Trigger Level:8Byte> */    
;;;352        uart1TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART1 Tx FIFO interrupt(8byte) test is good!!!!\r\n";
000cfc  e59f0250          LDR      r0,|L1.3924|
000d00  e51f1bb0          LDR      r1,|L1.344|
000d04  e5810000          STR      r0,[r1,#0]  ; uart1TxStr
;;;353        pISR_UART1=(U32)Uart1_TxFifo;
000d08  e59f0248          LDR      r0,|L1.3928|
000d0c  e51f1478          LDR      r1,|L1.2204|
000d10  e5810f7c          STR      r0,[r1,#0xf7c]
;;;354        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000d14  e3a00003          MOV      r0,#3
000d18  e51f1bc4          LDR      r1,|L1.348|
000d1c  e5810000          STR      r0,[r1,#0]
;;;355        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000d20  e1c10000          BIC      r0,r1,r0
000d24  e5900004          LDR      r0,[r0,#4]
000d28  e3800fc0          ORR      r0,r0,#0x300
000d2c  e3800005          ORR      r0,r0,#5
000d30  e5810004          STR      r0,[r1,#4]
;;;356        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;357        rUFCON1=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(1);
000d34  e3a00097          MOV      r0,#0x97
000d38  e1c11000          BIC      r1,r1,r0
000d3c  e5810008          STR      r0,[r1,#8]
;;;358        //Tx and Rx FIFO Trigger Level:8byte,Tx and Rx FIFO Reset,FIFO on
;;;359        rINTMSK=~(BIT_UART1);
000d40  e3e00880          MVN      r0,#0x800000
000d44  e3a0144a          MOV      r1,#0x4a000000
000d48  e5810008          STR      r0,[r1,#8]
;;;360        rINTSUBMSK=~(BIT_SUB_TXD1);
000d4c  e3e00010          MVN      r0,#0x10
000d50  e3a0144a          MOV      r1,#0x4a000000
000d54  e581001c          STR      r0,[r1,#0x1c]
;;;361        Delay(500);
000d58  e3a00f7d          MOV      r0,#0x1f4
000d5c  ebfffffe          BL       Delay
;;;362        rUFCON1=(2<<6)|(1<<4)|(1<<2)|(1<<1)|(0);
000d60  e3a00096          MOV      r0,#0x96
000d64  e51f1c10          LDR      r1,|L1.348|
000d68  e5810008          STR      r0,[r1,#8]
;;;363        //Tx and Rx FIFO Trigger Level:8byte,Tx and Rx FIFO Reset,FIFO off
;;;364    
;;;365        /* <Tx Trigger Level:12Byte> */    
;;;366        uart1TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART1 Tx FIFO interrupt(12byte) test is good!!!!\r\n";
000d6c  e59f01e8          LDR      r0,|L1.3932|
000d70  e51f1c20          LDR      r1,|L1.344|
000d74  e5810000          STR      r0,[r1,#0]  ; uart1TxStr
;;;367        pISR_UART1=(unsigned)Uart1_TxFifo;
000d78  e59f01d8          LDR      r0,|L1.3928|
000d7c  e51f14e8          LDR      r1,|L1.2204|
000d80  e5810f7c          STR      r0,[r1,#0xf7c]
;;;368        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000d84  e3a00003          MOV      r0,#3
000d88  e51f1c34          LDR      r1,|L1.348|
000d8c  e5810000          STR      r0,[r1,#0]
;;;369        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000d90  e1c10000          BIC      r0,r1,r0
000d94  e5900004          LDR      r0,[r0,#4]
000d98  e3800fc0          ORR      r0,r0,#0x300
000d9c  e3800005          ORR      r0,r0,#5
000da0  e5810004          STR      r0,[r1,#4]
;;;370        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;371        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(1);
000da4  e3a000e7          MOV      r0,#0xe7
000da8  e1c11000          BIC      r1,r1,r0
000dac  e5810008          STR      r0,[r1,#8]
;;;372        //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO on
;;;373        rINTMSK=~(BIT_UART1);
000db0  e3e00880          MVN      r0,#0x800000
000db4  e3a0144a          MOV      r1,#0x4a000000
000db8  e5810008          STR      r0,[r1,#8]
;;;374        rINTSUBMSK=~(BIT_SUB_TXD1);
000dbc  e3e00010          MVN      r0,#0x10
000dc0  e3a0144a          MOV      r1,#0x4a000000
000dc4  e581001c          STR      r0,[r1,#0x1c]
;;;375        Delay(500);
000dc8  e3a00f7d          MOV      r0,#0x1f4
000dcc  ebfffffe          BL       Delay
;;;376        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000dd0  e3a000e6          MOV      r0,#0xe6
000dd4  e51f1c80          LDR      r1,|L1.348|
000dd8  e5810008          STR      r0,[r1,#8]
;;;377        //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off
;;;378    
;;;379        
;;;380        /******* UART1 Rx FIFO test with interrupt ********/     
;;;381        rx_dncs=0;
000ddc  e3a00000          MOV      r0,#0
000de0  e51f1620          LDR      r1,|L1.1992|
000de4  e1c100b0          STRH     r0,[r1,#0]  ; rx_dncs
;;;382        rx_point=0;
000de8  e3a00000          MOV      r0,#0
000dec  e51f1634          LDR      r1,|L1.1984|
000df0  e5810000          STR      r0,[r1,#0]  ; rx_point
;;;383        rx_isdone=1;
000df4  e3a00001          MOV      r0,#1
000df8  e51f1634          LDR      r1,|L1.1996|
000dfc  e5810000          STR      r0,[r1,#0]  ; rx_isdone
;;;384        rx_filesize=0;
000e00  e3a00000          MOV      r0,#0
000e04  e51f1648          LDR      r1,|L1.1988|
000e08  e5810000          STR      r0,[r1,#0]  ; rx_filesize
;;;385        rx_checksum=0;
000e0c  e3a00000          MOV      r0,#0
000e10  e51f1648          LDR      r1,|L1.2000|
000e14  e5810000          STR      r0,[r1,#0]  ; rx_checksum
;;;386        Uart_Printf("[Uart channel 1 Rx FIFO Interrupt Test]\n");
000e18  e28f0f50          ADR      r0,|L1.3936|
000e1c  ebfffffe          BL       Uart_Printf
;;;387    
;;;388        pISR_UART1=(unsigned)Uart1_RxFifoOrErr;
000e20  e59f0164          LDR      r0,|L1.3980|
000e24  e51f1590          LDR      r1,|L1.2204|
000e28  e5810f7c          STR      r0,[r1,#0xf7c]
;;;389    
;;;390        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000e2c  e3a00003          MOV      r0,#3
000e30  e51f1cdc          LDR      r1,|L1.348|
000e34  e5810000          STR      r0,[r1,#0]
;;;391        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(1<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000e38  e1c10000          BIC      r0,r1,r0
000e3c  e5900004          LDR      r0,[r0,#4]
000e40  e3800fc0          ORR      r0,r0,#0x300
000e44  e38000c5          ORR      r0,r0,#0xc5
000e48  e5810004          STR      r0,[r1,#4]
;;;392        //Clock,Tx:Def,Rx:Def,Rx timeout:o,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;393        rUFCON1=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
000e4c  e3a00047          MOV      r0,#0x47
000e50  e1c11000          BIC      r1,r1,r0
000e54  e5810008          STR      r0,[r1,#8]
;;;394        //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx FIFO Reset,FIFO on
;;;395    
;;;396        // Clear Int Pending and Unmask 
;;;397        ClearPending(BIT_UART1);
000e58  e3a00880          MOV      r0,#0x800000
000e5c  e3a0144a          MOV      r1,#0x4a000000
000e60  e5810000          STR      r0,[r1,#0]
000e64  e3a00880          MOV      r0,#0x800000
000e68  e3a0144a          MOV      r1,#0x4a000000
000e6c  e5810010          STR      r0,[r1,#0x10]
000e70  e3a0044a          MOV      r0,#0x4a000000
000e74  e5900010          LDR      r0,[r0,#0x10]
;;;398        rINTMSK=~(BIT_UART1);
000e78  e3e00880          MVN      r0,#0x800000
000e7c  e3a0144a          MOV      r1,#0x4a000000
000e80  e5810008          STR      r0,[r1,#8]
;;;399        rSUBSRCPND=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000e84  e3a00038          MOV      r0,#0x38
000e88  e3a0144a          MOV      r1,#0x4a000000
000e8c  e5810018          STR      r0,[r1,#0x18]
;;;400        rINTSUBMSK=~(BIT_SUB_RXD1|BIT_SUB_ERR1);
000e90  e3e00028          MVN      r0,#0x28
000e94  e3a0144a          MOV      r1,#0x4a000000
000e98  e581001c          STR      r0,[r1,#0x1c]
;;;401    
;;;402        Uart_Printf("Download the target file[*.bin] by Uart1\n");
000e9c  e28f00ec          ADR      r0,|L1.3984|
000ea0  ebfffffe          BL       Uart_Printf
;;;403    	
;;;404        while(rx_isdone);
000ea4  e1a00000          NOP      
                  |L1.3752|
000ea8  e51f06e4          LDR      r0,|L1.1996|
000eac  e5900000          LDR      r0,[r0,#0]  ; rx_isdone
000eb0  e3500000          CMP      r0,#0
000eb4  1afffffb          BNE      |L1.3752|
;;;405    
;;;406        rINTMSK |= (BIT_UART1);	
000eb8  e3a0044a          MOV      r0,#0x4a000000
000ebc  e5900008          LDR      r0,[r0,#8]
000ec0  e3800880          ORR      r0,r0,#0x800000
000ec4  e3a0144a          MOV      r1,#0x4a000000
000ec8  e5810008          STR      r0,[r1,#8]
;;;407        rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000ecc  e3a0044a          MOV      r0,#0x4a000000
000ed0  e590001c          LDR      r0,[r0,#0x1c]
000ed4  e3800038          ORR      r0,r0,#0x38
000ed8  e3a0144a          MOV      r1,#0x4a000000
000edc  e581001c          STR      r0,[r1,#0x1c]
;;;408    
;;;409        rUFCON1=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000ee0  e3a000e6          MOV      r0,#0xe6
000ee4  e51f1d90          LDR      r1,|L1.348|
000ee8  e5810008          STR      r0,[r1,#8]
;;;410        //Tx and Rx FIFO Trigger Level:12byte,Tx and Rx FIFO Reset,FIFO off
;;;411    			
;;;412        if(rx_dncs==(rx_checksum&0xffff)) 
000eec  e51f0724          LDR      r0,|L1.2000|
000ef0  e5900000          LDR      r0,[r0,#0]  ; rx_checksum
000ef4  e1a00800          MOV      r0,r0,LSL #16
000ef8  e1a00820          MOV      r0,r0,LSR #16
000efc  e51f173c          LDR      r1,|L1.1992|
000f00  e1d110b0          LDRH     r1,[r1,#0]  ; rx_dncs
000f04  e1500001          CMP      r0,r1
000f08  1a000002          BNE      |L1.3864|
;;;413    	Uart_Printf("\nDownload test OK!!!\n");
000f0c  e28f00a8          ADR      r0,|L1.4028|
000f10  ebfffffe          BL       Uart_Printf
000f14  ea000001          B        |L1.3872|
;;;414        else 
;;;415    	Uart_Printf("\nError!!!\n");

⌨️ 快捷键说明

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