📄 uart.txt
字号:
ENDP
UART1_SendByte PROC
;;;194 void UART1_SendByte(uint8 data)
;;;195 { U1THR = data; // 发送数据
0004a8 e59f1164 LDR r1,|L1.1556|
0004ac e5c10000 STRB r0,[r1,#0]
;;;196 IO0SET=M485_EN;
0004b0 e3a01a02 MOV r1,#0x2000
0004b4 e59f2154 LDR r2,|L1.1552|
0004b8 e5821004 STR r1,[r2,#4]
;;;197 while( (U1LSR&0x40)==0 ){;} // 等待数据发送完毕
0004bc e1a00000 MOV r0,r0
|L1.1216|
0004c0 e59f114c LDR r1,|L1.1556|
0004c4 e5d11014 LDRB r1,[r1,#0x14]
0004c8 e3110040 TST r1,#0x40
0004cc 0afffffb BEQ |L1.1216|
;;;198 IO0CLR=M485_EN;
0004d0 e3a01a02 MOV r1,#0x2000
0004d4 e59f2134 LDR r2,|L1.1552|
0004d8 e582100c STR r1,[r2,#0xc]
;;;199 }
0004dc e12fff1e BX lr
;;;200 /****************************************************************************
ENDP
UART0_SendStr PROC
;;;206 void UART0_SendStr(uint8 const *str)
;;;207 { while(1)
0004e0 e52de004 PUSH {lr}
0004e4 e1a02000 MOV r2,r0
0004e8 ea000005 B |L1.1284|
|L1.1260|
;;;208 { if( *str == '\0' ) break;
0004ec e5d20000 LDRB r0,[r2,#0]
0004f0 e3500000 CMP r0,#0
0004f4 1a000000 BNE |L1.1276|
0004f8 ea000002 B |L1.1288|
|L1.1276|
;;;209 UART0_SendByte(*str++); // 发送数据
0004fc e4d20001 LDRB r0,[r2],#1
000500 ebfffffe BL UART0_SendByte
|L1.1284|
000504 eafffff8 B |L1.1260|
|L1.1288|
000508 e1a00000 MOV r0,r0 ;208
;;;210 }
;;;211 }
00050c e49de004 POP {lr}
000510 e12fff1e BX lr
;;;212
ENDP
SendByte0 PROC
;;;221 {
;;;222 U0THR = data; // 发送数据
000514 e59f10c8 LDR r1,|L1.1508|
000518 e5c10000 STRB r0,[r1,#0]
;;;223 }
00051c e12fff1e BX lr
;;;224 /****************************************************************************
ENDP
SendByte1 PROC
;;;231 {
;;;232 U1THR = data; // 发送数据
000520 e59f10ec LDR r1,|L1.1556|
000524 e5c10000 STRB r0,[r1,#0]
;;;233 }
000528 e12fff1e BX lr
;;;234
ENDP
ISendBuf0 PROC
;;;242 void ISendBuf0(void)
;;;243 { uint8 i;
00052c e52de004 PUSH {lr}
;;;244 /* if(0)
;;;245 {
;;;246 rcv_buf[15]=0x08;
;;;247 rcv_buf[0]=0x11;
;;;248 rcv_buf[1]=0x12;
;;;249 rcv_buf[2]=0x13;
;;;250 rcv_buf[3]=0x14;
;;;251 rcv_buf[4]=0x15;
;;;252 rcv_buf[5]=0x16;
;;;253 rcv_buf[6]=0x17;
;;;254 rcv_buf[7]=0x18;
;;;255 rcv_buf[8]=0x19;
;;;256 rcv_buf[9]=0x20;
;;;257 rcv_buf[10]=0x21;
;;;258 rcv_buf[11]=0x22;
;;;259 rcv_buf[12]=0x23;
;;;260 rcv_buf[13]=0x24;
;;;261 rcv_buf[14]=0x25;
;;;262 } */
;;;263 for(i=0; i<16; i++) SendByte0(i);
000530 e3a02000 MOV r2,#0
000534 ea000003 B |L1.1352|
|L1.1336|
000538 e1a00002 MOV r0,r2
00053c ebfffffe BL SendByte0
000540 e2820001 ADD r0,r2,#1
000544 e20020ff AND r2,r0,#0xff
|L1.1352|
000548 e3520010 CMP r2,#0x10
00054c bafffff9 BLT |L1.1336|
;;;264 while( (U0LSR&0x20)==0 ); // 等待数据发送
000550 e1a00000 MOV r0,r0
|L1.1364|
000554 e59f0088 LDR r0,|L1.1508|
000558 e5d00014 LDRB r0,[r0,#0x14]
00055c e3100020 TST r0,#0x20
000560 0afffffb BEQ |L1.1364|
;;;265 }
000564 e49de004 POP {lr}
000568 e12fff1e BX lr
;;;266 /****************************************************************************
ENDP
ISendBuf1 PROC
;;;273 void ISendBuf1(void)
;;;274 { uint8 i;
00056c e52de004 PUSH {lr}
;;;275 IO0SET|=M485_EN;
000570 e59f0098 LDR r0,|L1.1552|
000574 e5900004 LDR r0,[r0,#4]
000578 e3800a02 ORR r0,r0,#0x2000
00057c e59f108c LDR r1,|L1.1552|
000580 e5810004 STR r0,[r1,#4]
;;;276 for(i=0; i<16; i++)
000584 e3a03000 MOV r3,#0
000588 ea000004 B |L1.1440|
|L1.1420|
;;;277 {
;;;278 SendByte1(rcv_buf1[i]);
00058c e59f1088 LDR r1,|L1.1564|
000590 e7d10003 LDRB r0,[r1,r3]
000594 ebfffffe BL SendByte1
000598 e2830001 ADD r0,r3,#1 ;276
00059c e20030ff AND r3,r0,#0xff ;276
|L1.1440|
0005a0 e3530010 CMP r3,#0x10 ;276
0005a4 bafffff8 BLT |L1.1420|
;;;279 }
;;;280 while( (U1LSR&0x20)==0 ){;} // 等待数据发送
0005a8 e1a00000 MOV r0,r0
|L1.1452|
0005ac e59f0060 LDR r0,|L1.1556|
0005b0 e5d00014 LDRB r0,[r0,#0x14]
0005b4 e3100020 TST r0,#0x20
0005b8 0afffffb BEQ |L1.1452|
;;;281 DelayNS(1);
0005bc e3a00001 MOV r0,#1
0005c0 ebfffffe BL DelayNS
;;;282 IO0CLR|=M485_EN;
0005c4 e59f0044 LDR r0,|L1.1552|
0005c8 e590000c LDR r0,[r0,#0xc]
0005cc e3800a02 ORR r0,r0,#0x2000
0005d0 e59f1038 LDR r1,|L1.1552|
0005d4 e581000c STR r0,[r1,#0xc]
;;;283 }
0005d8 e49de004 POP {lr}
0005dc e12fff1e BX lr
;;;284
ENDP
|L1.1504|
0005e0 0000c350 DCD 0x0000c350
|L1.1508|
0005e4 e000c000 DCD 0xe000c000
|L1.1512|
0005e8 00000000 DCD no_full
|L1.1516|
0005ec 00000000 DCD head_buff
|L1.1520|
0005f0 00000000 DCD n
|L1.1524|
0005f4 00000000 DCD j
|L1.1528|
0005f8 00000000 DCD verify
|L1.1532|
0005fc 00000000 DCD recve_length
|L1.1536|
000600 00000000 DCD rcv_new
|L1.1540|
000604 00000000 DCD rcv_buf
|L1.1544|
000608 00000000 DCD answer_falg
|L1.1548|
00060c 000a8c00 DCD 0x000a8c00
|L1.1552|
000610 e0028000 DCD 0xe0028000
|L1.1556|
000614 e0010000 DCD 0xe0010000
|L1.1560|
000618 00000000 DCD uart1_rec_flag
|L1.1564|
00061c 00000000 DCD rcv_buf1
|L1.1568|
000620 00000000 DCD rcv_new1
AREA ||.data||, DATA, ALIGN=0
uart0_rec_flag
000000 00 DCB 0x00
n
000001 00 DCB 0x00
j
000002 00 DCB 0x00
uart1_rec_flag
000003 00 DCB 0x00
rcv_new
000004 00 DCB 0x00
rcv_new1
000005 00 DCB 0x00
answer_falg
000006 00 DCB 0x00
temp
000007 00 DCB 0x00
head_cnt
000008 00 DCB 0x00
verify
000009 00 DCB 0x00
no_full
00000a 00 DCB 0x00
head_buff
00000b 00000000 DCDU 0x00000000
00000f 0000 DCB 0x00,0x00
recve_length
000011 00 DCB 0x00
AREA ||.bss||, DATA, NOINIT, ALIGN=0
rcv_buf
% 40
rcv_buf1
% 16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -