⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 probe_rs232.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   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 + -