📄 probe_rs232.txt
字号:
000128 bd70 POP {r4-r6,pc}
00012a 4d87 LDR r5,|L1.840|
00012c 4888 LDR r0,|L1.848|
00012e 8829 LDRH r1,[r5,#0] ; ProbeRS232_TxBufRdIx
000130 5c44 LDRB r4,[r0,r1]
000132 4620 MOV r0,r4
000134 f7fff7ff BL ProbeRS232_Tx1
000138 4882 LDR r0,|L1.836|
00013a 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
00013c 1c49 ADDS r1,r1,#1
00013e 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
000140 4882 LDR r0,|L1.844|
000142 7801 LDRB r1,[r0,#0] ; ProbeRS232_TxChkSum
000144 4421 ADD r1,r1,r4
000146 7001 STRB r1,[r0,#0] ; ProbeRS232_TxChkSum
000148 8828 LDRH r0,[r5,#0] ; ProbeRS232_TxBufRdIx
00014a 1c40 ADDS r0,r0,#1
00014c b280 UXTH r0,r0
00014e 8028 STRH r0,[r5,#0] ; ProbeRS232_TxBufRdIx
000150 4979 LDR r1,|L1.824|
000152 880a LDRH r2,[r1,#0] ; ProbeRS232_TxLen
000154 4290 CMP r0,r2
000156 d3e7 BCC |L1.296|
000158 4a76 LDR r2,|L1.820|
00015a 2009 MOVS r0,#9
00015c 7010 STRB r0,[r2,#0] ; ProbeRS232_TxState
00015e 2000 MOVS r0,#0
000160 8008 STRH r0,[r1,#0] ; ProbeRS232_TxLen
000162 bd70 POP {r4-r6,pc}
000164 4879 LDR r0,|L1.844|
000166 7800 LDRB r0,[r0,#0] ; ProbeRS232_TxChkSum
000168 f7fff7ff BL ProbeRS232_Tx1
00016c 4875 LDR r0,|L1.836|
00016e 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000170 1c49 ADDS r1,r1,#1
000172 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
000174 496f LDR r1,|L1.820|
000176 200a MOVS r0,#0xa
000178 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
00017a bd70 POP {r4-r6,pc}
00017c 202f MOVS r0,#0x2f
00017e f7fff7ff BL ProbeRS232_Tx1
000182 4870 LDR r0,|L1.836|
000184 6881 LDR r1,[r0,#8] ; ProbeRS232_TxCtr
000186 1c49 ADDS r1,r1,#1
000188 6081 STR r1,[r0,#8] ; ProbeRS232_TxCtr
00018a 4a6a LDR r2,|L1.820|
00018c 2100 MOVS r1,#0
00018e 7011 STRB r1,[r2,#0] ; ProbeRS232_TxState
000190 4a6b LDR r2,|L1.832|
000192 7011 STRB r1,[r2,#0] ; ProbeRS232_TxBufInUse
000194 68c1 LDR r1,[r0,#0xc] ; ProbeRS232_TxPktCtr
000196 1c49 ADDS r1,r1,#1
000198 60c1 STR r1,[r0,#0xc] ; ProbeRS232_TxPktCtr
00019a bd70 POP {r4-r6,pc}
|L1.412|
00019c 4965 LDR r1,|L1.820|
00019e 2000 MOVS r0,#0
0001a0 7008 STRB r0,[r1,#0] ; ProbeRS232_TxState
0001a2 4966 LDR r1,|L1.828|
0001a4 7008 STRB r0,[r1,#0] ; ProbeRS232_TxActiveFlag
0001a6 e8bde8bd POP {r4-r6,lr}
0001aa f7fff7ff B.W ProbeRS232_TxIntDis
;;;519
ENDP
ProbeRS232_TxStart PROC
;;;666 static void ProbeRS232_TxStart (void)
;;;667 {
0001ae b510 PUSH {r4,lr}
;;;668 if (ProbeRS232_TxActiveFlag == DEF_FALSE) { /* If no other transmission is in progress */
0001b0 4862 LDR r0,|L1.828|
0001b2 7800 LDRB r0,[r0,#0] ; ProbeRS232_TxActiveFlag
0001b4 2800 CMP r0,#0
0001b6 d105 BNE |L1.452|
;;;669 ProbeRS232_TxHandler(); /* ... Handle transmit */
0001b8 f7fff7ff BL ProbeRS232_TxHandler
;;;670 ProbeRS232_TxIntEn(); /* ... Enable transmit interrupts */
0001bc e8bde8bd POP {r4,lr}
0001c0 f7fff7ff B.W ProbeRS232_TxIntEn
|L1.452|
;;;671 }
;;;672 }
0001c4 bd10 POP {r4,pc}
ENDP
ProbeRS232_ParseRxPkt PROC
;;;545
;;;546 if (ProbeRS232_TxBufInUse == DEF_TRUE) { /* Do cmds only if Tx buffer is free */
0001c6 485e LDR r0,|L1.832|
0001c8 7801 LDRB r1,[r0,#0] ; ProbeRS232_TxBufInUse
0001ca 2901 CMP r1,#1
0001cc d101 BNE |L1.466|
;;;547 return (0);
0001ce 2000 MOVS r0,#0
;;;548 }
;;;549
;;;550 ProbeRS232_TxBufInUse = DEF_TRUE;
;;;551 temp = ProbeCom_ParseRxPkt((void *)ProbeRS232_RxBuf,
;;;552 (void *)ProbeRS232_TxBuf,
;;;553 ProbeRS232_RxLen,
;;;554 PROBE_RS232_TX_BUF_SIZE);
;;;555
;;;556 return (temp);
;;;557 }
0001d0 4770 BX lr
|L1.466|
0001d2 2101 MOVS r1,#1
0001d4 7001 STRB r1,[r0,#0] ; ProbeRS232_TxBufInUse
0001d6 485f LDR r0,|L1.852|
0001d8 2340 MOVS r3,#0x40
0001da 8802 LDRH r2,[r0,#0] ; ProbeRS232_RxLen
0001dc 495c LDR r1,|L1.848|
0001de 485e LDR r0,|L1.856|
0001e0 f7fff7ff B.W ProbeCom_ParseRxPkt
;;;558
ENDP
ProbeRS232_Task PROC
;;;253 void ProbeRS232_Task (void *p_arg)
;;;254 {
0001e4 b510 PUSH {r4,lr}
0001e6 4c54 LDR r4,|L1.824|
|L1.488|
;;;255 CPU_INT16U len;
;;;256
;;;257
;;;258 (void)p_arg;
;;;259
;;;260 while (DEF_TRUE) {
;;;261 ProbeRS232_OS_Pend(); /* Wait for a packet to be received */
0001e8 f7fff7ff BL ProbeRS232_OS_Pend
;;;262
;;;263 len = ProbeRS232_ParseRxPkt(); /* Parse packet and formulate a response */
0001ec f7fff7ff BL ProbeRS232_ParseRxPkt
;;;264
;;;265 if (len > 0) { /* If we have a response */
0001f0 2800 CMP r0,#0
0001f2 d0f9 BEQ |L1.488|
;;;266 ProbeRS232_TxLen = len;
0001f4 8020 STRH r0,[r4,#0] ; ProbeRS232_TxLen
;;;267 ProbeRS232_TxStart();
0001f6 f7fff7ff BL ProbeRS232_TxStart
0001fa e7f5 B |L1.488|
;;;268 }
;;;269 }
;;;270 }
;;;271 #endif
ENDP
ProbeRS232_RxPkt PROC
;;;582 #if (PROBE_RS232_PARSE_TASK > 0)
;;;583 ProbeRS232_OS_Post(); /* We have a whole packet, signal task to parse it */
0001fc f7fff7ff B.W ProbeRS232_OS_Post
;;;584
;;;585
;;;586
;;;587 #else
;;;588
;;;589
;;;590
;;;591 #if (CPU_CFG_CRITICAL_METHOD == CPU_CRITICAL_METHOD_STATUS_LOCAL)
;;;592 CPU_SR cpu_sr = 0;
;;;593 #endif
;;;594 CPU_INT16U len;
;;;595
;;;596
;;;597 len = ProbeRS232_ParseRxPkt(); /* We have a whole packet, parse it */
;;;598 if (len > 0) {
;;;599 CPU_CRITICAL_ENTER();
;;;600 ProbeRS232_TxLen = len;
;;;601 ProbeRS232_TxStart();
;;;602 CPU_CRITICAL_EXIT();
;;;603 }
;;;604 #endif
;;;605 }
;;;606
ENDP
ProbeRS232_RxStoINT8U PROC
;;;621 {
;;;622 if (ProbeRS232_RxBufWrIx < PROBE_RS232_RX_BUF_SIZE) {
000200 4a56 LDR r2,|L1.860|
000202 8811 LDRH r1,[r2,#0] ; ProbeRS232_RxBufWrIx
000204 2940 CMP r1,#0x40
000206 d203 BCS |L1.528|
;;;623 ProbeRS232_RxBuf[ProbeRS232_RxBufWrIx++] = rx_data;
000208 1c4b ADDS r3,r1,#1
00020a 8013 STRH r3,[r2,#0] ; ProbeRS232_RxBufWrIx
00020c 4a52 LDR r2,|L1.856|
00020e 5450 STRB r0,[r2,r1]
|L1.528|
;;;624 }
;;;625 }
000210 4770 BX lr
;;;626
ENDP
ProbeRS232_RxBufClr PROC
;;;641 {
;;;642 ProbeRS232_RxBufWrIx = 0;
000212 4952 LDR r1,|L1.860|
000214 2000 MOVS r0,#0
000216 8008 STRH r0,[r1,#0] ; ProbeRS232_RxBufWrIx
;;;643 }
000218 4770 BX lr
;;;644
ENDP
ProbeRS232_RxHandler PROC
;;;294 void ProbeRS232_RxHandler (CPU_INT08U rx_data)
;;;295 {
00021a b510 PUSH {r4,lr}
00021c 4604 MOV r4,r0
;;;296 ProbeRS232_RxCtr++;
00021e 4849 LDR r0,|L1.836|
000220 6801 LDR r1,[r0,#0] ; ProbeRS232_RxCtr
000222 1c49 ADDS r1,r1,#1
000224 6001 STR r1,[r0,#0] ; ProbeRS232_RxCtr
;;;297
;;;298 switch (ProbeRS232_RxState) {
000226 4842 LDR r0,|L1.816|
000228 7800 LDRB r0,[r0,#0] ; ProbeRS232_RxState
00022a 280b CMP r0,#0xb
00022c d27b BCS |L1.806|
00022e e8dfe8df TBB [pc,r0]
000232 060e1822 DCB 0x06,0x0e,0x18,0x22
000236 2c344b4f DCB 0x2c,0x34,0x4b,0x4f
00023a 53656d00 DCB 0x53,0x65,0x6d,0x00
;;;299
;;;300 case PROBE_RS232_RX_STATE_SD0: /* Receive the start first start delimiter (SD0) */
;;;301 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD0) {
00023e 2c75 CMP r4,#0x75
000240 d10a BNE |L1.600|
;;;302 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD1;
000242 493b LDR r1,|L1.816|
000244 2001 MOVS r0,#1
000246 7008 STRB r0,[r1,#0] ; ProbeRS232_RxState
;;;303 ProbeRS232_RxBufClr();
000248 e8bde8bd POP {r4,lr}
00024c e7fe B ProbeRS232_RxBufClr
;;;304 }
;;;305 break;
;;;306
;;;307 case PROBE_RS232_RX_STATE_SD1: /* Receive the start second start delimiter (SD1) */
;;;308 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD1) {
00024e 2c43 CMP r4,#0x43
000250 d103 BNE |L1.602|
;;;309 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD2;
000252 4937 LDR r1,|L1.816|
000254 2002 MOVS r0,#2
000256 7008 STRB r0,[r1,#0] ; ProbeRS232_RxState
|L1.600|
;;;310 } else {
;;;311 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
;;;312 }
;;;313 break;
;;;314
;;;315 case PROBE_RS232_RX_STATE_SD2: /* Receive the start third start delimiter (SD2) */
;;;316 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD2) {
;;;317 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD3;
;;;318 } else {
;;;319 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
;;;320 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -