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

📄 init.lst

📁 rs485的通信程序的主程序。采用at91sam7a3芯片编写的。
💻 LST
字号:
ARM COMPILER V2.54a,  Init                                                                 19/08/06  17:44:59  PAGE 1   


ARM COMPILER V2.54a, COMPILATION OF MODULE Init
OBJECT MODULE PLACED IN Init.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe Init.c ARM OPTIMIZE(2,SPEED) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          #include "at91sam7a3.h"
    2          
    3          void    power_on_initialization();
    4          void    Initial_USART();
    5          
    6          void  power_on_initialization()
    7          { 
    8   1          AT91S_SYS *paddr;
    9   1      
   10   1          paddr = 0xFFFFF000;
   11   1          paddr->AIC_IECR = 0x0000001C;
   12   1          paddr->AIC_SMR[2] = 0x00000065;     //中断源模式寄存器
   13   1          paddr->AIC_SMR[3] = 0x00000064;
   14   1          paddr->AIC_SMR[4] = 0x00000064;
   15   1      
   16   1          paddr->AIC_IECR = 0x0000001C;           //中断源使能寄存器
   17   1          Initial_USART();
   18   1      
   19   1          //USART设置
   20   1      
   21   1          
   22   1          //向量中断设置
   23   1          //VICIntSelect = 0x00000000;
   24   1      
   25   1          //VICVectCntl0 = 0x00000000;      
   26   1          //VICVectCntl2 = 0x00000000;      
   27   1          //VICVectCntl3 = 0x00000000;       
   28   1          //VICVectCntl4 = 0x00000000;       
   29   1          //VICVectCntl5 = 0x0000002B;        //SPI1
   30   1          //VICVectCntl6 = 0x0000002E;        //0x00000000;       //EINT0 
   31   1          //VICVectCntl7 = 0x00000024;        //TIME0
   32   1          //VICVectCntl8 = 0x00000026;        //UART0
   33   1          //VICVectCntl9 = 0x00000000;      
   34   1          //VICVectCntl10 = 0x00000000;                   
   35   1          //VICVectCntl11 = 0x00000000;     
   36   1          //VICVectCntl12 = 0x00000000;     
   37   1          //VICVectCntl13 = 0x00000000;     
   38   1          //VICVectCntl14 = 0x00000000;     
   39   1          //VICVectCntl15 = 0x00000000;     
   40   1            
   41   1          //VICVectAddr0 = 0x00000000;      
   42   1          //VICVectAddr2 = 0x00000000;
   43   1          //VICVectAddr3 = 0x00000000;
   44   1          //VICVectAddr4 = 0x00000000;
   45   1          //VICVectAddr5 = 0x00000000;        //(unsigned long) SPI1__irq;        //SPI1
   46   1          //VICVectAddr6 = (unsigned long) EINT0__irq;        //EINT0//0x00000000;
   47   1          //VICVectAddr7 = (unsigned long) timer0__irq;       //TIME0
   48   1          //VICVectAddr8 = (unsigned long) UART0__irq;        //UART0
   49   1          //VICVectAddr10 = 0x00000000;     
   50   1          //VICVectAddr11 = 0x00000000;     
   51   1          //VICVectAddr12 = 0x00000000;     
   52   1          //VICVectAddr13 = 0x00000000;     
   53   1          //VICVectAddr14 = 0x00000000;     
   54   1          //VICVectAddr15 = 0x00000000;       
   55   1      
   56   1          //VICDefVectAddr = 0x00000000;     
   57   1          //VICIntEnable = 0x00004850;//0x00004050;
   58   1      
   59   1          //PIO
ARM COMPILER V2.54a,  Init                                                                 19/08/06  17:44:59  PAGE 2   

   60   1          //PIO_PER = 0x0000071C; //
   61   1          //PIO_PDR = 0xFFFFF8E3; //
   62   1      
   63   1      
   64   1          //USART0设置
   65   1          //U0IER = 0x03 ;
   66   1          //U0FCR = 0x01 ;
   67   1          //U0LCR = 0x83 ;
   68   1          //U0DLL = 0x9 ;
   69   1          //U0DLM = 0x00 ;
   70   1          //U0LCR = 0x03 ;
   71   1      
   72   1          //USART1设置
   73   1          //U0IER = 0x03 ;
   74   1          //U0FCR = 0x01 ;
   75   1          //U0LCR = 0x83 ;
   76   1          //U0DLL = 0x9 ;
   77   1          //U0DLM = 0x00 ;
   78   1          //U0LCR = 0x03 ;
   79   1      
   80   1          //USART2设置
   81   1          //U0IER = 0x03 ;
   82   1          //U0FCR = 0x01 ;
   83   1          //U0LCR = 0x83 ;
   84   1          //U0DLL = 0x9 ;
   85   1          //U0DLM = 0x00 ;
   86   1          //U0LCR = 0x03 ;
   87   1      
   88   1          //标志设置
   89   1      }
   90          
   91          void Initial_USART()
   92          {
   93   1          AT91S_USART *pIntial_US0,*pIntial_US1,*pIntial_US2;
   94   1      
   95   1          pIntial_US0 = 0xFFFC0000;
   96   1          pIntial_US1 = 0xFFFC4000;
   97   1          pIntial_US2 = 0xFFFC8000;
   98   1      
   99   1          pIntial_US0->US_CR = 0x0000115C;        // (US0) Control Register
  100   1          pIntial_US0->US_MR = 0x00010CD0;        // (US0) Mode Register
  101   1          pIntial_US0->US_IER = 0x00001803;       // (US0) Interrupt Enable Register
  102   1          pIntial_US0->US_IDR = 0x00000000;       // (US0) Interrupt Disable Register
  103   1          pIntial_US0->US_THR = 0x0;      // (US0) Transmitter Holding Register
  104   1          pIntial_US0->US_BRGR = 0x0;         // (US0) Baud Rate Generator Register
  105   1          pIntial_US0->US_RTOR = 0x0;         // (US0) Receiver Time-out Register
  106   1          pIntial_US0->US_TTGR = 0x0;     // (US0) Transmitter Time-guard Register
  107   1      
  108   1          pIntial_US1->US_CR = 0x0000115C;
  109   1          
  110   1      
  111   1      }
ARM COMPILER V2.54a,  Init                                                                 19/08/06  17:44:59  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         power_on_initialization?A
 PUBLIC         Initial_USART?A



*** CODE SEGMENT '?PR?power_on_initialization?A?Init':
    6: void  power_on_initialization()
 00000000  E92D4000  STMDB       R13!,{LR}
    7: { 
 00000004            ; SCOPE-START
   10:     paddr = 0xFFFFF000;
 00000004  E5102000  LDR         R2,=0xFFFFF000
 00000008  ---- Variable 'paddr' assigned to Register 'R2' ----
   11:     paddr->AIC_IECR = 0x0000001C;
 00000008  E3A0001C  MOV         R0,#0x1C
 0000000C  E1A01002  MOV         R1,R2 ; paddr
 00000010  E5810120  STR         R0,[R1,#0x120]
   12:     paddr->AIC_SMR[2] = 0x00000065;     //中断源模式寄存器
 00000014  E3A00065  MOV         R0,#0x65
 00000018  E1A01002  MOV         R1,R2 ; paddr
 0000001C  E5810008  STR         R0,[R1,#0x8]
   13:     paddr->AIC_SMR[3] = 0x00000064;
 00000020  E3A00064  MOV         R0,#0x64
 00000024  E1A01002  MOV         R1,R2 ; paddr
 00000028  E581000C  STR         R0,[R1,#0xC]
   14:     paddr->AIC_SMR[4] = 0x00000064;
 0000002C  E3A00064  MOV         R0,#0x64
 00000030  E1A01002  MOV         R1,R2 ; paddr
 00000034  E5810010  STR         R0,[R1,#0x10]
   16:     paddr->AIC_IECR = 0x0000001C;           //中断源使能寄存器
 00000038  E3A0001C  MOV         R0,#0x1C
 0000003C  E1A01002  MOV         R1,R2 ; paddr
 00000040  E5810120  STR         R0,[R1,#0x120]
   17:        Initial_USART();
 00000044  EBFFFFED  BL          Initial_USART?A  ; Targ=0x0
 00000048            ; SCOPE-END
   89: }
 00000048  E8BD0008  LDMIA       R13!,{R3}
 0000004C  E12FFF13  BX          R3
 00000050          ENDP ; 'power_on_initialization?A'


*** CODE SEGMENT '?PR?Initial_USART?A?Init':
   91: void Initial_USART()
 00000000  E24DD004  SUB         R13,R13,#0x0004
   92: {
 00000004            ; SCOPE-START
   95:     pIntial_US0 = 0xFFFC0000;
 00000004  E5103000  LDR         R3,=0xFFFC0000
 00000008  ---- Variable 'pIntial_US0' assigned to Register 'R3' ----
   96:     pIntial_US1 = 0xFFFC4000;
 00000008  E5102000  LDR         R2,=0xFFFC4000
 0000000C  ---- Variable 'pIntial_US1' assigned to Register 'R2' ----
   99:     pIntial_US0->US_CR = 0x0000115C;        // (US0) Control Register
 0000000C  E5101000  LDR         R1,=0x115C
 00000010  E1A00003  MOV         R0,R3 ; pIntial_US0
 00000014  E5801000  STR         R1,[R0,#0x0] ; pIntial_US0
  100:     pIntial_US0->US_MR = 0x00010CD0;        // (US0) Mode Register
 00000018  E5100000  LDR         R0,=0x10CD0
 0000001C  E1A01003  MOV         R1,R3 ; pIntial_US0
 00000020  E5810004  STR         R0,[R1,#0x4]
  101:     pIntial_US0->US_IER = 0x00001803;       // (US0) Interrupt Enable Register
 00000024  E5100000  LDR         R0,=0x1803
 00000028  E1A01003  MOV         R1,R3 ; pIntial_US0
 0000002C  E5810008  STR         R0,[R1,#0x8]
  102:     pIntial_US0->US_IDR = 0x00000000;       // (US0) Interrupt Disable Register
ARM COMPILER V2.54a,  Init                                                                 19/08/06  17:44:59  PAGE 4   

 00000030  E3A00000  MOV         R0,#0x0
 00000034  E1A01003  MOV         R1,R3 ; pIntial_US0
 00000038  E581000C  STR         R0,[R1,#0xC]
  103:     pIntial_US0->US_THR = 0x0;      // (US0) Transmitter Holding Register
 0000003C  E3A00000  MOV         R0,#0x0
 00000040  E1A01003  MOV         R1,R3 ; pIntial_US0
 00000044  E581001C  STR         R0,[R1,#0x1C]
  104:     pIntial_US0->US_BRGR = 0x0;         // (US0) Baud Rate Generator Register
 00000048  E3A00000  MOV         R0,#0x0
 0000004C  E1A01003  MOV         R1,R3 ; pIntial_US0
 00000050  E5810020  STR         R0,[R1,#0x20]
  105:     pIntial_US0->US_RTOR = 0x0;         // (US0) Receiver Time-out Register
 00000054  E3A00000  MOV         R0,#0x0
 00000058  E1A01003  MOV         R1,R3 ; pIntial_US0
 0000005C  E5810024  STR         R0,[R1,#0x24]
  106:     pIntial_US0->US_TTGR = 0x0;     // (US0) Transmitter Time-guard Register
 00000060  E3A00000  MOV         R0,#0x0
 00000064  E1A01003  MOV         R1,R3 ; pIntial_US0
 00000068  E5810028  STR         R0,[R1,#0x28]
  108:     pIntial_US1->US_CR = 0x0000115C;
 0000006C  E5101000  LDR         R1,=0x115C
 00000070  E1A00002  MOV         R0,R2 ; pIntial_US1
 00000074  E5801000  STR         R1,[R0,#0x0] ; pIntial_US1
 00000078            ; SCOPE-END
 00000078  E28DD004  ADD         R13,R13,#0x0004
 0000007C  E12FFF1E  BX          R14
 00000080          ENDP ; 'Initial_USART?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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