📄 probe_rs232.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\probe_rs232.o --depend=.\rvmdk\probe_rs232.d --device=DARMSTM -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -ID:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source\probe_rs232.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
ProbeRS232_Init PROC
;;;215 void ProbeRS232_Init (CPU_INT32U baud_rate)
;;;216 {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;217 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0; /* Setup Rx and Tx state machines */
000004 49ca LDR r1,|L1.816|
000006 2000 MOVS r0,#0
000008 7008 STRB r0,[r1,#0] ; ProbeRS232_RxState
;;;218 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD0;
00000a 49ca LDR r1,|L1.820|
00000c 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
;;;219
;;;220 ProbeRS232_TxLen = 0;
00000e 49ca LDR r1,|L1.824|
000010 8008 STRH r0,[r1,#0] ; ProbeRS232_TxLen
;;;221 ProbeRS232_TxActiveFlag = DEF_FALSE;
000012 49ca LDR r1,|L1.828|
000014 7008 STRB r0,[r1,#0] ; ProbeRS232_TxActiveFlag
;;;222 ProbeRS232_TxBufInUse = DEF_FALSE;
000016 49ca LDR r1,|L1.832|
000018 7008 STRB r0,[r1,#0] ; ProbeRS232_TxBufInUse
;;;223
;;;224 #if (PROBE_RS232_PARSE_TASK > 0)
;;;225 ProbeRS232_OS_Init();
00001a f7fff7ff BL ProbeRS232_OS_Init
;;;226 #endif
;;;227
;;;228 ProbeRS232_InitTarget(baud_rate); /* Initialize target specific code */
00001e 4620 MOV r0,r4
000020 e8bde8bd POP {r4,lr}
000024 f7fff7ff B.W ProbeRS232_InitTarget
;;;229 }
;;;230
ENDP
ProbeRS232_TxHandler PROC
;;;413 void ProbeRS232_TxHandler (void)
;;;414 {
000028 b570 PUSH {r4-r6,lr}
;;;415 CPU_INT08U tx_data;
;;;416
;;;417
;;;418 switch (ProbeRS232_TxState) {
00002a 48c2 LDR r0,|L1.820|
00002c 7800 LDRB r0,[r0,#0] ; ProbeRS232_TxState
00002e 280b CMP r0,#0xb
000030 f080f080 BCS.W |L1.412|
000034 e8dfe8df TBB [pc,r0]
000038 06202b36 DCB 0x06,0x20,0x2b,0x36
00003c 4151636e DCB 0x41,0x51,0x63,0x6e
000040 7996a200 DCB 0x79,0x96,0xa2,0x00
;;;419 case PROBE_RS232_TX_STATE_SD0:
;;;420 if (ProbeRS232_TxLen > 0) { /* If packet is waiting to be sent */
000044 48bc LDR r0,|L1.824|
000046 8800 LDRH r0,[r0,#0] ; ProbeRS232_TxLen
000048 b178 CBZ r0,|L1.106|
;;;421 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD0); /* ... Transmit start first start delimiter (SD0) */
00004a 2075 MOVS r0,#0x75
00004c f7fff7ff BL ProbeRS232_Tx1
;;;422 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
000050 48bc LDR r0,|L1.836|
000052 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000054 1c49 ADDS r1,r1,#1
000056 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
;;;423 ProbeRS232_TxActiveFlag = DEF_TRUE; /* ... Transmit in process */
000058 49b8 LDR r1,|L1.828|
00005a 2001 MOVS r0,#1
00005c 7008 STRB r0,[r1,#0] ; ProbeRS232_TxActiveFlag
;;;424 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD1;
00005e 49b5 LDR r1,|L1.820|
000060 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
;;;425 ProbeRS232_TxBufRdIx = 0;
000062 49b9 LDR r1,|L1.840|
000064 2000 MOVS r0,#0
000066 8008 STRH r0,[r1,#0] ; ProbeRS232_TxBufRdIx
;;;426
;;;427 } else { /* If no packet is waiting to be sent */
;;;428 ProbeRS232_TxActiveFlag = DEF_FALSE; /* ... Transmission not active */
;;;429 ProbeRS232_TxIntDis(); /* ... Disable transmit interrupts */
;;;430 }
;;;431 break;
;;;432
;;;433
;;;434 case PROBE_RS232_TX_STATE_SD1: /* Transmit start second start delimiter (SD1) */
;;;435 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD1);
;;;436 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;437 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD2;
;;;438 break;
;;;439
;;;440 case PROBE_RS232_TX_STATE_SD2: /* Transmit start third start delimiter (SD2) */
;;;441 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD2);
;;;442 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;443 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD3;
;;;444 break;
;;;445
;;;446 case PROBE_RS232_TX_STATE_SD3: /* Transmit start fourth start delimiter (SD3) */
;;;447 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD3);
;;;448 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;449 ProbeRS232_TxState = PROBE_RS232_TX_STATE_LEN1;
;;;450 break;
;;;451
;;;452
;;;453 case PROBE_RS232_TX_STATE_LEN1: /* Transmit first length byte */
;;;454 tx_data = ProbeRS232_TxLen & 0xFF;
;;;455 ProbeRS232_Tx1(tx_data);
;;;456 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;457 ProbeRS232_TxState = PROBE_RS232_TX_STATE_LEN2;
;;;458 ProbeRS232_TxChkSum = tx_data;
;;;459 break;
;;;460
;;;461 case PROBE_RS232_TX_STATE_LEN2: /* Transmit second length byte */
;;;462 tx_data = ProbeRS232_TxLen >> 8;
;;;463 ProbeRS232_Tx1(tx_data);
;;;464 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;465 ProbeRS232_TxState = PROBE_RS232_TX_STATE_PAD1;
;;;466 ProbeRS232_TxChkSum += tx_data;
;;;467 break;
;;;468
;;;469
;;;470 case PROBE_RS232_TX_STATE_PAD1: /* Transmit first padding byte */
;;;471 ProbeRS232_Tx1(0);
;;;472 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;473 ProbeRS232_TxState = PROBE_RS232_TX_STATE_PAD2;
;;;474 break;
;;;475
;;;476 case PROBE_RS232_TX_STATE_PAD2: /* Transmit second padding byte */
;;;477 ProbeRS232_Tx1(0);
;;;478 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;479 ProbeRS232_TxState = PROBE_RS232_TX_STATE_DATA;
;;;480 break;
;;;481
;;;482
;;;483 case PROBE_RS232_TX_STATE_DATA: /* Transmit data */
;;;484 tx_data = ProbeRS232_TxBuf[ProbeRS232_TxBufRdIx];
;;;485 ProbeRS232_Tx1(tx_data);
;;;486 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;487 ProbeRS232_TxChkSum += tx_data;
;;;488 ProbeRS232_TxBufRdIx++;
;;;489 if (ProbeRS232_TxBufRdIx >= ProbeRS232_TxLen) { /* ... If all data has been sent */
;;;490 ProbeRS232_TxState = PROBE_RS232_TX_STATE_CHKSUM;
;;;491 ProbeRS232_TxLen = 0;
;;;492 }
;;;493 break;
;;;494
;;;495
;;;496 case PROBE_RS232_TX_STATE_CHKSUM: /* Transmit checksum */
;;;497 ProbeRS232_Tx1(ProbeRS232_TxChkSum);
;;;498 ProbeRS232_TxCtr++; /* ... Increment Tx counter */
;;;499 ProbeRS232_TxState = PROBE_RS232_TX_STATE_ED;
;;;500 break;
;;;501
;;;502
;;;503 case PROBE_RS232_TX_STATE_ED: /* Transmit end delimiter */
;;;504 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_ED);
;;;505 ProbeRS232_TxCtr++;
;;;506 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD0;
;;;507 ProbeRS232_TxBufInUse = DEF_FALSE;
;;;508 ProbeRS232_TxPktCtr++;
;;;509 break;
;;;510
;;;511
;;;512 default:
;;;513 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD0;
;;;514 ProbeRS232_TxActiveFlag = DEF_FALSE;
;;;515 ProbeRS232_TxIntDis(); /* No more data to send, disable Tx interrupts */
;;;516 break;
;;;517 }
;;;518 }
000068 bd70 POP {r4-r6,pc}
|L1.106|
00006a 49b4 LDR r1,|L1.828|
00006c 2000 MOVS r0,#0
00006e 7008 STRB r0,[r1,#0] ; ProbeRS232_TxActiveFlag
000070 e8bde8bd POP {r4-r6,lr}
000074 f7fff7ff B.W ProbeRS232_TxIntDis
000078 2043 MOVS r0,#0x43
00007a f7fff7ff BL ProbeRS232_Tx1
00007e 48b1 LDR r0,|L1.836|
000080 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000082 1c49 ADDS r1,r1,#1
000084 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
000086 49ab LDR r1,|L1.820|
000088 2002 MOVS r0,#2
00008a 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
00008c bd70 POP {r4-r6,pc}
00008e 2050 MOVS r0,#0x50
000090 f7fff7ff BL ProbeRS232_Tx1
000094 48ab LDR r0,|L1.836|
000096 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000098 1c49 ADDS r1,r1,#1
00009a 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
00009c 49a5 LDR r1,|L1.820|
00009e 2003 MOVS r0,#3
0000a0 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
0000a2 bd70 POP {r4-r6,pc}
0000a4 2072 MOVS r0,#0x72
0000a6 f7fff7ff BL ProbeRS232_Tx1
0000aa 48a6 LDR r0,|L1.836|
0000ac 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
0000ae 1c49 ADDS r1,r1,#1
0000b0 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
0000b2 49a0 LDR r1,|L1.820|
0000b4 2004 MOVS r0,#4
0000b6 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
0000b8 bd70 POP {r4-r6,pc}
0000ba 489f LDR r0,|L1.824|
0000bc 8800 LDRH r0,[r0,#0] ; ProbeRS232_TxLen
0000be b2c4 UXTB r4,r0
0000c0 4620 MOV r0,r4
0000c2 f7fff7ff BL ProbeRS232_Tx1
0000c6 489f LDR r0,|L1.836|
0000c8 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
0000ca 1c49 ADDS r1,r1,#1
0000cc 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
0000ce 4999 LDR r1,|L1.820|
0000d0 2005 MOVS r0,#5
0000d2 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
0000d4 489d LDR r0,|L1.844|
0000d6 7004 STRB r4,[r0,#0] ; ProbeRS232_TxChkSum
0000d8 bd70 POP {r4-r6,pc}
0000da 4897 LDR r0,|L1.824|
0000dc 8800 LDRH r0,[r0,#0] ; ProbeRS232_TxLen
0000de 0a04 LSRS r4,r0,#8
0000e0 4620 MOV r0,r4
0000e2 f7fff7ff BL ProbeRS232_Tx1
0000e6 4897 LDR r0,|L1.836|
0000e8 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
0000ea 1c49 ADDS r1,r1,#1
0000ec 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
0000ee 4991 LDR r1,|L1.820|
0000f0 2006 MOVS r0,#6
0000f2 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
0000f4 4895 LDR r0,|L1.844|
0000f6 7801 LDRB r1,[r0,#0] ; ProbeRS232_TxChkSum
0000f8 4421 ADD r1,r1,r4
0000fa 7001 STRB r1,[r0,#0] ; ProbeRS232_TxChkSum
0000fc bd70 POP {r4-r6,pc}
0000fe 2000 MOVS r0,#0
000100 f7fff7ff BL ProbeRS232_Tx1
000104 488f LDR r0,|L1.836|
000106 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000108 1c49 ADDS r1,r1,#1
00010a 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
00010c 4989 LDR r1,|L1.820|
00010e 2007 MOVS r0,#7
000110 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
000112 bd70 POP {r4-r6,pc}
000114 2000 MOVS r0,#0
000116 f7fff7ff BL ProbeRS232_Tx1
00011a 488a LDR r0,|L1.836|
00011c 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
00011e 1c49 ADDS r1,r1,#1
000120 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
000122 4984 LDR r1,|L1.820|
000124 2008 MOVS r0,#8
000126 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
|L1.296|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -