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

📄 alva.lst

📁 针对at91sam7s64芯片实现usb通讯的下位机程序
💻 LST
字号:
ARM COMPILER V2.53,  alva                                                                  02/11/07  08:22:56  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE alva
OBJECT MODULE PLACED IN alva.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe alva.c THUMB DEBUG PRINT(.\LST\ALVA.LST) TABS(4) 

stmt  level    source

    1          /*----------------------------------------------------------------------------
    2                  For Intellisence
    3           *---------------------------------------------------------------------------*/
    4          
    5          #include <AT91SAM7S64.H>                    /* AT91SAM7S64 definitions */
    6          #include "Board.h"
    7          #include "type.h"
    8          #include "usb.h"
    9          #include "usbcfg.h"
   10          #include "usbhw.h"
   11          #include "usbcore.h"
   12          
   13          AT91S_PIO * pPIO = AT91C_BASE_PIOA;         /* Global Pointer to PIO */
   14          BYTE    data;
   15          /* Main Program */
   16          
   17          int main (void) {
   18   1        int timecount;                                                 
   19   1        AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);  /* Enable Clock for PIO */
   20   1        *AT91C_PIOA_PER=0x0000000F;               /*PIOA0-2作为I/O使用*/
   21   1        *AT91C_PIOA_OER=0x0000000F;               /*PIOA0-2输出使能 */
   22   1        pPIO->PIO_PER  = LED_MASK;                /* Enable PIO for LED1..4  */
   23   1        pPIO->PIO_OER  = LED_MASK;                /* LED1..4 are Outputs     */
   24   1        pPIO->PIO_SODR = LED_MASK;                /* Turn off LED's ("1")    */
   25   1        data=0;
   26   1      
   27   1        USB_Init();                               /* USB Initialization */
   28   1        USB_Connect(TRUE);                        /* USB Connect */
   29   1      
   30   1        while (1)                                /* Loop forever */
   31   1        {
   32   2          if(data==49)
   33   2          {   
   34   3              *AT91C_PIOA_CODR=0x00000001;                        /*开led1*/
   35   3              for(timecount=0;timecount<6000000;timecount++);
   36   3              *AT91C_PIOA_SODR=0x00000001;                        /*关led1*/      
   37   3              USB_WriteEP (1, &data, 1);
   38   3              data=0;
   39   3          }
   40   2      
   41   2          if(data==50)
   42   2          {
   43   3              *AT91C_PIOA_CODR=0x00000002;                         /*开led2*/
   44   3              for(timecount=0;timecount<6000000;timecount++);
   45   3              *AT91C_PIOA_SODR=0x00000002;
   46   3              USB_WriteEP (1, &data, 1);                          /*关led2*/
   47   3              data=0;
   48   3          }
   49   2              if(data==51)
   50   2          {
   51   3              *AT91C_PIOA_CODR=0x00000004;                        /*开led3*/
   52   3              for(timecount=0;timecount<6000000;timecount++);
   53   3              *AT91C_PIOA_SODR=0x00000004;
   54   3              USB_WriteEP (1, &data, 1);                          /*关led3*/
   55   3              data=0;
   56   3          }
   57   2        }
   58   1        
   59   1      }
ARM COMPILER V2.53,  alva                                                                  02/11/07  08:22:56  PAGE 2   

   60          
