📄 probe_rs232.lst
字号:
\ ProbeRS232_RxHandler:
\ 00000000 70B5 PUSH {R4-R6,LR}
304 #if (PROBE_COM_STAT_EN == DEF_ENABLED)
305 ProbeRS232_RxCtr++;
\ 00000002 .... LDR.N R4,??DataTable4 ;; ProbeRS232_RxState
\ 00000004 E168 LDR R1,[R4, #+12]
\ 00000006 491C ADDS R1,R1,#+1
\ 00000008 E160 STR R1,[R4, #+12]
306 #endif
307
308 switch (ProbeRS232_RxState) {
\ 0000000A A688 LDRH R6,[R4, #+4]
\ 0000000C 0025 MOVS R5,#+0
\ 0000000E 2178 LDRB R1,[R4, #+0]
\ 00000010 0A29 CMP R1,#+10
\ 00000012 4CD8 BHI.N ??ProbeRS232_RxHandler_1
\ 00000014 DFE801F0 TBB [PC, R1]
\ ??ProbeRS232_RxHandler_0:
\ 00000018 060D141B DC8 +6,+13,+20,+27
\ 0000001C 22263235 DC8 +34,+38,+50,+53
\ 00000020 38424500 DC8 +56,+66,+69,+0
309 case PROBE_RS232_RX_STATE_SD0: /* Rx'd the start 1st start delimiter (SD0). */
310 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD0) {
\ ??ProbeRS232_RxHandler_2:
\ 00000024 7528 CMP R0,#+117
\ 00000026 43D1 BNE.N ??ProbeRS232_RxHandler_3
311 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD1;
\ 00000028 0120 MOVS R0,#+1
\ 0000002A 2070 STRB R0,[R4, #+0]
312 ProbeRS232_RxBufClr();
\ 0000002C ........ BL ProbeRS232_RxBufClr
\ 00000030 70BD POP {R4-R6,PC}
313 }
314 break;
315
316
317 case PROBE_RS232_RX_STATE_SD1: /* Rx'd the start 2nd start delimiter (SD1). */
318 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD1) {
\ ??ProbeRS232_RxHandler_4:
\ 00000032 4328 CMP R0,#+67
\ 00000034 02D1 BNE.N ??ProbeRS232_RxHandler_5
319 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD2;
\ 00000036 0220 MOVS R0,#+2
\ 00000038 2070 STRB R0,[R4, #+0]
\ 0000003A 70BD POP {R4-R6,PC}
320 } else {
321 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_5:
\ 0000003C 2570 STRB R5,[R4, #+0]
\ 0000003E 70BD POP {R4-R6,PC}
322 }
323 break;
324
325
326 case PROBE_RS232_RX_STATE_SD2: /* Rx'd the start 3rd start delimiter (SD2). */
327 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD2) {
\ ??ProbeRS232_RxHandler_6:
\ 00000040 5028 CMP R0,#+80
\ 00000042 02D1 BNE.N ??ProbeRS232_RxHandler_7
328 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD3;
\ 00000044 0320 MOVS R0,#+3
\ 00000046 2070 STRB R0,[R4, #+0]
\ 00000048 70BD POP {R4-R6,PC}
329 } else {
330 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_7:
\ 0000004A 2570 STRB R5,[R4, #+0]
\ 0000004C 70BD POP {R4-R6,PC}
331 }
332 break;
333
334
335 case PROBE_RS232_RX_STATE_SD3: /* Rx'd the start 4th start delimiter (SD3). */
336 if (rx_data == PROBE_RS232_PROTOCOL_RX_SD3) {
\ ??ProbeRS232_RxHandler_8:
\ 0000004E 7228 CMP R0,#+114
\ 00000050 02D1 BNE.N ??ProbeRS232_RxHandler_9
337 ProbeRS232_RxState = PROBE_RS232_RX_STATE_LEN1;
\ 00000052 0420 MOVS R0,#+4
\ 00000054 2070 STRB R0,[R4, #+0]
\ 00000056 70BD POP {R4-R6,PC}
338 } else {
339 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_9:
\ 00000058 2570 STRB R5,[R4, #+0]
\ 0000005A 70BD POP {R4-R6,PC}
340 }
341 break;
342
343
344 case PROBE_RS232_RX_STATE_LEN1: /* Rx'd the 1st len byte. */
345 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
346 ProbeRS232_RxChkSum = rx_data;
347 #endif
348 ProbeRS232_RxRemainLen = rx_data;
\ ??ProbeRS232_RxHandler_10:
\ 0000005C A080 STRH R0,[R4, #+4]
349 ProbeRS232_RxState = PROBE_RS232_RX_STATE_LEN2;
\ 0000005E 0520 MOVS R0,#+5
\ 00000060 2070 STRB R0,[R4, #+0]
\ 00000062 70BD POP {R4-R6,PC}
350 break;
351
352
353 case PROBE_RS232_RX_STATE_LEN2: /* Rx'd the 2nd len byte. */
354 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
355 ProbeRS232_RxChkSum += rx_data;
356 #endif
357 ProbeRS232_RxRemainLen |= rx_data << 8;
\ ??ProbeRS232_RxHandler_11:
\ 00000064 56EA0020 ORRS R0,R6,R0, LSL #+8
\ 00000068 A080 STRH R0,[R4, #+4]
358
359 /* Chk len. */
360 if ((ProbeRS232_RxRemainLen == 0) || (ProbeRS232_RxRemainLen > PROBE_RS232_RX_BUF_SIZE)) {
\ 0000006A 01D0 BEQ.N ??ProbeRS232_RxHandler_12
\ 0000006C 8128 CMP R0,#+129
\ 0000006E 01D3 BCC.N ??ProbeRS232_RxHandler_13
361 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_12:
\ 00000070 2570 STRB R5,[R4, #+0]
\ 00000072 70BD POP {R4-R6,PC}
362 } else {
363 ProbeRS232_RxLen = ProbeRS232_RxRemainLen;
\ ??ProbeRS232_RxHandler_13:
\ 00000074 E080 STRH R0,[R4, #+6]
364 ProbeRS232_RxState = PROBE_RS232_RX_STATE_PAD1;
\ 00000076 0620 MOVS R0,#+6
\ 00000078 2070 STRB R0,[R4, #+0]
\ 0000007A 70BD POP {R4-R6,PC}
365 }
366 break;
367
368
369 case PROBE_RS232_RX_STATE_PAD1: /* Rx'd the 1st padding byte. */
370 ProbeRS232_RxState = PROBE_RS232_RX_STATE_PAD2;
\ ??ProbeRS232_RxHandler_14:
\ 0000007C 0720 MOVS R0,#+7
\ 0000007E 2070 STRB R0,[R4, #+0]
\ 00000080 70BD POP {R4-R6,PC}
371 break;
372
373
374 case PROBE_RS232_RX_STATE_PAD2: /* Rx'd the 2nd padding byte. */
375 ProbeRS232_RxState = PROBE_RS232_RX_STATE_DATA;
\ ??ProbeRS232_RxHandler_15:
\ 00000082 0820 MOVS R0,#+8
\ 00000084 2070 STRB R0,[R4, #+0]
\ 00000086 70BD POP {R4-R6,PC}
376 break;
377
378
379 case PROBE_RS232_RX_STATE_DATA: /* Rx'd data. */
380 ProbeRS232_RxStoINT8U(rx_data);
\ ??ProbeRS232_RxHandler_16:
\ 00000088 ........ BL ProbeRS232_RxStoINT8U
381 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
382 ProbeRS232_RxChkSum += rx_data;
383 #endif
384 if (--ProbeRS232_RxRemainLen == 0) {
\ 0000008C 761E SUBS R6,R6,#+1
\ 0000008E A680 STRH R6,[R4, #+4]
\ 00000090 B6B2 UXTH R6,R6
\ 00000092 002E CMP R6,#+0
\ 00000094 0CD1 BNE.N ??ProbeRS232_RxHandler_3
385 ProbeRS232_RxState = PROBE_RS232_RX_STATE_CHKSUM;
\ 00000096 0920 MOVS R0,#+9
\ 00000098 2070 STRB R0,[R4, #+0]
\ 0000009A 70BD POP {R4-R6,PC}
386 }
387 break;
388
389
390 case PROBE_RS232_RX_STATE_CHKSUM: /* Rx'd the checksum. */
391 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
392 ProbeRS232_RxChkSum += rx_data;
393 if ((ProbeRS232_RxChkSum & 0xFF) == 0x00) {
394 ProbeRS232_RxState = PROBE_RS232_RX_STATE_ED;
395 } else {
396 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
397 }
398 #else
399 ProbeRS232_RxState = PROBE_RS232_RX_STATE_ED;
\ ??ProbeRS232_RxHandler_17:
\ 0000009C 0A20 MOVS R0,#+10
\ 0000009E 2070 STRB R0,[R4, #+0]
\ 000000A0 70BD POP {R4-R6,PC}
400 #endif
401 break;
402
403
404 case PROBE_RS232_RX_STATE_ED: /* Rx'd the end delimiter. */
405 if (rx_data == PROBE_RS232_PROTOCOL_RX_ED) {
\ ??ProbeRS232_RxHandler_18:
\ 000000A2 2F28 CMP R0,#+47
\ 000000A4 01D1 BNE.N ??ProbeRS232_RxHandler_19
406 ProbeRS232_RxPkt(); /* Parse rx'd pkt. */
\ 000000A6 ........ BL ProbeRS232_RxPkt
407 }
408 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_19:
\ 000000AA 2570 STRB R5,[R4, #+0]
\ 000000AC 70BD POP {R4-R6,PC}
409 break;
410
411
412 default:
413 ProbeRS232_RxState = PROBE_RS232_RX_STATE_SD0;
\ ??ProbeRS232_RxHandler_1:
\ 000000AE 2570 STRB R5,[R4, #+0]
414 break;
415 }
416 }
\ ??ProbeRS232_RxHandler_3:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -