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

📄 uart1.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0008b4  e59f00f8          LDR      r0,|L1.2484|
0008b8  e1c11000          BIC      r1,r1,r0
0008bc  e5810018          STR      r0,[r1,#0x18]
;;;281        rINTSUBMSK=~(BIT_SUB_ERR1|BIT_SUB_DMA1);
0008c0  e59f00f0          LDR      r0,|L1.2488|
0008c4  e0011000          AND      r1,r1,r0
0008c8  e581001c          STR      r0,[r1,#0x1c]
;;;282        rDMASKTRIG1=(0<<2)|(1<<1)|(0);    //no-stop, DMA1 channel on, no-SW trigger 
0008cc  e3a00002          MOV      r0,#2
0008d0  e28119c0          ADD      r1,r1,#0x300000
0008d4  e5810020          STR      r0,[r1,#0x20]
;;;283    	// end junon
;;;284    	
;;;285        while(isDone);
0008d8  e1a00000          NOP      
                  |L1.2268|
0008dc  e51f024c          LDR      r0,|L1.1688|
0008e0  e5900000          LDR      r0,[r0,#0]  ; isDone
0008e4  e3500000          CMP      r0,#0
0008e8  1afffffb          BNE      |L1.2268|
;;;286    
;;;287        Uart_Printf("%s\n",uart1RxStr);
0008ec  e51f0790          LDR      r0,|L1.356|
0008f0  e5901000          LDR      r1,[r0,#0]  ; uart1RxStr
0008f4  e24f0ff9          ADR      r0,|L1.1304|
0008f8  ebfffffe          BL       _printf
;;;288        
;;;289    
;;;290        //----------------------------------------------------------------------------------------->    
;;;291        Uart_Printf("\nConnect PC[COM1 or COM2] and UART0 of SMDK24A0 with a serial cable!!! \n");
0008fc  e51f03e8          LDR      r0,|L1.1308|
000900  ebfffffe          BL       _printf
;;;292        Uart_Printf("Then, press any key........\n");
000904  e59f00b0          LDR      r0,|L1.2492|
000908  ebfffffe          BL       _printf
;;;293        Uart_Select(0);
00090c  e3a00000          MOV      r0,#0
000910  ebfffffe          BL       Uart_Select
;;;294        Uart_Getch();
000914  ebfffffe          BL       Uart_Getch
;;;295        //--------------------------->
;;;296    
;;;297    
;;;298        Uart_Port_Return();
000918  ebfffffe          BL       Uart_Port_Return
;;;299    }
00091c  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.2336|
000920  00000130          DCD      ||.constdata$1|| + 304
                  |L1.2340|
000924  61555b0a          DCB      "\n[Ua"
000928  63207472          DCB      "rt c"
00092c  6e6e6168          DCB      "hann"
000930  31206c65          DCB      "el 1"
000934  414d4420          DCB      " DMA"
000938  78542031          DCB      "1 Tx"
00093c  73655420          DCB      " Tes"
000940  000a5d74          DCB      "t]\n\0"
                  |L1.2372|
000944  00000000          DCD      Uart1_TxDmaDone
                  |L1.2376|
000948  44404020          DCD      0x44404020
                  |L1.2380|
00094c  61555b0a          DCB      "\n[Ua"
000950  63207472          DCB      "rt c"
000954  6e6e6168          DCB      "hann"
000958  31206c65          DCB      "el 1"
00095c  414d4420          DCB      " DMA"
000960  78522031          DCB      "1 Rx"
000964  73655420          DCB      " Tes"
000968  000a5d74          DCB      "t]\n\0"
                  |L1.2412|
00096c  65707954          DCB      "Type"
000970  796e6120          DCB      " any"
000974  76696620          DCB      " fiv"
000978  656b2065          DCB      "e ke"
00097c  21217379          DCB      "ys!!"
000980  00000a21          DCB      "!\n\0\0"
                  |L1.2436|
000984  6e656854          DCB      "Then"
000988  756f7920          DCB      " you"
00098c  6c697720          DCB      " wil"
000990  6573206c          DCB      "l se"
000994  68772065          DCB      "e wh"
000998  79207461          DCB      "at y"
00099c  7420756f          DCB      "ou t"
0009a0  64657079          DCB      "yped"
0009a4  00000a2e          DCB      ".\n\0\0"
                  |L1.2472|
0009a8  00000000          DCD      Uart1_RxDmaDone
                  |L1.2476|
0009ac  00000000          DCD      Uart1_RxDmaOrErr
                  |L1.2480|
0009b0  a1c00005          DCD      0xa1c00005
                  |L1.2484|
0009b4  04000038          DCD      0x04000038
                  |L1.2488|
0009b8  fbffffdf          DCD      0xfbffffdf
                  |L1.2492|
0009bc  00000000          DCD      |L1.1184|
                          ENDP

                  Uart1_TxFifo PROC
;;;302    void __irq Uart1_TxFifo(void)
;;;303    {
0009c0  e92d0007          STMFD    sp!,{r0-r2}
;;;304        rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);	// Just for the safety
0009c4  e51f087c          LDR      r0,|L1.336|
0009c8  e590001c          LDR      r0,[r0,#0x1c]
0009cc  e3800038          ORR      r0,r0,#0x38
0009d0  e51f1888          LDR      r1,|L1.336|
0009d4  e581001c          STR      r0,[r1,#0x1c]
;;;305        while (!(rUFSTAT1 & 0x4000) && (*uart1TxStr != '\0')) 	//until tx fifo full or end of string
0009d8  e1a00000          NOP      
                  |L1.2524|
0009dc  e51f088c          LDR      r0,|L1.344|
0009e0  e5900018          LDR      r0,[r0,#0x18]
0009e4  e3100c40          TST      r0,#0x4000
0009e8  1a00000d          BNE      |L1.2596|
0009ec  e51f08a0          LDR      r0,|L1.340|
0009f0  e5900000          LDR      r0,[r0,#0]  ; uart1TxStr
0009f4  e5d00000          LDRB     r0,[r0,#0]
0009f8  e3500000          CMP      r0,#0
0009fc  0a000008          BEQ      |L1.2596|
;;;306        	WrUTXH1(*uart1TxStr++);	
000a00  e51f08b4          LDR      r0,|L1.340|
000a04  e5901000          LDR      r1,[r0,#0]  ; uart1TxStr
000a08  e5d10000          LDRB     r0,[r1,#0]
000a0c  e2811001          ADD      r1,r1,#1
000a10  e51f28c4          LDR      r2,|L1.340|
000a14  e5821000          STR      r1,[r2,#0]  ; uart1TxStr
000a18  e51f18c8          LDR      r1,|L1.344|
000a1c  e5c10020          STRB     r0,[r1,#0x20]
000a20  eaffffed          B        |L1.2524|
;;;307    
;;;308        if(*uart1TxStr == '\0') 
                  |L1.2596|
000a24  e51f08d8          LDR      r0,|L1.340|
000a28  e5900000          LDR      r0,[r0,#0]  ; uart1TxStr
000a2c  e5d00000          LDRB     r0,[r0,#0]
000a30  e3500000          CMP      r0,#0
000a34  1a000010          BNE      |L1.2684|
;;;309        {
;;;310        	rINTMSK|=BIT_UART1;
000a38  e51f08f0          LDR      r0,|L1.336|
000a3c  e5900008          LDR      r0,[r0,#8]
000a40  e3800880          ORR      r0,r0,#0x800000
000a44  e51f18fc          LDR      r1,|L1.336|
000a48  e5810008          STR      r0,[r1,#8]
;;;311            rSUBSRCPND=BIT_SUB_TXD1;	// Clear Sub int pending
000a4c  e3a00010          MOV      r0,#0x10
000a50  e1c11000          BIC      r1,r1,r0
000a54  e5810018          STR      r0,[r1,#0x18]
;;;312            ClearPending(BIT_UART1);	// Clear master pending
000a58  e3a00880          MOV      r0,#0x800000
000a5c  e1c11000          BIC      r1,r1,r0
000a60  e5810000          STR      r0,[r1,#0]
000a64  e1c10000          BIC      r0,r1,r0
000a68  e5900010          LDR      r0,[r0,#0x10]
000a6c  e5810010          STR      r0,[r1,#0x10]
000a70  e1a00001          MOV      r0,r1
000a74  e5900010          LDR      r0,[r0,#0x10]
000a78  ea00000e          B        |L1.2744|
;;;313        }
;;;314        else 
;;;315        {
;;;316            ClearPending(BIT_UART1);	// Clear master pending
                  |L1.2684|
000a7c  e3a00880          MOV      r0,#0x800000
000a80  e51f1938          LDR      r1,|L1.336|
000a84  e5810000          STR      r0,[r1,#0]
000a88  e1c10000          BIC      r0,r1,r0
000a8c  e5900010          LDR      r0,[r0,#0x10]
000a90  e5810010          STR      r0,[r1,#0x10]
000a94  e1a00001          MOV      r0,r1
000a98  e5900010          LDR      r0,[r0,#0x10]
;;;317            rSUBSRCPND=BIT_SUB_TXD1;	// Clear Sub int pending
000a9c  e3a00010          MOV      r0,#0x10
000aa0  e1c11000          BIC      r1,r1,r0
000aa4  e5810018          STR      r0,[r1,#0x18]
;;;318            rINTSUBMSK&=~(BIT_SUB_TXD1);	// Unmask sub int
000aa8  e1c10000          BIC      r0,r1,r0
000aac  e590001c          LDR      r0,[r0,#0x1c]
000ab0  e3c00010          BIC      r0,r0,#0x10
000ab4  e581001c          STR      r0,[r1,#0x1c]
;;;319        }
;;;320    }
                  |L1.2744|
000ab8  e8bd0007          LDMFD    sp!,{r0-r2}
000abc  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  __sub_Uart1_RxFifo PROC
;;;332    void __sub_Uart1_RxFifo(void)
;;;333    {
000ac0  e1a00000          NOP      
;;;334        while((rUFSTAT1&0x40)||(rUFSTAT1&0x3f))	//During the Rx FIFO is not empty
                  |L1.2756|
000ac4  e51f0974          LDR      r0,|L1.344|
000ac8  e5900018          LDR      r0,[r0,#0x18]
000acc  e3100040          TST      r0,#0x40
000ad0  1a000003          BNE      |L1.2788|
000ad4  e51f0984          LDR      r0,|L1.344|
000ad8  e5900018          LDR      r0,[r0,#0x18]
000adc  e310003f          TST      r0,#0x3f
000ae0  0a00003d          BEQ      |L1.3036|
;;;335        {
;;;336    	rx_point++;
                  |L1.2788|
000ae4  e59f0410          LDR      r0,|L1.3836|
000ae8  e5900000          LDR      r0,[r0,#0]  ; rx_point
000aec  e2800001          ADD      r0,r0,#1
000af0  e59f1404          LDR      r1,|L1.3836|
000af4  e5810000          STR      r0,[r1,#0]  ; rx_point
;;;337    	if(rx_point<5)
000af8  e59f03fc          LDR      r0,|L1.3836|
000afc  e5900000          LDR      r0,[r0,#0]  ; rx_point
000b00  e3500005          CMP      r0,#5
000b04  2a00000c          BCS      |L1.2876|
;;;338    		 rx_filesize |= (RdURXH1()<<(8*(rx_point-1))); // First 4-bytes mean file size
000b08  e51f09b8          LDR      r0,|L1.344|
000b0c  e5d00024          LDRB     r0,[r0,#0x24]
000b10  e59f13e4          LDR      r1,|L1.3836|
000b14  e5911000          LDR      r1,[r1,#0]  ; rx_point
000b18  e3e02007          MVN      r2,#7
000b1c  e0821181          ADD      r1,r2,r1,LSL #3
000b20  e1a00110          MOV      r0,r0,LSL r1
000b24  e59f13d4          LDR      r1,|L1.3840|
000b28  e5911000          LDR      r1,[r1,#0]  ; rx_filesize
000b2c  e1800001          ORR      r0,r0,r1
000b30  e59f13c8          LDR      r1,|L1.3840|
000b34  e5810000          STR      r0,[r1,#0]  ; rx_filesize
000b38  ea000026          B        |L1.3032|
;;;339    	else if(rx_point>(rx_filesize-2))	
                  |L1.2876|
000b3c  e59f03b8          LDR      r0,|L1.3836|
000b40  e5900000          LDR      r0,[r0,#0]  ; rx_point
000b44  e59f13b4          LDR      r1,|L1.3840|
000b48  e5911000          LDR      r1,[r1,#0]  ; rx_filesize
000b4c  e2411002          SUB      r1,r1,#2
000b50  e1500001          CMP      r0,r1
000b54  9a000018          BLS      |L1.3004|
;;;340    	{
;;;341    		rx_dncs |= (RdURXH1()<<(8*(1-(rx_filesize-rx_point)))); //Last 2-bytes mean checksum.
000b58  e51f0a08          LDR      r0,|L1.344|
000b5c  e5d00024          LDRB     r0,[r0,#0x24]
000b60  e59f1398          LDR      r1,|L1.3840|
000b64  e5911000          LDR      r1,[r1,#0]  ; rx_filesize
000b68  e59f238c          LDR      r2,|L1.3836|
000b6c  e5922000          LDR      r2,[r2,#0]  ; rx_point
000b70  e0411002          SUB      r1,r1,r2
000b74  e2611001          RSB      r1,r1,#1
000b78  e1a01181          MOV      r1,r1,LSL #3
000b7c  e1a00110          MOV      r0,r0,LSL r1
000b80  e59f137c          LDR      r1,|L1.3844|
000b84  e1d110b0          LDRH     r1,[r1,#0]  ; rx_dncs
000b88  e1800001          ORR      r0,r0,r1
000b8c  e59f1370          LDR      r1,|L1.3844|
000b90  e1c100b0          STRH     r0,[r1,#0]  ; rx_dncs
;;;342    		if(rx_point==rx_filesize) rx_isdone=0;
000b94  e59f0360          LDR      r0,|L1.3836|
000b98  e5900000          LDR      r0,[r0,#0]  ; rx_point
000b9c  e59f135c          LDR      r1,|L1.3840|
000ba0  e5911000          LDR      r1,[r1,#0]  ; rx_filesize
000ba4  e1500001          CMP      r0,r1
000ba8  1a00000a          BNE      |L1.3032|
000bac  e3a00000          MOV      r0,#0
000bb0  e59f1350          LDR      r1,|L1.3848|
000bb4  e5810000          STR      r0,[r1,#0]  ; rx_isdone
000bb8  ea000006          B        |L1.3032|
;;;343    	}
;;;344    	else
;;;345    		rx_checksum+=RdURXH1();
                  |L1.3004|
000bbc  e51f0a6c          LDR      r0,|L1.344|
000bc0  e5d00024          LDRB     r0,[r0,#0x24]
000bc4  e59f1340          LDR      r1,|L1.3852|
000bc8  e5911000          LDR      r1,[r1,#0]  ; rx_checksum
000bcc  e0800001          ADD      r0,r0,r1
000bd0  e59f1334          LDR      r1,|L1.3852|
000bd4  e5810000          STR      r0,[r1,#0]  ; rx_checksum
;;;346        }
                  |L1.3032|
000bd8  eaffffb9          B        |L1.2756|
;;;347    }
                  |L1.3036|
000bdc  e12fff1e          BX       lr
                          ENDP

⌨️ 快捷键说明

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