ARM COMPILER V2.53,  alva                                                                  02/11/07  08:22:56  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (USB_Init?T)
 EXTERN CODE16 (USB_Connect?T)
 EXTERN CODE16 (USB_WriteEP?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         main
 PUBLIC         pPIO
 PUBLIC         data



*** DATA SEGMENT '?DT0?alva':
 00000000          pPIO:
 00000000           BEGIN_INIT
 00000000  FFFFF400  DD          0xFFFFF400
 00000004           END_INIT
 00000004          data:
 00000004            DS          1



*** CODE SEGMENT '?PR?main?alva':
   17: int main (void) {
 00000000  B500      PUSH        {LR}
 00000002  ---- Variable 'timecount' assigned to Register 'R4' ----
 00000002            ; SCOPE-START
   19:   AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOA);  /* Enable Clock for PIO */
 00000002  2104      MOV         R1,#0x4
 00000004  4800      LDR         R0,=0xFFFFFC10
 00000006  6001      STR         R1,[R0,#0x0]
   20:   *AT91C_PIOA_PER=0x0000000F;               /*PIOA0-2作为I/O使用*/
 00000008  210F      MOV         R1,#0xF
 0000000A  4800      LDR         R0,=0xFFFFF400
 0000000C  6001      STR         R1,[R0,#0x0]
   21:   *AT91C_PIOA_OER=0x0000000F;               /*PIOA0-2输出使能 */
 0000000E  4800      LDR         R0,=0xFFFFF410
 00000010  6001      STR         R1,[R0,#0x0]
   22:   pPIO->PIO_PER  = LED_MASK;                /* Enable PIO for LED1..4  */
 00000012  4800      LDR         R0,=pPIO ; pPIO
 00000014  6800      LDR         R0,[R0,#0x0] ; pPIO
 00000016  6001      STR         R1,[R0,#0x0]
   23:   pPIO->PIO_OER  = LED_MASK;                /* LED1..4 are Outputs     */
 00000018  200F      MOV         R0,#0xF
 0000001A  4800      LDR         R1,=pPIO ; pPIO
 0000001C  6809      LDR         R1,[R1,#0x0] ; pPIO
 0000001E  6108      STR         R0,[R1,#0x10]
   24:   pPIO->PIO_SODR = LED_MASK;                /* Turn off LED's ("1")    */
 00000020  200F      MOV         R0,#0xF
 00000022  4800      LDR         R1,=pPIO ; pPIO
 00000024  6809      LDR         R1,[R1,#0x0] ; pPIO
 00000026  6308      STR         R0,[R1,#0x30]
   25:   data=0;
 00000028  2100      MOV         R1,#0x0
 0000002A  4800      LDR         R0,=data ; data
 0000002C  7001      STRB        R1,[R0,#0x0] ; data
   27:   USB_Init();                               /* USB Initialization */
 0000002E  F7FF      BL          USB_Init?T  ; T=0x0001  (1)
 00000030  FFE7      BL          USB_Init?T  ; T=0x0001  (2)
   28:   USB_Connect(TRUE);                        /* USB Connect */
 00000032  2001      MOV         R0,#0x1
 00000034  F7FF      BL          USB_Connect?T  ; T=0x0001  (1)
 00000036  FFE4      BL          USB_Connect?T  ; T=0x0001  (2)
   30:   while (1)                                /* Loop forever */
 00000038          L_3:
   32:       if(data==49)
ARM COMPILER V2.53,  alva                                                                  02/11/07  08:22:56  PAGE 4   

 00000038  4800      LDR         R0,=data ; data
 0000003A  7800      LDRB        R0,[R0,#0x0] ; data
 0000003C  2831      CMP         R0,#0x31
 0000003E  D113      BNE         L_5  ; T=0x00000068
   34:          *AT91C_PIOA_CODR=0x00000001;                       /*开led1*/
 00000040  2101      MOV         R1,#0x1
 00000042  4800      LDR         R0,=0xFFFFF434
 00000044  6001      STR         R1,[R0,#0x0]
   35:         for(timecount=0;timecount<6000000;timecount++);
 00000046  2400      MOV         R4,#0x0
 00000048          L_6:
 00000048  3401      ADD         R4,#0x1
 0000004A  1C20      MOV         R0,R4 ; timecount
 0000004C  4800      LDR         R1,=0x5B8D80
 0000004E  4288      CMP         R0,R1 ; timecount
 00000050  DBFA      BLT         L_6  ; T=0x00000048
   36:         *AT91C_PIOA_SODR=0x00000001;                        /*关led1*/      
 00000052  2101      MOV         R1,#0x1
 00000054  4800      LDR         R0,=0xFFFFF430
 00000056  6001      STR         R1,[R0,#0x0]
   37:         USB_WriteEP (1, &data, 1);
 00000058  4800      LDR         R1,=data ; data
 0000005A  2201      MOV         R2,#0x1
 0000005C  1C10      MOV         R0,R2
 0000005E  F7FF      BL          USB_WriteEP?T  ; T=0x0001  (1)
 00000060  FFCF      BL          USB_WriteEP?T  ; T=0x0001  (2)
   38:         data=0;
 00000062  2100      MOV         R1,#0x0
 00000064  4800      LDR         R0,=data ; data
 00000066  7001      STRB        R1,[R0,#0x0] ; data
   39:     }
 00000068          L_5:
   41:     if(data==50)
 00000068  4800      LDR         R0,=data ; data
 0000006A  7800      LDRB        R0,[R0,#0x0] ; data
 0000006C  2832      CMP         R0,#0x32
 0000006E  D113      BNE         L_11  ; T=0x00000098
   43:         *AT91C_PIOA_CODR=0x00000002;                         /*开led2*/
 00000070  2102      MOV         R1,#0x2
 00000072  4800      LDR         R0,=0xFFFFF434
 00000074  6001      STR         R1,[R0,#0x0]
   44:         for(timecount=0;timecount<6000000;timecount++);
 00000076  2400      MOV         R4,#0x0
 00000078          L_12:
 00000078  3401      ADD         R4,#0x1
 0000007A  1C20      MOV         R0,R4 ; timecount
 0000007C  4800      LDR         R1,=0x5B8D80
 0000007E  4288      CMP         R0,R1 ; timecount
 00000080  DBFA      BLT         L_12  ; T=0x00000078
   45:         *AT91C_PIOA_SODR=0x00000002;
 00000082  2102      MOV         R1,#0x2
 00000084  4800      LDR         R0,=0xFFFFF430
 00000086  6001      STR         R1,[R0,#0x0]
   46:         USB_WriteEP (1, &data, 1);                          /*关led2*/
 00000088  4800      LDR         R1,=data ; data
 0000008A  2201      MOV         R2,#0x1
 0000008C  1C10      MOV         R0,R2
 0000008E  F7FF      BL          USB_WriteEP?T  ; T=0x0001  (1)
 00000090  FFB7      BL          USB_WriteEP?T  ; T=0x0001  (2)
   47:         data=0;
 00000092  2100      MOV         R1,#0x0
 00000094  4800      LDR         R0,=data ; data
 00000096  7001      STRB        R1,[R0,#0x0] ; data
   48:     }
 00000098          L_11:
   49:         if(data==51)
ARM COMPILER V2.53,  alva                                                                  02/11/07  08:22:56  PAGE 5   

 00000098  4800      LDR         R0,=data ; data
 0000009A  7800      LDRB        R0,[R0,#0x0] ; data
 0000009C  2833      CMP         R0,#0x33
 0000009E  D1CB      BNE         L_3  ; T=0x00000038
   51:         *AT91C_PIOA_CODR=0x00000004;                        /*开led3*/
 000000A0  2104      MOV         R1,#0x4
 000000A2  4800      LDR         R0,=0xFFFFF434
 000000A4  6001      STR         R1,[R0,#0x0]
   52:         for(timecount=0;timecount<6000000;timecount++);
 000000A6  2400      MOV         R4,#0x0
 000000A8          L_18:
 000000A8  3401      ADD         R4,#0x1
 000000AA  1C20      MOV         R0,R4 ; timecount
 000000AC  4800      LDR         R1,=0x5B8D80
 000000AE  4288      CMP         R0,R1 ; timecount
 000000B0  DBFA      BLT         L_18  ; T=0x000000A8
   53:         *AT91C_PIOA_SODR=0x00000004;
 000000B2  2104      MOV         R1,#0x4
 000000B4  4800      LDR         R0,=0xFFFFF430
 000000B6  6001      STR         R1,[R0,#0x0]
   54:         USB_WriteEP (1, &data, 1);                          /*关led3*/
 000000B8  4800      LDR         R1,=data ; data
 000000BA  2201      MOV         R2,#0x1
 000000BC  1C10      MOV         R0,R2
 000000BE  F7FF      BL          USB_WriteEP?T  ; T=0x0001  (1)
 000000C0  FF9F      BL          USB_WriteEP?T  ; T=0x0001  (2)
   55:         data=0;
 000000C2  2100      MOV         R1,#0x0
 000000C4  4800      LDR         R0,=data ; data
 000000C6  7001      STRB        R1,[R0,#0x0] ; data
   57:   }
 000000C8  E7B6      B           L_3  ; T=0x00000038
 000000CA            ; SCOPE-END
   59: }
 000000CA  BC08      POP         {R3}
 000000CC  4718      BX          R3
 000000CE          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         5
  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 + -