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

📄 cstartup.lst

📁 关于usb的一段程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
###############################################################################
#                                                                             #
#     IAR Systems ARM Assembler V4.31A/W32 28/Feb/2007  14:26:05              #
#     Copyright 1999-2006 IAR Systems. All rights reserved.                   #
#                                                                             #
#           Source file   =  D:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\srcIAR\Cstartup.s79#
#           List file     =  D:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\Binary\List\Cstartup.lst#
#           Object file   =  D:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\Binary\Obj\Cstartup.r79#
#           Command line  =  D:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\srcIAR\Cstartup.s79 #
#                            -OD:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\Binary\Obj\ #
#                            -s+ -M<> -w+ -r                                  #
#                            -LD:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\Binary\List\ #
#                            -t8 --cpu ARM7TDMI --fpu None                    #
#                            -IC:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\arm\INC\ #
#                            -ID:\work\7s64\at91_sam7s64_iar\AT91SAM7S64-USART_USB_SAM7S-IAR4_31A-1_00\AT91SAM7S-USART_USB_SAM7S\Compil\..\..\ #
#                                                                             #
###############################################################################

    1    00000000              ;-----------------------------------------------
                               -------------------------------
    2    00000000              ;-         ATMEL Microcontroller Software
                                Support  -  ROUSSET  -
    3    00000000              ;-----------------------------------------------
                               -------------------------------
    4    00000000              ;- DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY
                                ATMEL "AS IS" AND ANY EXPRESS OR
    5    00000000              ;- IMPLIED WARRANTIES, INCLUDING, BUT NOT
                                LIMITED TO, THE IMPLIED WARRANTIES OF
    6    00000000              ;- MERCHANTABILITY, FITNESS FOR A PARTICULAR
                                PURPOSE AND NON-INFRINGEMENT ARE
    7    00000000              ;- DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE
                                FOR ANY DIRECT, INDIRECT,
    8    00000000              ;- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENT
                               IAL DAMAGES (INCLUDING, BUT NOT
    9    00000000              ;- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                                OR SERVICES; LOSS OF USE, DATA,
   10    00000000              ;- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
                                CAUSED AND ON ANY THEORY OF
   11    00000000              ;- LIABILITY, WHETHER IN CONTRACT, STRICT
                                LIABILITY, OR TORT (INCLUDING
   12    00000000              ;- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                                OUT OF THE USE OF THIS SOFTWARE,
   13    00000000              ;- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
                                DAMAGE.
   14    00000000              ;-----------------------------------------------
                               -------------------------------
   15    00000000              ;- File source          : Cstartup.s79
   16    00000000              ;- Object               : Generic CStartup to
                                AT91SAM7S64
   17    00000000              ;- 1.0 09/May/06 JPP    : Creation
   18    00000000              ;-----------------------------------------------
                               -------------------------------
   19    00000000              
   20    00000000              ;-----------------------------------------------
                               -------------------------------
   21    00000000              ; Include your AT91 Library files
   22    00000000              ;-----------------------------------------------
                               -------------------------------
   23    00000000              #include "include/AT91SAM7S64_inc.h"
   24    00000000              ;-----------------------------------------------
                               -------------------------------
   25    00000000              
   26    00000000              ;-----------------------------------------------
                               -------------------------------
   27    00000000              ; ?RESET
   28    00000000              ; Reset Vector.
   29    00000000              ; Normally, segment INTVEC is linked at address
                                0.
   30    00000000              ; For debugging purposes, INTVEC may be placed
                                at other addresses.
   31    00000000              ; A debugger that honors the entry point will
                                start the
   32    00000000              ; program in a normal way even if INTVEC is not
                                at address 0.
   33    00000000              ;-----------------------------------------------
                               -------------------------------
   34    00000000              
   35    00000000                  PROGRAM     ?RESET              ;- Begins a
                                program module
   36    00000000                  RSEG        INTRAMEND_REMAP     ;- Begins a
                                relocatable segment
   37    00000000                  RSEG        ICODE:CODE (2)      ;- Begins a
                                relocatable segment 
   38    00000000                                                  ; correspond
                               ing address is 32-bit aligned
   39    00000000                  CODE32                          ;- Always
                                ARM mode after reset      
   40    00000000                  ORG 0                           ;- Sets the
                                                                    location
                                                                    counter
   41    00000000                                                  ; correspond
                               s to the RESET vector address
   42    00000000              
   43    00000000              ;-----------------------------------------------
                               -------------------------------
   44    00000000              ;- Exception vectors
   45    00000000              ;-----------------------------------------------
                               -------------------------------
   46    00000000              ;- These vectors can be read at address 0 or at
                                RAM address
   47    00000000              ;- They ABSOLUTELY requires to be in relative
                                addresssing mode in order to
   48    00000000              ;- guarantee a valid jump. For the moment, all
                                are just looping.
   49    00000000              ;- If an exception occurs before remap, this
                                would result in an infinite loop.
   50    00000000              ;- To ensure if a exeption occurs before start
                                application to infinite loop.
   51    00000000              ;-----------------------------------------------
                               -------------------------------
   52    00000000              reset
   53    00000000 210000EA                     B           InitReset          
  ; 0x00 Reset handler
   54    00000004              undefvec:
   55    00000004 FEFFFFEA                     B           undefvec           
  ; 0x04 Undefined Instruction
   56    00000008              swivec:
   57    00000008 FEFFFFEA                     B           swivec             
  ; 0x08 Software Interrupt
   58    0000000C              pabtvec:
   59    0000000C FEFFFFEA                     B           pabtvec            
  ; 0x0C Prefetch Abort
   60    00000010              dabtvec:
   61    00000010 FEFFFFEA                     B           dabtvec            
  ; 0x10 Data Abort
   62    00000014              rsvdvec:
   63    00000014 FEFFFFEA                     B           rsvdvec            
  ; 0x14 reserved
   64    00000018              irqvec:
   65    00000018 090000EA                     B           IRQ_Handler_Entry  
  ; 0x18 IRQ
   66    0000001C                                                     
                                
   67    0000001C              fiqvec:                                        
                                ; 0x1c FIQ
   68    0000001C              ;-----------------------------------------------
                               -------------------------------
   69    0000001C              ;- Function             : FIQ_Handler_Entry
   70    0000001C              ;- Treatments           : FIQ Controller
                                Interrupt Handler.
   71    0000001C              ;-                        R8 is initialize in
                                Cstartup
   72    0000001C              ;- Called Functions     : None only by
                                FIQ
   73    0000001C              ;-----------------------------------------------
                               -------------------------------
   74    0000001C              FIQ_Handler_Entry:
   75    0000001C              
   76    0000001C              ;- Switch in SVC/User Mode to allow User Stack
                                access for C code
   77    0000001C              ; because the FIQ is not yet acknowledged
   78    0000001C              
   79    0000001C              ;- Save and r0 in FIQ_Register
   80    0000001C 0090A0E1             mov         r9,r0
   81    00000020 040198E5             ldr         r0 , [r8, #AIC_FVR]
   82    00000024 D3F021E3             msr         CPSR_c,#I_BIT | F_BIT |
                                                           ARM_MODE_SVC
   83    00000028              ;- Save scratch/used registers and LR in User
                                Stack
   84    00000028 0E502DE9             stmfd       sp!, { r1-r3, r12,
                                                       lr}
   85    0000002C              
   86    0000002C              ;- Branch to the routine pointed by the
                                AIC_FVR
   87    0000002C 0FE0A0E1             mov         r14, pc
   88    00000030 10FF2FE1             bx          r0
   89    00000034              
   90    00000034              ;- Restore scratch/used registers and LR from
                                User Stack
   91    00000034 0E50BDE8             ldmia       sp!, { r1-r3, r12,
                                                       lr}
   92    00000038              
   93    00000038              ;- Leave Interrupts disabled and switch back in
                                FIQ mode
   94    00000038 D1F021E3             msr         CPSR_c, #I_BIT | F_BIT |
                                                            ARM_MODE_FIQ
   95    0000003C              
   96    0000003C              ;- Restore the R0 ARM_MODE_SVC register
   97    0000003C 0900A0E1             mov         r0,r9
   98    00000040              
   99    00000040              ;- Restore the Program Counter using the LR_fiq
                                directly in the PC
  100    00000040 04F05EE2             subs        pc,lr,#4
  101    00000044              
  102    00000044              ;-----------------------------------------------
                               -------------------------------
  103    00000044              ;- Manage exception: The exception must be
                                ensure in ARM mode
  104    00000044              ;-----------------------------------------------
                               -------------------------------
  105    00000044              ;-----------------------------------------------
                               -------------------------------
  106    00000044              ;- Function             : IRQ_Handler_Entry
  107    00000044              ;- Treatments           : IRQ Controller
                                Interrupt Handler.
  108    00000044              ;- Called Functions     : None By IRQ interrupt
                                
  109    00000044              ;-----------------------------------------------
                               -------------------------------
  110    00000044              IRQ_Handler_Entry:
  111    00000044              
  112    00000044              ;-------------------------
  113    00000044              ;- Manage Exception Entry
  114    00000044              ;-------------------------
  115    00000044              ;- Adjust and save LR_irq in IRQ stack
  116    00000044 04E04EE2             sub         lr, lr, #4
  117    00000048 00402DE9             stmfd       sp!, {lr}
  118    0000004C              
  119    0000004C              ;- Save r0 and SPSR (need to be saved for nested
                                interrupt)
  120    0000004C 00E04FE1             mrs         r14, SPSR
  121    00000050 01402DE9             stmfd       sp!, {r0,r14}
  122    00000054              
  123    00000054              ;- Write in the IVR to support Protect
                                Mode
  124    00000054              ;- No effect in Normal Mode
  125    00000054              ;- De-assert the NIRQ and clear the source in
                                Protect Mode
  126    00000054 88E09FE5             ldr         r14, =AT91C_BASE_AIC
  127    00000058 00019EE5             ldr         r0 , [r14, #AIC_IVR]
  128    0000005C 00E18EE5             str         r14, [r14, #AIC_IVR]
  129    00000060              
  130    00000060              ;- Enable Interrupt and Switch in Supervisor
                                Mode
  131    00000060 13F021E3             msr         CPSR_c, #ARM_MODE_SVC
  132    00000064              

⌨️ 快捷键说明

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