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

📄 uart.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
###############################################################################
#                                                                             #
#                                                       06/Dec/2008  17:12:53 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                    #
# Copyright 1999-2007 IAR Systems. All rights reserved.                       #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  E:\ELE\yten\pro\message\uart.c                           #
#    Command line =  E:\ELE\yten\pro\message\uart.c -D EMB_FLASH -lCN         #
#                    E:\ELE\yten\pro\Debug\List\ -lb                          #
#                    E:\ELE\yten\pro\Debug\List\ -o                           #
#                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll          #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian little --cpu Cortex-M3  #
#                    -e --fpu None --dlib_config "C:\Program Files\IAR        #
#                    Systems\Embedded Workbench 5.0                           #
#                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I              #
#                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I   #
#                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" --section .text=.XML -On            #
#    List file    =  E:\ELE\yten\pro\Debug\List\uart.lst                      #
#    Object file  =  E:\ELE\yten\pro\Debug\Obj\uart.o                         #
#                                                                             #
#                                                                             #
###############################################################################

E:\ELE\yten\pro\message\uart.c
      1          #include"includes.h"
      2          #include"ytep.h"
      3          #include"ytepfunction.h"

   \                                 In section .rodata, align 4
      4          const			Int16U	BAUD_TAB[]={19500-50,9600,4800-50};
   \                     BAUD_TAB:
   \   00000000   FA4B80258E12       DC16 19450, 9600, 4750
   \   00000006   0000               DC8 0, 0
      5          /*************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
      6          Boolean FifoPush(pUartFifo_t Fifo, USART_TypeDef* USARTx)
      7          {
   \                     FifoPush:
   \   00000000   73B5               PUSH     {R0,R1,R4-R6,LR}
   \   00000002   0400               MOVS     R4,R0
   \   00000004   0D00               MOVS     R5,R1
      8          	volatile Int32U IndxTmp;
      9          	Fifo->Timer=0;
   \   00000006   0020               MOVS     R0,#+0
   \   00000008   2071               STRB     R0,[R4, #+4]
     10                  Fifo->PopIndx=0;
   \   0000000A   0020               MOVS     R0,#+0
   \   0000000C   6080               STRH     R0,[R4, #+2]
     11          	if(Fifo->PushIndx<20)
   \   0000000E   2088               LDRH     R0,[R4, #+0]
   \   00000010   1428               CMP      R0,#+20
   \   00000012   0CD2               BCS.N    ??FifoPush_0
     12          	{
     13          		IndxTmp=Fifo->PushIndx;
   \   00000014   2088               LDRH     R0,[R4, #+0]
   \   00000016   0090               STR      R0,[SP, #+0]
     14          		Fifo->Buffer[IndxTmp]=USART_ReceiveData(USART1);//USARTx->DR;
   \   00000018   009E               LDR      R6,[SP, #+0]
   \   0000001A   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   0000001C   ........           BL       USART_ReceiveData
   \   00000020   A119               ADDS     R1,R4,R6
   \   00000022   8871               STRB     R0,[R1, #+6]
     15          		Fifo->PushIndx++;  
   \   00000024   2088               LDRH     R0,[R4, #+0]
   \   00000026   401C               ADDS     R0,R0,#+1
   \   00000028   2080               STRH     R0,[R4, #+0]
     16                          return (FALSE);
   \   0000002A   0020               MOVS     R0,#+0
   \   0000002C   04E0               B.N      ??FifoPush_1
     17          	}else
     18                  {      
     19                   IndxTmp =USART_ReceiveData(USART1);       
   \                     ??FifoPush_0:
   \   0000002E   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000030   ........           BL       USART_ReceiveData
   \   00000034   0090               STR      R0,[SP, #+0]
     20          	  return (TRUE);
   \   00000036   0120               MOVS     R0,#+1
   \                     ??FifoPush_1:
   \   00000038   02B0               ADD      SP,SP,#+8
   \   0000003A   70BD               POP      {R4-R6,PC}       ;; return
     21                  }
     22          	
     23          }
     24          /*************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
     25          Boolean   FifoPop(pUartFifo_t Fifo,USART_TypeDef* USARTx)
     26          {
   \                     FifoPop:
   \   00000000   82B0               SUB      SP,SP,#+8
   \   00000002   0200               MOVS     R2,R0
     27          	volatile Int32U IndxTmp;
     28          	if(Fifo->PopIndx<=(Fifo->PushIndx+1))
   \   00000004   1088               LDRH     R0,[R2, #+0]
   \   00000006   401C               ADDS     R0,R0,#+1
   \   00000008   5388               LDRH     R3,[R2, #+2]
   \   0000000A   9842               CMP      R0,R3
   \   0000000C   0ADB               BLT.N    ??FifoPop_0
     29          	{
     30          		IndxTmp=Fifo->PopIndx;
   \   0000000E   5088               LDRH     R0,[R2, #+2]
   \   00000010   0090               STR      R0,[SP, #+0]
     31          		USARTx->DR=Fifo->Buffer[IndxTmp];
   \   00000012   0098               LDR      R0,[SP, #+0]
   \   00000014   1018               ADDS     R0,R2,R0
   \   00000016   8079               LDRB     R0,[R0, #+6]
   \   00000018   8880               STRH     R0,[R1, #+4]
     32          		Fifo->PopIndx++;
   \   0000001A   5088               LDRH     R0,[R2, #+2]
   \   0000001C   401C               ADDS     R0,R0,#+1
   \   0000001E   5080               STRH     R0,[R2, #+2]
     33          	}else
     34          	{
     35          	 return (FALSE);
     36          	}
     37          	return (TRUE);
   \   00000020   0120               MOVS     R0,#+1
   \   00000022   00E0               B.N      ??FifoPop_1
   \                     ??FifoPop_0:
   \   00000024   0020               MOVS     R0,#+0
   \                     ??FifoPop_1:
   \   00000026   02B0               ADD      SP,SP,#+8
   \   00000028   7047               BX       LR               ;; return
     38          } 
     39          /////////////////////////////////////////////

   \                                 In section .XML, align 4, keep-with-next
     40          void Uart1Isr(void)
     41          {
   \                     Uart1Isr:
   \   00000000   01B5               PUSH     {R0,LR}
     42             volatile unsigned int uart;
     43            if(USART_GetFlagStatus(USART1,USART_FLAG_ORE))
   \   00000002   0821               MOVS     R1,#+8
   \   00000004   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000006   ........           BL       USART_GetFlagStatus
   \   0000000A   0028               CMP      R0,#+0
   \   0000000C   09D0               BEQ.N    ??Uart1Isr_0
     44            {
     45              USART_ClearFlag(USART1,USART_FLAG_ORE);
   \   0000000E   0821               MOVS     R1,#+8
   \   00000010   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000012   ........           BL       USART_ClearFlag
     46              Uart1LineEvents.bOE = TRUE;
   \   00000016   3C48               LDR.N    R0,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000018   0068               LDR      R0,[R0, #+0]
   \   0000001A   50F00200           ORRS     R0,R0,#0x2
   \   0000001E   3A49               LDR.N    R1,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000020   0860               STR      R0,[R1, #+0]
     47            }
     48            if(USART_GetFlagStatus(USART1,USART_FLAG_FE))
   \                     ??Uart1Isr_0:
   \   00000022   0221               MOVS     R1,#+2
   \   00000024   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000026   ........           BL       USART_GetFlagStatus
   \   0000002A   0028               CMP      R0,#+0
   \   0000002C   09D0               BEQ.N    ??Uart1Isr_2
     49            {
     50              USART_ClearFlag(USART1,USART_FLAG_FE);
   \   0000002E   0221               MOVS     R1,#+2
   \   00000030   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000032   ........           BL       USART_ClearFlag
     51              // Framing Error
     52              Uart1LineEvents.bFE = TRUE;
   \   00000036   3448               LDR.N    R0,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000038   0068               LDR      R0,[R0, #+0]
   \   0000003A   50F00800           ORRS     R0,R0,#0x8
   \   0000003E   3249               LDR.N    R1,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000040   0860               STR      R0,[R1, #+0]
     53            }
     54            if(USART_GetFlagStatus(USART1,USART_FLAG_NE))
   \                     ??Uart1Isr_2:
   \   00000042   0421               MOVS     R1,#+4
   \   00000044   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000046   ........           BL       USART_GetFlagStatus
   \   0000004A   0028               CMP      R0,#+0
   \   0000004C   09D0               BEQ.N    ??Uart1Isr_3
     55            {
     56              USART_ClearFlag(USART1,USART_FLAG_NE);
   \   0000004E   0421               MOVS     R1,#+4
   \   00000050   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000052   ........           BL       USART_ClearFlag
     57              // Noise Error
     58              Uart1LineEvents.bFE = TRUE;
   \   00000056   2C48               LDR.N    R0,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000058   0068               LDR      R0,[R0, #+0]
   \   0000005A   50F00800           ORRS     R0,R0,#0x8
   \   0000005E   2A49               LDR.N    R1,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000060   0860               STR      R0,[R1, #+0]
     59            }
     60            if(USART_GetFlagStatus(USART1,USART_FLAG_PE))
   \                     ??Uart1Isr_3:
   \   00000062   0121               MOVS     R1,#+1
   \   00000064   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000066   ........           BL       USART_GetFlagStatus
   \   0000006A   0028               CMP      R0,#+0
   \   0000006C   09D0               BEQ.N    ??Uart1Isr_4
     61            {
     62              USART_ClearFlag(USART1,USART_FLAG_PE);
   \   0000006E   0121               MOVS     R1,#+1
   \   00000070   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000072   ........           BL       USART_ClearFlag
     63              // Parity Error
     64              Uart1LineEvents.bPE = TRUE;
   \   00000076   2448               LDR.N    R0,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000078   0068               LDR      R0,[R0, #+0]
   \   0000007A   50F00400           ORRS     R0,R0,#0x4
   \   0000007E   2249               LDR.N    R1,??Uart1Isr_1  ;; Uart1LineEvents
   \   00000080   0860               STR      R0,[R1, #+0]
     65            }
     66            
     67            if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE))// Push a new data into the receiver buffer
   \                     ??Uart1Isr_4:
   \   00000082   2021               MOVS     R1,#+32
   \   00000084   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   00000086   ........           BL       USART_GetFlagStatus
   \   0000008A   0028               CMP      R0,#+0
   \   0000008C   05D0               BEQ.N    ??Uart1Isr_5
     68            {
     69            	//USART1_485RXD; 
     70                  uart=FifoPush(pUart1RxFifo,USART1); // Push a new data into the receiver buffer         
   \   0000008E   ....               LDR.N    R1,??DataTable36  ;; 0x40013800
   \   00000090   ....               LDR.N    R0,??DataTable26  ;; pUart1RxFifo
   \   00000092   0068               LDR      R0,[R0, #+0]
   \   00000094   ........           BL       FifoPush
   \   00000098   0090               STR      R0,[SP, #+0]
     71            }
     72          
     73            if(USART_GetFlagStatus(USART1,USART_FLAG_TXE)
     74               && (USART_GetITStatus (USART1,USART_IT_TXE) == SET))
   \                     ??Uart1Isr_5:
   \   0000009A   8021               MOVS     R1,#+128
   \   0000009C   ....               LDR.N    R0,??DataTable36  ;; 0x40013800
   \   0000009E   ........           BL       USART_GetFlagStatus
   \   000000A2   0028               CMP      R0,#+0

⌨️ 快捷键说明

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