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

📄 main.lst

📁 AT91SAM7X256芯片底层驱动源码。在IAR430环境下编译
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     28/Oct/2005  11:26:49 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\src\main.c            #
#    Command line    =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\src\main.c -lC        #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\RAM_Debug\List #
#                       \ --remarks -o E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X2 #
#                       56-Interrupt-IAR4_30A-1_2\AT91SAM7X-Interrupt\compil #
#                       \RAM_Debug\Obj\ -z9 --debug --cpu_mode thumb         #
#                       --endian little --cpu ARM7TDMI --stack_align 4       #
#                       --interwork -e --fpu None --dlib_config "D:\Program  #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Kickstart\arm\LIB\dl4tptinl8n.h" -I                  #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\srcIAR\ -I     #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\..\src\ -I     #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\..\..\ -I      #
#                       "D:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\INC\"                              #
#    List file       =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\RAM_Debug\List #
#                       \main.lst                                            #
#    Object file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
#                       R4_30A-1_2\AT91SAM7X-Interrupt\compil\RAM_Debug\Obj\ #
#                       main.r79                                             #
#                                                                            #
#                                                                            #
##############################################################################

E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IAR4_30A-1_2\AT91SAM7X-Interrupt\src\main.c
      1          // ----------------------------------------------------------------------------
      2          //         ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          // ----------------------------------------------------------------------------
      4          // DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
      5          // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
      6          // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
      7          // DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
      8          // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      9          // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     10          // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     11          // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     12          // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     13          // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     14          // ----------------------------------------------------------------------------
     15          // File Name           : main.c
     16          // Object              : main application written in C
     17          // Creation            : JPP   08-Sep-2005
     18          // ----------------------------------------------------------------------------
     19          
     20          // Include Standard LIB  files
     21          #include "project.h"

   \                                 In segment CODE, align 4, keep-with-next
   \   __??Code16?? __code __interwork __atpcs unsigned int AT91F_AIC_ConfigureIt(AT91PS_AIC, unsigned int, unsigned int, unsigned int, void (*)())
   \                     AT91F_AIC_ConfigureIt:
   \   00000000   F4B4               PUSH        {R2,R4-R7}
   \   00000002   021C               MOV         R2,R0
   \   00000004   0C1C               MOV         R4,R1
   \   00000006   059E               LDR         R6,[SP, #+0x14]
   \   00000008   8900               LSL         R1,R1,#+0x2
   \   0000000A   4718               ADD         R7,R0,R1
   \   0000000C   8037               ADD         R7,#+0x80
   \   0000000E   3868               LDR         R0,[R7, #+0]
   \   00000010   0125               MOV         R5,#+0x1
   \   00000012   A540               LSL         R5,R4
   \   00000014   2C1C               MOV         R4,R5
   \   00000016   9225               MOV         R5,#+0x92
   \   00000018   6D00               LSL         R5,R5,#+0x1        ;; #+0x124
   \   0000001A   5519               ADD         R5,R2,R5
   \   0000001C   2C60               STR         R4,[R5, #+0]
   \   0000001E   3E60               STR         R6,[R7, #+0]
   \   00000020   009E               LDR         R6,[SP, #+0]
   \   00000022   1E43               ORR         R6,R3
   \   00000024   5650               STR         R6,[R2, R1]
   \   00000026   6C60               STR         R4,[R5, #+0x4]
   \   00000028   F8BC               POP         {R3-R7}
   \   0000002A   7047               BX          LR                 ;; return
     22          
     23          //*   Waiting time between AT91B_LED1 and AT91B_LED2
     24          #define     WAIT_TIME       AT91B_MCK
     25          
     26          #define PIO_INTERRUPT_LEVEL     6
     27          #define SOFT_INTERRUPT_LEVEL	2
     28          #define FIQ_INTERRUPT_LEVEL     7  // Always high
     29          
     30          //* Global variable

   \                                 In segment DATA_Z, align 4, align-sorted
     31          int count_timer0_interrupt;
   \                     count_timer0_interrupt:
   \   00000000                      DS8 4

   \                                 In segment DATA_Z, align 4, align-sorted
     32          int count_timer1_interrupt;
   \                     count_timer1_interrupt:
   \   00000000                      DS8 4
     33          
     34          // Use the Library Handler defined in file periph/pio/pio_irq/irq_pio.s
     35          
     36          extern void FIQ_init_handler(void);
     37          
     38          // External Function Prototype
     39          extern void timer_init (void );
     40          extern void Usart_init (void);
     41          
     42          
     43          //*----------------------------------------------------------------------------
     44          //* Function Name       : aic_software_interrupt
     45          //* Object              : Software interrupt function
     46          //* Input Parameters    : none
     47          //* Output Parameters   : none
     48          //* Functions calAT91B_LED    : at91_pio_write
     49          //*----------------------------------------------------------------------------

   \                                 In segment CODE_I, align 4, keep-with-next
     50          __ramfunc void aic_software_interrupt(void)
     51          {
     52              //* Read the output state
     53              if ( (AT91F_PIO_GetInput(AT91C_BASE_PIOB) & AT91B_LED2 ) == AT91B_LED2 )
   \                     aic_software_interrupt:
   \   00000000   0548               LDR         R0,??aic_software_interrupt_0  ;; 0xfffff63c
   \   00000002   0068               LDR         R0,[R0, #+0]
   \   00000004   8021               MOV         R1,#+0x80
   \   00000006   4903               LSL         R1,R1,#+0xD        ;; #+0x100000
   \   00000008   0842               TST         R0,R1
   \   0000000A   01D0               BEQ         ??aic_software_interrupt_1
     54              {
     55                  AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91B_LED2 );
   \   0000000C   0348               LDR         R0,??aic_software_interrupt_0+0x4  ;; 0xfffff634
   \   0000000E   00E0               B           ??aic_software_interrupt_2
     56              }
     57              else
     58              {
     59                  AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91B_LED2 );
   \                     ??aic_software_interrupt_1:
   \   00000010   0348               LDR         R0,??aic_software_interrupt_0+0x8  ;; 0xfffff630
   \                     ??aic_software_interrupt_2:
   \   00000012   0160               STR         R1,[R0, #+0]
     60              }
     61          }
   \   00000014   00B0               ADD         SP,#+0
   \   00000016   7047               BX          LR                 ;; return
   \                     ??aic_software_interrupt_0:
   \   00000018   3CF6FFFF           DC32        0xfffff63c
   \   0000001C   34F6FFFF           DC32        0xfffff634
   \   00000020   30F6FFFF           DC32        0xfffff630
     62          
     63          //*----------------------------------------------------------------------------
     64          //* Function Name       : pio_c_irq_handler
     65          //* Object              : Irq Handler calAT91B_LED by the irq_pio.s
     66          //* Input Parameters    : none
     67          //* Output Parameters   : none
     68          //* Functions calAT91B_LED    : at91_pio_read, at91_pio_write
     69          //*----------------------------------------------------------------------------
     70          //__ramfunc void pio_c_irq_handler ( void )

   \                                 In segment CODE, align 4, keep-with-next
     71           void pio_c_irq_handler ( void )
     72          {
     73          int dummy;
     74              //* Read the output state
     75              if ( (AT91F_PIO_GetInput(AT91C_BASE_PIOB) & AT91B_LED2 ) == AT91B_LED2 )
   \                     pio_c_irq_handler:
   \   00000000   0848               LDR         R0,??pio_c_irq_handler_0  ;; 0xfffff63c
   \   00000002   0068               LDR         R0,[R0, #+0]
   \   00000004   8021               MOV         R1,#+0x80
   \   00000006   4903               LSL         R1,R1,#+0xD        ;; #+0x100000
   \   00000008   0842               TST         R0,R1
   \   0000000A   01D0               BEQ         ??pio_c_irq_handler_1
     76              {
     77                 AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91B_LED2);
   \   0000000C   ....               LDR         R0,??DataTable3    ;; 0xfffff634
   \   0000000E   00E0               B           ??pio_c_irq_handler_2
     78              }
     79              else
     80              {
     81                 AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91B_LED2);
   \                     ??pio_c_irq_handler_1:
   \   00000010   ....               LDR         R0,??DataTable4    ;; 0xfffff630
   \                     ??pio_c_irq_handler_2:
   \   00000012   0160               STR         R1,[R0, #+0]
     82              }
     83              //* enable the next PIO IRQ
     84              dummy =AT91C_BASE_PIOA->PIO_ISR;
   \   00000014   0448               LDR         R0,??pio_c_irq_handler_0+0x4  ;; 0xfffff44c
   \   00000016   0068               LDR         R0,[R0, #+0]
     85              //* suppress the compilation warning
     86              dummy =dummy;
     87              //* while SW3 is push wait
     88              while ( (AT91F_PIO_GetInput(AT91C_BASE_PIOA) & AT91B_SW5 ) != AT91B_SW5 );
   \                     ??pio_c_irq_handler_3:
   \   00000018   0448               LDR         R0,??pio_c_irq_handler_0+0x8  ;; 0xfffff43c
   \   0000001A   0068               LDR         R0,[R0, #+0]
   \   0000001C   8001               LSL         R0,R0,#+0x6
   \   0000001E   FBD5               BPL         ??pio_c_irq_handler_3
     89          }
   \   00000020   00B0               ADD         SP,#+0
   \   00000022   7047               BX          LR                 ;; return
   \                     ??pio_c_irq_handler_0:
   \   00000024   3CF6FFFF           DC32        0xfffff63c
   \   00000028   4CF4FFFF           DC32        0xfffff44c
   \   0000002C   3CF4FFFF           DC32        0xfffff43c
     90          
     91          //*----------------------------------------------------------------------------
     92          //* Function Name       : delay
     93          //* Object              : Wait
     94          //* Input Parameters    : none
     95          //* Output Parameters   : none
     96          //* Functions calAT91B_LED    : none
     97          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     98          void delay ( void )
     99          {
   \                     delay:
   \   00000000   81B0               ADD         SP,#-4
    100          //* Set in Volatile for Optimisation
    101              volatile unsigned int    i ;
    102          //* loop delay
    103              for ( i = 0 ;(i < WAIT_TIME/100 );i++ ) ;
   \   00000002   0020               MOV         R0,#+0
   \   00000004   0090               STR         R0,[SP, #+0]
   \   00000006   0549               LDR         R1,??delay_0       ;; 0x75524
   \   00000008   02E0               B           ??delay_1
   \                     ??delay_2:
   \   0000000A   0098               LDR         R0,[SP, #+0]
   \   0000000C   401C               ADD         R0,R0,#+0x1
   \   0000000E   0090               STR         R0,[SP, #+0]
   \                     ??delay_1:

⌨️ 快捷键说明

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