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

📄 board_cstartup_iar.lst

📁 Tried to make CAN logger on AT91sam7X-ek, but have no idea how to implement FATFs... -( I m just a
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                    Reset
   88    00000004 14F09FE5             LDR     pc, Undefined_Addr       ;
                                                    Undefined instructions
   89    00000008 14F09FE5             LDR     pc, SWI_Addr             ;
                                                    Software interrupt
                                                    (SWI/SYS)
   90    0000000C 14F09FE5             LDR     pc, Prefetch_Addr        ;
                                                    Prefetch abort
   91    00000010 14F09FE5             LDR     pc, Abort_Addr           ; Data
                                                    abort
   92    00000014 FEFFFFEA             B       .                        ;
                                                RESERVED
   93    00000018 60F09FE5             LDR     pc, =irqHandler          ;
                                                    IRQ
   94    0000001C 0CF09FE5             LDR     pc, FIQ_Addr             ;
                                                    FIQ
   95                          
   96    00000020 ........     Undefined_Addr: DCD   Undefined_Handler
   97    00000024 ........     SWI_Addr:       DCD   SWI_Handler
   98    00000028 ........     Prefetch_Addr:  DCD   Prefetch_Handler
   99    0000002C ........     Abort_Addr:     DCD   Abort_Handler
  100    00000030 ........     FIQ_Addr:       DCD   FIQ_Handler
  101                                  
  102                          /*
  103                             Handles incoming interrupt requests by
                                branching to the corresponding
  104                             handler, as defined in the AIC. Supports
                                interrupt nesting.
  105                           */
  106                          irqHandler:
  107                                  /* Save interrupt context on the stack
                                to allow nesting */
  108    00000034 04E04EE2             SUB     lr, lr, #4
  109    00000038 00402DE9             STMFD   sp!, {lr}
  110    0000003C 00E04FE1             MRS     lr, SPSR
  111    00000040 01402DE9             STMFD   sp!, {r0, lr}
  112                          
  113                                  /* Write in the IVR to support Protect
                                Mode */
  114    00000044 38E09FE5             LDR     lr, =AT91C_BASE_AIC
  115    00000048 00019EE5             LDR     r0, [r14, #AIC_IVR]
  116    0000004C 00E18EE5             STR     lr, [r14, #AIC_IVR]
  117                          
  118                                  /* Branch to interrupt handler in
                                Supervisor mode */
  119    00000050 1FF021E3             MSR     CPSR_c, #ARM_MODE_SYS
  120    00000054 1E502DE9             STMFD   sp!, {r1-r3, r4, r12, lr}
  121    00000058 0FE0A0E1             MOV     lr, pc
  122    0000005C 10FF2FE1             BX      r0
  123    00000060 1E50BDE8             LDMIA   sp!, {r1-r3, r4, r12, lr}
  124    00000064 92F021E3             MSR     CPSR_c, #ARM_MODE_IRQ |
                                                        I_BIT
  125                          
  126                                  /* Acknowledge interrupt */
  127    00000068 14E09FE5             LDR     lr, =AT91C_BASE_AIC
  128    0000006C 30E18EE5             STR     lr, [r14, #AIC_EOICR]
  129                          
  130                                  /* Restore interrupt context and branch
                                back to calling code */
  131    00000070 0140BDE8             LDMIA   sp!, {r0, lr}
  132    00000074 0EF06FE1             MSR     SPSR_cxsf, lr
  133    00000078 0080FDE8             LDMIA   sp!, {pc}^
  134                          
  135                          
  136                          /*
  137                             After a reset, execution starts here, the
                                mode is ARM, supervisor
  138                             with interrupts disabled.
  139                             Initializes the chip and branches to the
                                main() function.
  140                           */
  141                                  SECTION .cstartup:CODE:NOROOT(2)
  141.1                                 TABLE
  141.2  0000007C ........             Reference on line 87 
  141.3  00000080 ........             Reference on line 93 
  141.4  00000084 00F0FFFF             Reference on line 114,127 
  141.5                                RSEG (including table)
  141                                  SECTION .cstartup:CODE:NOROOT(2)
  142                          
  143                                  PUBLIC  resetHandler
  144                                  EXTERN  LowLevelInit
  145                                  EXTERN  ?main
  146                                  REQUIRE resetVector
  147                                  ARM
  148                          
  149                          resetHandler:
  150                          
  151                                  /* Set pc to actual code location (i.e.
                                not in remap zone) */
  152    00000000 30F09FE5                 LDR     pc, =label
  153                          
  154                                  /* Perform low-level initialization of
                                the chip using LowLevelInit() */
  155                          label:
  156    00000004 30009FE5                 LDR     r0, =LowLevelInit
  157    00000008 30409FE5             LDR     r4, =SFE(CSTACK)
  158    0000000C 04D0A0E1             MOV     sp, r4
  159    00000010 0FE0A0E1             MOV     lr, pc
  160    00000014 10FF2FE1             BX      r0
  161                          
  162                                  /* Set up the interrupt stack pointer.
                                */
  163    00000018 D2F021E3             MSR     cpsr_c, #ARM_MODE_IRQ | I_BIT |
                                                        F_BIT      ; Change the
                                                        mode
  164    0000001C 20D09FE5             LDR     sp, =SFE(IRQ_STACK)
  165                          
  166                                  /* Set up the SYS stack pointer.
                                */
  167    00000020 5FF021E3             MSR     cpsr_c, #ARM_MODE_SYS | F_BIT   
                                                                  ; Change the
                                                        mode
  168    00000024 14D09FE5             LDR     sp, =SFE(CSTACK)
  169                          
  170                                  /* Branch to main() */
  171    00000028 18009FE5             LDR     r0, =?main
  172    0000002C 0FE0A0E1             MOV     lr, pc
  173    00000030 10FF2FE1             BX      r0
  174                          
  175                                  /* Loop indefinitely when program is
                                finished */
  176                          loop4:
  177    00000034 FEFFFFEA             B       loop4
  178                          
  179                                  END
  179.1                                 TABLE
  179.2  00000038 ........             Reference on line 152 
  179.3  0000003C ........             Reference on line 156 
  179.4  00000040 ........             Reference on line 157,168 
  179.5  00000044 ........             Reference on line 164 
  179.6  00000048 ........             Reference on line 171 
  179.7                                END (including table)
##############################
#           CRC:0            #
#        Errors:   0         #
#        Warnings: 0         #
#         Bytes: 212         #
##############################





⌨️ 快捷键说明

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