📄 probe_rs232.lst
字号:
\ 000000B0 70BD POP {R4-R6,PC} ;; return
417
418
419 /*
420 *********************************************************************************************************
421 * ProbeRS232_TxHandler()
422 *
423 * Description : Handle a byte transmission.
424 *
425 * Argument(s) : none.
426 *
427 * Return(s) : none.
428 *
429 * Caller(s) : Tx ISR.
430 *
431 * Note(s) : none.
432 *********************************************************************************************************
433 */
434
\ In segment CODE, align 4, keep-with-next
435 void ProbeRS232_TxHandler (void)
436 {
\ ProbeRS232_TxHandler:
\ 00000000 30B5 PUSH {R4,R5,LR}
437 CPU_INT08U tx_data;
438
439
440 #if (PROBE_COM_STAT_EN == DEF_ENABLED)
441 if ((ProbeRS232_TxState != PROBE_RS232_TX_STATE_SD0) ||
442 (ProbeRS232_TxLen > 0 )) {
\ 00000002 .... LDR.N R4,??DataTable4 ;; ProbeRS232_RxState
\ 00000004 2089 LDRH R0,[R4, #+8]
\ 00000006 6178 LDRB R1,[R4, #+1]
\ 00000008 0029 CMP R1,#+0
\ 0000000A 01D1 BNE.N ??ProbeRS232_TxHandler_1
\ 0000000C 0028 CMP R0,#+0
\ 0000000E 02D0 BEQ.N ??ProbeRS232_TxHandler_2
443 ProbeRS232_TxCtr++;
\ ??ProbeRS232_TxHandler_1:
\ 00000010 2269 LDR R2,[R4, #+16]
\ 00000012 521C ADDS R2,R2,#+1
\ 00000014 2261 STR R2,[R4, #+16]
444 }
445 #endif
446
447 switch (ProbeRS232_TxState) {
\ ??ProbeRS232_TxHandler_2:
\ 00000016 0025 MOVS R5,#+0
\ 00000018 0A29 CMP R1,#+10
\ 0000001A 59D8 BHI.N ??ProbeRS232_TxHandler_3
\ 0000001C DFE801F0 TBB [PC, R1]
\ ??ProbeRS232_TxHandler_0:
\ 00000020 0611171D DC8 +6,+17,+23,+29
\ 00000024 23292F35 DC8 +35,+41,+47,+53
\ 00000028 3B4B5100 DC8 +59,+75,+81,+0
448 case PROBE_RS232_TX_STATE_SD0:
449 if (ProbeRS232_TxLen > 0) { /* If pkt is waiting to be sent ... */
\ ??ProbeRS232_TxHandler_4:
\ 0000002C 0028 CMP R0,#+0
\ 0000002E 51D0 BEQ.N ??ProbeRS232_TxHandler_5
450 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD0); /* ... tx start 1st start delimiter (SD0). */
\ 00000030 7520 MOVS R0,#+117
\ 00000032 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
451 ProbeRS232_TxActiveFlag = DEF_TRUE;
\ 00000036 0120 MOVS R0,#+1
\ 00000038 0100 MOVS R1,R0
\ 0000003A A170 STRB R1,[R4, #+2]
452 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD1;
\ 0000003C 6070 STRB R0,[R4, #+1]
453 ProbeRS232_TxBufRdIx = 0;
\ 0000003E 6581 STRH R5,[R4, #+10]
454
455 } else { /* If no pkt is waiting to be sent ... */
456 ProbeRS232_TxActiveFlag = DEF_FALSE;
457 ProbeRS232_TxIntDis(); /* ... dis tx int's. */
458 }
459 break;
460
461
462 case PROBE_RS232_TX_STATE_SD1: /* Tx start 2nd start delimiter (SD1). */
463 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD1);
464 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD2;
465 break;
466
467
468 case PROBE_RS232_TX_STATE_SD2: /* Tx start 3rd start delimiter (SD2). */
469 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD2);
470 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD3;
471 break;
472
473
474 case PROBE_RS232_TX_STATE_SD3: /* Tx start 4th start delimiter (SD3). */
475 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_SD3);
476 ProbeRS232_TxState = PROBE_RS232_TX_STATE_LEN1;
477 break;
478
479
480 case PROBE_RS232_TX_STATE_LEN1: /* Tx 1st len byte. */
481 tx_data = ProbeRS232_TxLen & 0xFF;
482 ProbeRS232_Tx1(tx_data);
483 ProbeRS232_TxState = PROBE_RS232_TX_STATE_LEN2;
484 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
485 ProbeRS232_TxChkSum = tx_data;
486 #endif
487 break;
488
489
490 case PROBE_RS232_TX_STATE_LEN2: /* Tx 2nd len byte. */
491 tx_data = ProbeRS232_TxLen >> 8;
492 ProbeRS232_Tx1(tx_data);
493 ProbeRS232_TxState = PROBE_RS232_TX_STATE_PAD1;
494 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
495 ProbeRS232_TxChkSum += tx_data;
496 #endif
497 break;
498
499
500 case PROBE_RS232_TX_STATE_PAD1: /* Tx 1st padding byte. */
501 ProbeRS232_Tx1(0);
502 ProbeRS232_TxState = PROBE_RS232_TX_STATE_PAD2;
503 break;
504
505
506 case PROBE_RS232_TX_STATE_PAD2: /* Tx 2nd padding byte. */
507 ProbeRS232_Tx1(0);
508 ProbeRS232_TxState = PROBE_RS232_TX_STATE_DATA;
509 break;
510
511
512 case PROBE_RS232_TX_STATE_DATA: /* Tx data. */
513 tx_data = ProbeRS232_TxBuf[ProbeRS232_TxBufRdIx];
514 ProbeRS232_Tx1(tx_data);
515 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
516 ProbeRS232_TxChkSum += tx_data;
517 #endif
518 ProbeRS232_TxBufRdIx++;
519 if (ProbeRS232_TxBufRdIx >= ProbeRS232_TxLen) {
520 ProbeRS232_TxState = PROBE_RS232_TX_STATE_CHKSUM;
521 ProbeRS232_TxLen = 0;
522 }
523 break;
524
525
526 case PROBE_RS232_TX_STATE_CHKSUM: /* Tx checksum. */
527 #if (PROBE_RS232_USE_CHECKSUM == DEF_TRUE)
528 ProbeRS232_Tx1(ProbeRS232_TxChkSum);
529 #else
530 ProbeRS232_Tx1(0);
531 #endif
532 ProbeRS232_TxState = PROBE_RS232_TX_STATE_ED;
533 break;
534
535
536 case PROBE_RS232_TX_STATE_ED: /* Tx end delimiter. */
537 ProbeRS232_Tx1(PROBE_RS232_PROTOCOL_TX_ED);
538 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD0;
539 ProbeRS232_TxBufInUse = DEF_FALSE;
540 break;
541
542
543 default:
544 ProbeRS232_TxState = PROBE_RS232_TX_STATE_SD0;
545 ProbeRS232_TxActiveFlag = DEF_FALSE;
546 ProbeRS232_TxIntDis(); /* No more data to send, dis tx int's. */
547 break;
548 }
549 }
\ ??ProbeRS232_TxHandler_6:
\ 00000040 30BD POP {R4,R5,PC} ;; return
\ ??ProbeRS232_TxHandler_7:
\ 00000042 4320 MOVS R0,#+67
\ 00000044 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000048 0220 MOVS R0,#+2
\ 0000004A 6070 STRB R0,[R4, #+1]
\ 0000004C 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_8:
\ 0000004E 5020 MOVS R0,#+80
\ 00000050 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000054 0320 MOVS R0,#+3
\ 00000056 6070 STRB R0,[R4, #+1]
\ 00000058 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_9:
\ 0000005A 7220 MOVS R0,#+114
\ 0000005C ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000060 0420 MOVS R0,#+4
\ 00000062 6070 STRB R0,[R4, #+1]
\ 00000064 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_10:
\ 00000066 C0B2 UXTB R0,R0
\ 00000068 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 0000006C 0520 MOVS R0,#+5
\ 0000006E 6070 STRB R0,[R4, #+1]
\ 00000070 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_11:
\ 00000072 000A LSRS R0,R0,#+8
\ 00000074 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000078 0620 MOVS R0,#+6
\ 0000007A 6070 STRB R0,[R4, #+1]
\ 0000007C 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_12:
\ 0000007E 2846 MOV R0,R5
\ 00000080 ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000084 0720 MOVS R0,#+7
\ 00000086 6070 STRB R0,[R4, #+1]
\ 00000088 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_13:
\ 0000008A 2846 MOV R0,R5
\ 0000008C ........ _BLF ProbeRS232_Tx1,??ProbeRS232_Tx1??rT
\ 00000090 0820 MOVS R0,#+8
\ 00000092 6070 STRB R0,[R4, #+1]
\ 00000094 30BD POP {R4,R5,PC}
\ ??ProbeRS232_TxHandler_14:
\ 00000096 6089 LDRH R0,[R4, #+10]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -