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

📄 probe_rs232c.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 3 页
字号:
    190              gpio_init.GPIO_Pin   = GPIO_Pin_9;
   \   00000032   ADF80040           STRH     R4,[SP, #+0]
    191              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
   \   00000036   0320               MOVS     R0,#+3
   \   00000038   8DF80200           STRB     R0,[SP, #+2]
    192              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
   \   0000003C   1820               MOVS     R0,#+24
   \   0000003E   8DF80300           STRB     R0,[SP, #+3]
    193              GPIO_Init(GPIOA, &gpio_init);
   \   00000042   124C               LDR.N    R4,??ProbeRS232_InitTarget_0  ;; 0x40010800
   \   00000044   6946               MOV      R1,SP
   \   00000046   2000               MOVS     R0,R4
   \   00000048   ........           _BLF     GPIO_Init,??GPIO_Init??rT
    194          
    195                                                                          /* Configure GPIOA.10 as input floating                 */
    196              gpio_init.GPIO_Pin   = GPIO_Pin_10;
   \   0000004C   200D               LSRS     R0,R4,#+20
   \   0000004E   ADF80000           STRH     R0,[SP, #+0]
    197              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
   \   00000052   0420               MOVS     R0,#+4
   \   00000054   8DF80300           STRB     R0,[SP, #+3]
    198              GPIO_Init(GPIOA, &gpio_init);
   \   00000058   6946               MOV      R1,SP
   \   0000005A   2000               MOVS     R0,R4
   \   0000005C   ........           _BLF     GPIO_Init,??GPIO_Init??rT
    199          #endif
    200          
    201                                                                          /* ------------------ SETUP USART1 -------------------- */
    202              USART_Init(USART1, &usart_init);
   \   00000060   ....               LDR.N    R4,??DataTable12  ;; 0x40013800
   \   00000062   03A9               ADD      R1,SP,#+12
   \   00000064   2000               MOVS     R0,R4
   \   00000066   ........           _BLF     USART_Init,??USART_Init??rT
    203              USART_ClockInit(USART1, &usart_clk_init);
   \   0000006A   01A9               ADD      R1,SP,#+4
   \   0000006C   2000               MOVS     R0,R4
   \   0000006E   ........           _BLF     USART_ClockInit,??USART_ClockInit??rT
    204              USART_Cmd(USART1, ENABLE);
   \   00000072   0121               MOVS     R1,#+1
   \   00000074   2000               MOVS     R0,R4
   \   00000076   ........           _BLF     USART_Cmd,??USART_Cmd??rT
    205          
    206              BSP_IntVectSet(BSP_INT_ID_USART1, ProbeRS232_RxTxISRHandler);
   \   0000007A   0549               LDR.N    R1,??ProbeRS232_InitTarget_0+0x4  ;; ProbeRS232_RxTxISRHandler
   \   0000007C   2520               MOVS     R0,#+37
   \   0000007E   ........           _BLF     BSP_IntVectSet,??BSP_IntVectSet??rT
    207              BSP_IntEn(BSP_INT_ID_USART1);
   \   00000082   2520               MOVS     R0,#+37
   \   00000084   ........           _BLF     BSP_IntEn,??BSP_IntEn??rT
    208          #endif
    209          
    210          #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
    211              BSP_PeriphEn(BSP_PERIPH_ID_USART2);
    212          
    213                                                                          /* ----------------- SETUP USART2 GPIO ---------------- */
    214          #if (PROBE_RS232_UART_2_REMAP > 0)
    215              BSP_PeriphEn(BSP_PERIPH_ID_IOPD);
    216              BSP_PeriphEn(BSP_PERIPH_ID_AFIO);
    217              GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
    218          
    219                                                                          /* Configure GPIOD.4 as push-pull                       */
    220              gpio_init.GPIO_Pin   = GPIO_Pin_4;
    221              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    222              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
    223              GPIO_Init(GPIOD, &gpio_init);
    224          
    225                                                                          /* Configure GPIOD.3 as input floating                  */
    226              gpio_init.GPIO_Pin   = GPIO_Pin_3;
    227              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
    228              GPIO_Init(GPIOD, &gpio_init);
    229          #else
    230              BSP_PeriphEn(BSP_PERIPH_ID_IOPA);
    231          
    232                                                                          /* Configure GPIOA.2 as push-pull                       */
    233              gpio_init.GPIO_Pin   = GPIO_Pin_2;
    234              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    235              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
    236              GPIO_Init(GPIOA, &gpio_init);
    237          
    238                                                                          /* Configure GPIOA.3 as input floating                  */
    239              gpio_init.GPIO_Pin   = GPIO_Pin_3;
    240              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
    241              GPIO_Init(GPIOA, &gpio_init);
    242          #endif
    243          
    244                                                                          /* ------------------ SETUP USART2 -------------------- */
    245              USART_Init(USART2, &usart_init);
    246              USART_ClockInit(USART2, &usart_clk_init);
    247              USART_Cmd(USART2, ENABLE);
    248          
    249              BSP_IntVectSet(BSP_INT_ID_USART2, ProbeRS232_RxTxISRHandler);
    250              BSP_IntEn(BSP_INT_ID_USART2);
    251          #endif
    252          
    253          #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
    254              BSP_PeriphEn(BSP_PERIPH_ID_USART3);
    255          
    256                                                                          /* ----------------- SETUP USART3 GPIO ---------------- */
    257          #if (PROBE_RS232_UART_3_REMAP_PARTIAL > 0)
    258              BSP_PeriphEn(BSP_PERIPH_ID_IOPC);
    259              BSP_PeriphEn(BSP_PERIPH_ID_AFIO);
    260              GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);
    261          
    262                                                                          /* Configure GPIOC.10 as push-pull                      */
    263              gpio_init.GPIO_Pin   = GPIO_Pin_10;
    264              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    265              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
    266              GPIO_Init(GPIOC, &gpio_init);
    267          
    268                                                                          /* Configure GPIOC.11 as input floating                 */
    269              gpio_init.GPIO_Pin   = GPIO_Pin_11;
    270              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
    271              GPIO_Init(GPIOC, &gpio_init);
    272          
    273          #elif (PROBE_RS232_UART_3_REMAP_FULL > 0)
    274              BSP_PeriphEn(BSP_PERIPH_ID_IOPD);
    275              BSP_PeriphEn(BSP_PERIPH_ID_AFIO);
    276              GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);
    277          
    278                                                                          /* Configure GPIOD.8 as push-pull                       */
    279              gpio_init.GPIO_Pin   = GPIO_Pin_8;
    280              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    281              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
    282              GPIO_Init(GPIOD, &gpio_init);
    283          
    284                                                                          /* Configure GPIOD.9 as input floating                  */
    285              gpio_init.GPIO_Pin   = GPIO_Pin_9;
    286              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
    287              GPIO_Init(GPIOD, &gpio_init);
    288          
    289          #else
    290              BSP_PeriphEn(BSP_PERIPH_ID_IOPB);
    291          
    292                                                                          /* Configure GPIOB.10 as push-pull                      */
    293              gpio_init.GPIO_Pin   = GPIO_Pin_10;
    294              gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
    295              gpio_init.GPIO_Mode  = GPIO_Mode_AF_PP;
    296              GPIO_Init(GPIOB, &gpio_init);
    297          
    298                                                                          /* Configure GPIOB.11 as input floating                 */
    299              gpio_init.GPIO_Pin   = GPIO_Pin_11;
    300              gpio_init.GPIO_Mode  = GPIO_Mode_IN_FLOATING;
    301              GPIO_Init(GPIOB, &gpio_init);
    302          #endif
    303          
    304                                                                          /* ------------------ SETUP USART3 -------------------- */
    305              USART_Init(USART3, &usart_init);
    306              USART_ClockInit(USART3, &usart_clk_init);
    307              USART_Cmd(USART3, ENABLE);
    308          
    309              BSP_IntVectSet(BSP_INT_ID_USART3, ProbeRS232_RxTxISRHandler);
    310              BSP_IntEn(BSP_INT_ID_USART3);
    311          #endif
    312          }
   \   00000088   07B0               ADD      SP,SP,#+28
   \   0000008A   10BD               POP      {R4,PC}          ;; return
   \                     ??ProbeRS232_InitTarget_0:
   \   0000008C   00080140           DC32     0x40010800
   \   00000090   ........           DC32     ProbeRS232_RxTxISRHandler
    313          
    314          /*
    315          *********************************************************************************************************
    316          *                                     ProbeRS232_RxTxISRHandler()
    317          *
    318          * Description: Handle Rx and Tx interrupts.
    319          *
    320          * Argument(s): none.
    321          *
    322          * Return(s)  : none.
    323          *
    324          * Note(s)    : (1) This ISR handler handles the interrupt entrance/exit as expected by
    325          *                  by uC/OS-II v2.85.  If you are using a different RTOS (or no RTOS), then this
    326          *                  procedure may need to be modified or eliminated.  However, the logic in the handler
    327          *                  need not be changed.
    328          *********************************************************************************************************
    329          */
    330          

   \                                 In segment CODE, align 4, keep-with-next
    331          void  ProbeRS232_RxTxISRHandler (void)
    332          {
   \                     ProbeRS232_RxTxISRHandler:
   \   00000000   30B5               PUSH     {R4,R5,LR}
    333              USART_TypeDef  *usart;
    334              CPU_INT08U      rx_data;
    335              CPU_SR          cpu_sr;
    336          
    337          
    338              CPU_CRITICAL_ENTER();                                       /* Tell uC/OS-II that we are starting an ISR            */
   \   00000002   ........           _BLF     CPU_SR_Save,??CPU_SR_Save??rT
    339              OSIntNesting++;
   \   00000006   1449               LDR.N    R1,??ProbeRS232_RxTxISRHandler_0  ;; OSIntNesting
   \   00000008   0A78               LDRB     R2,[R1, #+0]
   \   0000000A   521C               ADDS     R2,R2,#+1
   \   0000000C   0A70               STRB     R2,[R1, #+0]
    340              CPU_CRITICAL_EXIT();
   \   0000000E   ........           _BLF     CPU_SR_Restore,??CPU_SR_Restore??rT
    341          
    342          
    343          #if   (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
    344              usart = USART1;
    345          #elif (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
    346              usart = USART2;
    347          #elif (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
    348              usart = USART3;
    349          #else
    350              OSIntExit();
    351              return;
    352          #endif
    353          
    354              if (USART_GetITStatus(usart, USART_IT_RXNE) != RESET) {
   \   00000012   ....               LDR.N    R4,??DataTable12  ;; 0x40013800
   \   00000014   ....               LDR.N    R5,??DataTable6  ;; 0x525
   \   00000016   2900               MOVS     R1,R5
   \   00000018   2000               MOVS     R0,R4
   \   0000001A   ........           _BLF     USART_GetITStatus,??USART_GetITStatus??rT
   \   0000001E   0028               CMP      R0,#+0
   \   00000020   09D0               BEQ.N    ??ProbeRS232_RxTxISRHandler_1
    355                  rx_data = USART_ReceiveData(usart) & 0xFF;              /* Read one byte from the receive data register         */
   \   00000022   2000               MOVS     R0,R4
   \   00000024   ........           _BLF     USART_ReceiveData,??USART_ReceiveData??rT
   \   00000028   C0B2               UXTB     R0,R0
    356                  ProbeRS232_RxHandler(rx_data);
   \   0000002A   ........           _BLF     ProbeRS232_RxHandler,??ProbeRS232_RxHandler??rT
    357          
    358                  USART_ClearITPendingBit(usart, USART_IT_RXNE);          /* Clear the USART1 Receive interrupt                   */
   \   0000002E   2900               MOVS     R1,R5
   \   00000030   2000               MOVS     R0,R4
   \   00000032   ........           _BLF     USART_ClearITPendingBit,??USART_ClearITPendingBit??rT
    359              }
    360          
    361              if (USART_GetITStatus(usart, USART_IT_TXE) != RESET) {
   \                     ??ProbeRS232_RxTxISRHandler_1:
   \   00000036   ....               LDR.N    R5,??DataTable11  ;; 0x727
   \   00000038   2900               MOVS     R1,R5
   \   0000003A   2000               MOVS     R0,R4
   \   0000003C   ........           _BLF     USART_GetITStatus,??USART_GetITStatus??rT
   \   00000040   0028               CMP      R0,#+0
   \   00000042   05D0               BEQ.N    ??ProbeRS232_RxTxISRHandler_2
    362                  ProbeRS232_TxHandler();
   \   00000044   ........           _BLF     ProbeRS232_TxHandler,??ProbeRS232_TxHandler??rT
    363          
    364                  USART_ClearITPendingBit(usart, USART_IT_TXE);           /* Clear the USART1 transmit interrupt                  */
   \   00000048   2900               MOVS     R1,R5
   \   0000004A   2000               MOVS     R0,R4
   \   0000004C   ........           _BLF     USART_ClearITPendingBit,??USART_ClearITPendingBit??rT
    365              }
    366          
    367              OSIntExit();                                                /* Tell uC/OS-II that we are leaving the ISR            */
   \                     ??ProbeRS232_RxTxISRHandler_2:
   \   00000050   ........           _BLF     OSIntExit,??OSIntExit??rT
    368          }
   \   00000054   30BD               POP      {R4,R5,PC}       ;; return
   \   00000056   00BF               Nop      
   \                     ??ProbeRS232_RxTxISRHandler_0:
   \   00000058   ........           DC32     OSIntNesting
    369          
    370          /*
    371          *********************************************************************************************************
    372          *                                    ProbeRS232_RxISRHandler()
    373          *
    374          * Description: Handle Rx interrupts.
    375          *
    376          * Argument(s): none.
    377          *
    378          * Return(s)  : none.
    379          *
    380          * Note(s)    : This function is empty because Rx interrupts are handled by ProbeRS232_RxTxISRHandler()
    381          *********************************************************************************************************

⌨️ 快捷键说明

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