📄 uart1.txt
字号:
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 + -