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

📄 probe_rs232.lst

📁 针对STM32F103的UCOS移植
💻 LST
📖 第 1 页 / 共 5 页
字号:
    140          *                                       LOCAL GLOBAL VARIABLES
    141          *********************************************************************************************************
    142          */
    143          
    144                                                                              /* -------------- RX state variables ------------------ */
    145          static  CPU_INT08U   ProbeRS232_RxState;                            /*  ... Current state of RX state machine               */
   \                     ProbeRS232_RxState:
   \   00000000                      DS8 1
   \   00000001                      DS8 1
   \   00000002                      DS8 1
   \   00000003                      DS8 1
   \   00000004                      DS8 1
   \   00000005                      DS8 1
   \   00000006                      DS8 2
   \   00000008                      DS8 2
   \   0000000A                      DS8 2
   \   0000000C                      DS8 2
   \   0000000E                      DS8 2
   \   CPU_INT32U __data ProbeRS232_RxCtr
   \                     ProbeRS232_RxCtr:
   \   00000010                      DS8 4
   \   CPU_INT32U __data ProbeRS232_RxPktCtr
   \                     ProbeRS232_RxPktCtr:
   \   00000014                      DS8 4
   \   CPU_INT32U __data ProbeRS232_TxCtr
   \                     ProbeRS232_TxCtr:
   \   00000018                      DS8 4
   \   CPU_INT32U __data ProbeRS232_TxPktCtr
   \                     ProbeRS232_TxPktCtr:
   \   0000001C                      DS8 4
    146          static  CPU_INT16U   ProbeRS232_RxRemainLen;                        /*  ... Remaining bytes of data to read                 */
    147          
    148                                                                              /* -------------- RX packet variables ----------------- */
    149          static  CPU_INT16U   ProbeRS232_RxLen;                              /*  ... Length  of data in current packet               */

   \                                 In segment DATA_Z, align 4, align-sorted
    150          static  CPU_INT08U   ProbeRS232_RxBuf[PROBE_RS232_RX_BUF_SIZE];     /*  ... Data    of current packet                       */
   \                     ProbeRS232_RxBuf:
   \   00000000                      DS8 64
    151          static  CPU_INT08U   ProbeRS232_RxChkSum;                           /*  ... Checksum of current packet                      */
    152          
    153                                                                              /* ------------ RX data buffer variable --------------- */

   \                                 In segment DATA_Z, align 2, align-sorted
    154          static  CPU_INT16U   ProbeRS232_RxBufWrIx;                          /*  ... Index of next write; also number of bytes in buf*/
   \                     ProbeRS232_RxBufWrIx:
   \   00000000                      DS8 2
    155          
    156                                                                              /* -------------- TX state variables ------------------ */
    157          static  CPU_INT08U   ProbeRS232_TxState;                            /*  ... Current state of TX state machine               */
    158          static  CPU_BOOLEAN  ProbeRS232_TxActiveFlag;                       /*  ... Indicates TX is currently active                */
    159          
    160                                                                              /* -------------- TX packet variables  ---------------- */
    161          static  CPU_INT16U   ProbeRS232_TxLen;                              /*  ... Length  of data in current packet               */

   \                                 In segment DATA_Z, align 4, align-sorted
    162          static  CPU_INT08U   ProbeRS232_TxBuf[PROBE_RS232_TX_BUF_SIZE];     /*  ... Data    of current packet                       */
   \                     ProbeRS232_TxBuf:
   \   00000000                      DS8 64
    163          static  CPU_INT08U   ProbeRS232_TxChkSum;                           /*  ... Checksum of current packet                      */
    164          
    165                                                                              /* ----------- TX data buffer variables --------------- */
    166          static  CPU_BOOLEAN  ProbeRS232_TxBufInUse;                         /*  ... Indicates TX buffer currently holds a packet    */
    167          static  CPU_INT16U   ProbeRS232_TxBufRdIx;                          /*  ... Index of next read                              */
    168          
    169          
    170          
    171          /*
    172          *********************************************************************************************************
    173          *                                      LOCAL FUNCTION PROTOTYPES
    174          *********************************************************************************************************
    175          */
    176          
    177          static  CPU_INT16U  ProbeRS232_ParseRxPkt(void);
    178          
    179          static  void        ProbeRS232_RxPkt     (void);
    180          
    181          static  void        ProbeRS232_RxStoINT8U(CPU_INT08U  rx_data);
    182          
    183          static  void        ProbeRS232_RxBufClr  (void);
    184          
    185          static  void        ProbeRS232_TxStart   (void);
    186          
    187          
    188          /*
    189          *********************************************************************************************************
    190          *                                     LOCAL CONFIGURATION ERRORS
    191          *********************************************************************************************************
    192          */
    193          
    194          
    195          /*
    196          *********************************************************************************************************
    197          *********************************************************************************************************
    198          **                                          Initialization
    199          *********************************************************************************************************
    200          *********************************************************************************************************
    201          */
    202          
    203          /*
    204          *********************************************************************************************************
    205          *                           Initialize uC/Probe RS-232 Communication Module
    206          *
    207          * Description: This function initializes the module.
    208          *
    209          * Argument(s): baud_rate    is the RS-232 baud rate which will be passed to the hardware initialization.
    210          *
    211          * Returns    : None
    212          *********************************************************************************************************
    213          */
    214          

   \                                 In segment CODE, align 4, keep-with-next
    215          void  ProbeRS232_Init (CPU_INT32U baud_rate)
    216          {
   \                     ProbeRS232_Init:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
    217              ProbeRS232_RxState      = PROBE_RS232_RX_STATE_SD0;             /* Setup Rx and Tx state machines                       */
   \   00000004   0020               MOVS     R0,#+0
   \   00000006   ....               LDR.N    R1,??DataTable4  ;; ProbeRS232_RxState
   \   00000008   0200               MOVS     R2,R0
   \   0000000A   0A70               STRB     R2,[R1, #+0]
    218              ProbeRS232_TxState      = PROBE_RS232_TX_STATE_SD0;
   \   0000000C   8A70               STRB     R2,[R1, #+2]
    219          
    220              ProbeRS232_TxLen        = 0;
   \   0000000E   4881               STRH     R0,[R1, #+10]
    221              ProbeRS232_TxActiveFlag = DEF_FALSE;
   \   00000010   CA70               STRB     R2,[R1, #+3]
    222              ProbeRS232_TxBufInUse   = DEF_FALSE;
   \   00000012   4871               STRB     R0,[R1, #+5]
    223          
    224          #if (PROBE_RS232_PARSE_TASK > 0)
    225              ProbeRS232_OS_Init();
   \   00000014   ........           _BLF     ProbeRS232_OS_Init,??ProbeRS232_OS_Init??rT
    226          #endif
    227          
    228              ProbeRS232_InitTarget(baud_rate);                               /* Initialize target specific code                      */
   \   00000018   2000               MOVS     R0,R4
   \   0000001A   ........           _BLF     ProbeRS232_InitTarget,??ProbeRS232_InitTarget??rT
    229          }
   \   0000001E   10BD               POP      {R4,PC}          ;; return
    230          
    231          
    232          /*
    233          *********************************************************************************************************
    234          *********************************************************************************************************
    235          **                                            Task
    236          *********************************************************************************************************
    237          *********************************************************************************************************
    238          */
    239          
    240          /*
    241          *********************************************************************************************************
    242          *                             Task for uC/Probe RS-232 Communication Module
    243          *
    244          * Description: This task parses the received packet, forms a response, and begins transmission.
    245          *
    246          * Argument(s): p_arg   is passed to ProbeRS232_Task() by OSCreateTask().
    247          *
    248          * Returns    : None
    249          *********************************************************************************************************
    250          */
    251          
    252          #if (PROBE_RS232_PARSE_TASK > 0)

   \                                 In segment CODE, align 4, keep-with-next
    253          void  ProbeRS232_Task (void *p_arg)
    254          {
   \                     ProbeRS232_Task:
   \   00000000   00B5               PUSH     {LR}
    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                     */
   \                     ??ProbeRS232_Task_0:
   \   00000002   ........           _BLF     ProbeRS232_OS_Pend,??ProbeRS232_OS_Pend??rT
    262          
    263                  len = ProbeRS232_ParseRxPkt();                              /* Parse packet and formulate a response                */
   \   00000006   ........           BL       ProbeRS232_ParseRxPkt
    264          
    265                  if (len > 0) {                                              /* If we have a response                                */
   \   0000000A   0100               MOVS     R1,R0
   \   0000000C   F9D0               BEQ.N    ??ProbeRS232_Task_0
    266                      ProbeRS232_TxLen = len;
   \   0000000E   0249               LDR.N    R1,??ProbeRS232_Task_1  ;; ProbeRS232_RxState + 10
   \   00000010   0880               STRH     R0,[R1, #+0]
    267                      ProbeRS232_TxStart();
   \   00000012   ........           BL       ProbeRS232_TxStart
   \   00000016   F4E7               B.N      ??ProbeRS232_Task_0
   \                     ??ProbeRS232_Task_1:
   \   00000018   ........           DC32     ProbeRS232_RxState + 10
    268                  }
    269              }
    270          }
    271          #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -