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

📄 uart.lst

📁 AD9958arm控制源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
ARM COMPILER V2.53,  uart                                                                  23/07/06  16:59:03  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE uart
OBJECT MODULE PLACED IN uart.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe driver\uart.c THUMB WARNINGLEVEL(3) OPTIMIZE(8,SPEED) DEBUG PRINT(.\UART.LST
                    -) TABS(4) OBJECT(uart.obj) 

stmt  level    source

    1          /*------------------------------------------------------
    2          FILE NAME   : uart.c
    3          DESCRIPTION : lpc2132 uart driver.
    4          VERSION     : 0.0.0 (C)aureole
    5          AUTHOR      : Aureole
    6          CREATE DATE : 4.5.2006
    7          MODIFY DATE : ---
    8          LOGS        :-\ 
    9                    1. First create for hardware test. 4.5.2006
   10                    
   11          
   12          --------------------------------------------------------*/
   13          //---------------Include files--------------------------//
   14          
   15          #include "..\include\uart.h"
   16          #include "..\include\common.h"
   17          #include <string.h>
   18          
   19          
   20          //----------------variable -----------------------------//
   21          
   22          char receive_buffer[BUFFER_SIZE];
   23          unsigned char uart0_receive_count=0;
   24          unsigned char uart0_receive_ok_flag=0;
   25          
   26          //---------------Function-------------------------------//
   27          /*--------------------------------------------------------
   28          NAME       : receive
   29          ENTRY  TYPE: unsigned char *
   30          RETURN TYPE: void
   31          PURPOSE    : ---
   32          VERSION    : 0.1
   33          DESCRIPTION:
   34          CREATE DATE: 4.5.2006
   35          LOGS       : 1.first create;
   36          ---------------------------------------------------------*/
   37          void   irq_uart0(void) __irq
   38          {
   39   1          
   40   1       // LED_ON  
   41   1          if((U0IIR & 0x0F) == 0x04){
   42   2              receive_buffer[uart0_receive_count++]=U0RBR;    
   43   2              if(receive_buffer[uart0_receive_count-2]=='\r'&&
   44   2                 receive_buffer[uart0_receive_count-1]=='\n'){
   45   3                  uart0_receive_count=0;
   46   3                  uart0_receive_ok_flag=TRUE;
   47   3              }
   48   2      
   49   2          VICVectAddr = 0x00;         // 中断处理结束
   50   2          }
   51   1          
   52   1      /// LED_OFF
   53   1      }
   54          /*--------------------------------------------------------
   55          NAME       : initialize_uart0
   56          ENTRY  TYPE: void
   57          RETURN TYPE: void
   58          PURPOSE    : ---
ARM COMPILER V2.53,  uart                                                                  23/07/06  16:59:03  PAGE 2   

   59          VERSION    : 0.1
   60          DESCRIPTION:
   61          CREATE DATE: 4.5.2006
   62          LOGS       : 1.first create;
   63          ---------------------------------------------------------*/
   64          void initialize_uart0(void)
   65          {
   66   1          unsigned short Fdiv;
   67   1          
   68   1          
   69   1          PINSEL0 |= 0x00000005;
   70   1          
   71   1          U0LCR = 0x83;               // DLAB=1,允许设置波特率
   72   1          Fdiv  = (Fpclk / 16 ) / UART0_BPS;  // 设置波特率  Fdiv= (VPB/(16*bps));
   73   1          U0DLM = Fdiv / 256;
   74   1          U0DLL = Fdiv % 256;
   75   1          U0LCR = 0x03;
   76   1          
   77   1          
   78   1      
   79   1          U0FCR = 0x01;                       // 使能FIFO,并设置触发点为1字节
   80   1          U0IER = 0x01;                       // 允许RBR中断,即接收中断
   81   1      
   82   1          // 使能IRQ中断
   83   1          
   84   1          VICIntSelect = 0x00000000;          // 设置所有的通道为IRQ中断
   85   1          VICVectCntl0 = 0x20 | 0x06;         // UART0分配到IRQ slot0,即最高优先级
   86   1          VICVectAddr0 = (unsigned long int)irq_uart0;    // 设置UART0向量地址
   87   1          VICIntEnable |= 1 << 0x06;          // 使能UART0中断
   88   1      
   89   1      }
   90          
   91          #ifdef DEBUG_FROM_UART1
   92          /*--------------------------------------------------------
   93          NAME       : initialize_uart1
   94          ENTRY  TYPE: void
   95          RETURN TYPE: void
   96          PURPOSE    : ---
   97          VERSION    : 0.1
   98          DESCRIPTION:
   99          CREATE DATE: 4.12.2006
  100          LOGS       : 1.first create;
  101          ---------------------------------------------------------*/
  102          void initialize_uart1(void)
  103          {
  104   1          unsigned short Fdiv;
  105   1          
  106   1          
  107   1          PINSEL0 |= 0x00050000;
  108   1          
  109   1          U1LCR = 0x83;               // DLAB=1,允许设置波特率
  110   1          Fdiv  = (Fpclk / 16) / UART1_BPS;   // 设置波特率
  111   1          U1DLM = Fdiv / 256;
  112   1          U1DLL = Fdiv % 256;
  113   1          U1LCR = 0x03;
  114   1          
  115   1      
  116   1          U1FCR = 0x01;                       // 使能FIFO,并设置触发点为1字节
  117   1          U1IER = 0x0;                        // 禁止中断
  118   1      }
  119          
  120          /*--------------------------------------------------------
  121          NAME       : send_string_to_uart1
  122          ENTRY  TYPE: unsigned char *
  123          RETURN TYPE: void
  124          PURPOSE    : ---
ARM COMPILER V2.53,  uart                                                                  23/07/06  16:59:03  PAGE 3   

  125          VERSION    : 0.1
  126          DESCRIPTION:
  127          CREATE DATE: 4.5.2006
  128          LOGS       : 1.first create;
  129          ---------------------------------------------------------*/
  130          void send_string_to_uart1(char * str)
  131          {
  132   1      
  133   1          
  134   1          while(*str!='\0'){
  135   2              U1THR=(*str++);
  136   2              while(!(U1LSR&0X40));
  137   2          }
  138   1          
  139   1      }
  140          
  141          #endif //DEBUG_FROM_UART1
  142          
  143          /*--------------------------------------------------------
  144          NAME       : send_string_to_uart0
  145          ENTRY  TYPE: unsigned char *
  146          RETURN TYPE: void
  147          PURPOSE    : ---
  148          VERSION    : 0.1
  149          DESCRIPTION:
  150          CREATE DATE: 4.5.2006
  151          LOGS       : 1.first create;
  152          ---------------------------------------------------------*/
  153          void send_string_to_uart0(char * str)
  154          {
  155   1      //  LED_ON
  156   1          
  157   1          while(*str!='\0'){
  158   2              U0THR=(*str++);
  159   2          while(!(U0LSR&0X40));   
  160   2          }
  161   1          
  162   1      //  LED_OFF
  163   1          
  164   1      }
  165          
  166          /*--------------------------------------------------------
  167          NAME       : clear_receive_buffer
  168          ENTRY  TYPE: void
  169          RETURN TYPE: void
  170          PURPOSE    : ---
  171          VERSION    : 0.1
  172          DESCRIPTION:
  173          CREATE DATE: 4.8.2006
  174          LOGS       : 1.first create;
  175          ---------------------------------------------------------*/
  176          void clear_receive_buffer(void)
  177          {
  178   1          memset(receive_buffer,0,sizeof(receive_buffer));
  179   1      
  180   1      }
ARM COMPILER V2.53,  uart                                                                  23/07/06  16:59:03  PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (memset?T)



*** PUBLICS:
 PUBLIC         initialize_uart0?T
 PUBLIC         send_string_to_uart0?T
 PUBLIC         clear_receive_buffer?T
 PUBLIC         initialize_uart1?T
 PUBLIC         send_string_to_uart1?T
 PUBLIC         irq_uart0?A
 PUBLIC         receive_buffer
 PUBLIC         uart0_receive_count
 PUBLIC         uart0_receive_ok_flag



*** DATA SEGMENT '?DT0?uart':
 00000000          receive_buffer:
 00000000            DS          100
 00000064          uart0_receive_count:
 00000064           BEGIN_INIT
 00000064  00        DB          0x0
 00000065           END_INIT
 00000065          uart0_receive_ok_flag:
 00000065           BEGIN_INIT
 00000065  00        DB          0x0
 00000066           END_INIT



*** CODE SEGMENT '?PR?irq_uart0?A?uart':
   37: void   irq_uart0(void) __irq
 00000000  E92D000F  STMDB       R13!,{R0-R3}
   41:     if((U0IIR & 0x0F) == 0x04){

⌨️ 快捷键说明

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