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

📄 main.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000006   0020               MOV         R0,#+0
   \   00000008   00E0               B           ??wait_0
   \                     ??wait_1:
   \   0000000A   401C               ADD         R0,R0,#+0x1
   \                     ??wait_0:
   \   0000000C   ....               LDR         R1,??DataTable1    ;; LedSpeed
   \   0000000E   0968               LDR         R1,[R1, #+0]
   \   00000010   8842               CMP         R0,R1
   \   00000012   FAD3               BCC         ??wait_1
     59          }//* End
   \   00000014   01BC               POP         {R0}
   \   00000016   0047               BX          R0                 ;; return
     60          
     61          //*--------------------------------------------------------------------------------------
     62          //* Function Name       : Main
     63          //* Object              : Software entry point
     64          //* Input Parameters    : none.
     65          //* Output Parameters   : none.
     66          //*--------------------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     67          int main()
     68          {//* Begin
   \                     main:
   \   00000000   F0B5               PUSH        {R4-R7,LR}
     69              int i;
     70              // First, enable the clock of the PIO
     71                 AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
   \   00000002   1448               LDR         R0,??main_0        ;; 0xfffffc10
   \   00000004   0421               MOV         R1,#+0x4
   \   00000006   0160               STR         R1,[R0, #+0]
     72          
     73              // then, we configure the PIO Lines corresponding to LED1 to LED4
     74              // to be outputs. No need to set these pins to be driven by the PIO because it is GPIO pins only.
     75                 AT91F_PIO_CfgOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
   \   00000008   F020               MOV         R0,#+0xF0
   \   0000000A   C003               LSL         R0,R0,#+0xF        ;; #+0x780000
   \   0000000C   1249               LDR         R1,??main_0+0x4    ;; 0xfffff600
   \   0000000E   0860               STR         R0,[R1, #+0]
   \   00000010   1249               LDR         R1,??main_0+0x8    ;; 0xfffff610
   \   00000012   0860               STR         R0,[R1, #+0]
   \   00000014   1249               LDR         R1,??main_0+0xC    ;; 0xfffff630
   \   00000016   0860               STR         R0,[R1, #+0]
     76          
     77              // Clear the LED's. On the EB55 we must apply a "1" to turn off LEDs
     78                 AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
     79              // Clear the LED's. On the EB55 we must apply a "1" to turn off LEDs
     80                 AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
   \   00000018   124C               LDR         R4,??main_0+0x10   ;; 0xfffff634
   \   0000001A   2060               STR         R0,[R4, #+0]
   \   0000001C   124D               LDR         R5,??main_0+0x14   ;; led_mask
     81          
     82              // Loop forever
     83              for (;;)
     84              {
     85          
     86                  // Once a Shot on each led
     87          	for ( i=0 ; i < AT91B_NB_LEB ; i++ )
   \                     ??main_1:
   \   0000001E   0026               MOV         R6,#+0
     88                  {
     89          	    AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, led_mask[i]) ;
   \                     ??main_2:
   \   00000020   B000               LSL         R0,R6,#+0x2
   \   00000022   2F58               LDR         R7,[R5, R0]
   \   00000024   2760               STR         R7,[R4, #+0]
     90          	    wait();
   \   00000026   ........           BL          wait
     91          	    AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, led_mask[i] ) ;
   \   0000002A   0D48               LDR         R0,??main_0+0xC    ;; 0xfffff630
   \   0000002C   0760               STR         R7,[R0, #+0]
     92          	    wait();
   \   0000002E   ........           BL          wait
     93                  }// End for
   \   00000032   761C               ADD         R6,R6,#+0x1
   \   00000034   042E               CMP         R6,#+0x4
   \   00000036   F3DB               BLT         ??main_2
     94                  // Once a Shot on each led
     95                  for ( i=(AT91B_NB_LEB-1) ; i >= 0 ; i-- )
   \   00000038   0326               MOV         R6,#+0x3
     96                  {
     97          	    AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, led_mask[i]) ;
   \                     ??main_3:
   \   0000003A   B000               LSL         R0,R6,#+0x2
   \   0000003C   2F58               LDR         R7,[R5, R0]
   \   0000003E   2760               STR         R7,[R4, #+0]
     98          	    wait();
   \   00000040   ........           BL          wait
     99          	    AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, led_mask[i] ) ;
   \   00000044   0648               LDR         R0,??main_0+0xC    ;; 0xfffff630
   \   00000046   0760               STR         R7,[R0, #+0]
    100          	    wait();
   \   00000048   ........           BL          wait
    101                  }
   \   0000004C   761E               SUB         R6,R6,#+0x1
   \   0000004E   E6D4               BMI         ??main_1
   \   00000050   F3E7               B           ??main_3
   \   00000052   C046               NOP         
   \                     ??main_0:
   \   00000054   10FCFFFF           DC32        0xfffffc10
   \   00000058   00F6FFFF           DC32        0xfffff600
   \   0000005C   10F6FFFF           DC32        0xfffff610
   \   00000060   30F6FFFF           DC32        0xfffff630
   \   00000064   34F6FFFF           DC32        0xfffff634
   \   00000068   ........           DC32        led_mask
    102              }// End for
    103          }//* End

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable1:
   \   00000000   ........           DC32        LedSpeed

   \                                 In segment DATA_ID, align 4, align-sorted
   \                     `?<Initializer for LedSpeed>`:
   \   00000000   00A00500           DC32 368640

   Maximum stack usage in bytes:

     Function     CSTACK
     --------     ------
     change_speed     4
     main            20
     wait             4


   Segment part sizes:

     Function/Label              Bytes
     --------------              -----
     LedSpeed                       4
     led_mask                      16
     change_speed                  68
     wait                          24
     main                         108
     ??DataTable1                   4
     ?<Initializer for LedSpeed>    4
      Others                       36

 
 228 bytes in segment CODE
  16 bytes in segment DATA_C
   4 bytes in segment DATA_I
   4 bytes in segment DATA_ID
  12 bytes in segment INITTAB
 
 204 bytes of CODE  memory (+ 36 bytes shared)
  20 bytes of CONST memory
   4 bytes of DATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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