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

📄 board_lowlevel.lst

📁 IAR5.2下 AT91SAM9260 ARM 对 MCP2515 控制源化码
💻 LST
📖 第 1 页 / 共 2 页
字号:
###############################################################################
#                                                                             #
#                                                       08/Mar/2009  17:38:35 #
# IAR ANSI C/C++ Compiler V5.20.2.21007/W32 EVALUATION for ARM                #
# Copyright 1999-2008 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  arm                                                      #
#    Endian       =  little                                                   #
#    Source file  =  E:\IAR\at91lib\boards\at91sam9260-ek\board_lowlevel.c    #
#    Command line =  E:\IAR\at91lib\boards\at91sam9260-ek\board_lowlevel.c    #
#                    -D at91sam9260 -D sdram -lC                              #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\List\ --remarks --diag_suppress             #
#                    Pe826,Pe1375 -o E:\IAR\at91sam9260-ek\basic-twi-eeprom-p #
#                    roject\ewp\at91sam9260_sdram\Obj\ --no_cse --no_unroll   #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian=little                  #
#                    --cpu=ARM926EJ-S -e --fpu=None --dlib_config             #
#                    "D:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\DLib_Config_Full.h" -I                #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\ -I E:\IAR\at91sam9260-ek\basic-twi-eeprom-p #
#                    roject\ewp\..\..\..\at91lib\boards\at91sam9260-ek\ -I    #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\peripherals\ -I                              #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\components\ -I E:\IAR\at91sam9260-ek\basic-t #
#                    wi-eeprom-project\ewp\..\..\..\at91lib\usb\ -I           #
#                    "D:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" --interwork --cpu_mode arm -On      #
#    List file    =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\List\board_lowlevel.lst                     #
#    Object file  =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\Obj\board_lowlevel.o                        #
#                                                                             #
#                                                                             #
###############################################################################

E:\IAR\at91lib\boards\at91sam9260-ek\board_lowlevel.c
      1          /* ----------------------------------------------------------------------------
      2           *         ATMEL Microcontroller Software Support 
      3           * ----------------------------------------------------------------------------
      4           * Copyright (c) 2008, Atmel Corporation
      5           *
      6           * All rights reserved.
      7           *
      8           * Redistribution and use in source and binary forms, with or without
      9           * modification, are permitted provided that the following conditions are met:
     10           *
     11           * - Redistributions of source code must retain the above copyright notice,
     12           * this list of conditions and the disclaimer below.
     13           *
     14           * Atmel's name may not be used to endorse or promote products derived from
     15           * this software without specific prior written permission.
     16           *
     17           * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
     18           * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     19           * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
     20           * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
     21           * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22           * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     23           * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     24           * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     25           * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     26           * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27           * ----------------------------------------------------------------------------
     28           */
     29          
     30          //------------------------------------------------------------------------------
     31          //         Headers
     32          //------------------------------------------------------------------------------
     33          
     34          #include "board.h"
     35          #include "board_memories.h"
     36          
     37          //------------------------------------------------------------------------------
     38          //         Internal definitions
     39          //------------------------------------------------------------------------------
     40          /*
     41              Constants: Clock and PLL settings
     42          
     43                  BOARD_OSCOUNT - Startup time of main oscillator (in number of slow clock
     44                                  ticks). 
     45                  BOARD_USBDIV - USB PLL divisor value to obtain a 48MHz clock.
     46                  BOARD_CKGR_PLL - PLL frequency range.
     47                  BOARD_PLLCOUNT - PLL startup time (in number of slow clock ticks).
     48                  BOARD_MUL - PLL MUL value.
     49                  BOARD_DIV - PLL DIV value.
     50                  BOARD_PRESCALER - Master clock prescaler value.
     51          */
     52          
     53          #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20)
     54          
     55          #define BOARD_OSCOUNT           (AT91C_CKGR_OSCOUNT & (64 << 8))
     56          #define BOARD_CKGR_PLLA         (AT91C_CKGR_SRCA | AT91C_CKGR_OUTA_2)
     57          #define BOARD_PLLACOUNT         (63 << 8)
     58          #define BOARD_MULA              (AT91C_CKGR_MULA & (96 << 16))
     59          #define BOARD_DIVA              (AT91C_CKGR_DIVA & 9)
     60          #define BOARD_PRESCALER         AT91C_PMC_MDIV_2
     61          
     62          #define BOARD_USBDIV            AT91C_CKGR_USBDIV_2
     63          #define BOARD_CKGR_PLLB         AT91C_CKGR_OUTB_0
     64          #define BOARD_PLLBCOUNT         BOARD_PLLACOUNT
     65          #define BOARD_MULB              (124 << 16)
     66          #define BOARD_DIVB              12
     67          
     68          //------------------------------------------------------------------------------
     69          //         Internal functions
     70          //------------------------------------------------------------------------------
     71          /*!
     72              Default spurious interrupt handler
     73           */

   \                                 In section .text, align 4, keep-with-next
     74          void defaultSpuriousHandler()
     75          {
     76              while (1);
   \                     defaultSpuriousHandler:
   \                     ??defaultSpuriousHandler_0:
   \   00000000   FEFFFFEA           B        ??defaultSpuriousHandler_0
     77          }
     78          
     79          /*!
     80              Default handler for fast interrupt requests.
     81           */

   \                                 In section .text, align 4, keep-with-next
     82          void defaultFiqHandler()
     83          {
     84              while (1);
   \                     defaultFiqHandler:
   \                     ??defaultFiqHandler_0:
   \   00000000   FEFFFFEA           B        ??defaultFiqHandler_0
     85          }
     86          
     87          /*!
     88              Default handler for standard interrupt requests.
     89           */

   \                                 In section .text, align 4, keep-with-next
     90          void defaultIrqHandler()
     91          {
     92              while (1);
   \                     defaultIrqHandler:
   \                     ??defaultIrqHandler_0:
   \   00000000   FEFFFFEA           B        ??defaultIrqHandler_0
     93          }
     94          
     95          
     96          //------------------------------------------------------------------------------
     97          //         Exported functions
     98          //------------------------------------------------------------------------------
     99          /*!
    100              Performs the low-level initialization of the chip.
    101           */

   \                                 In section .text, align 4, keep-with-next
    102          void LowLevelInit()
    103          {
   \                     LowLevelInit:
   \   00000000   10402DE9           PUSH     {R4,LR}
    104              unsigned char i;
    105          
    106          //#if !defined(sdram)
    107              /* Initialize main oscillator
    108               ****************************/
    109              AT91C_BASE_PMC->PMC_MOR = BOARD_OSCOUNT | AT91C_CKGR_MOSCEN;
   \   00000004   DF00E0E3           MVN      R0,#+223
   \   00000008   C00FC0E3           BIC      R0,R0,#0x300
   \   0000000C   0110A0E3           MOV      R1,#+1
   \   00000010   401C81E3           ORR      R1,R1,#0x4000
   \   00000014   001080E5           STR      R1,[R0, #+0]
    110              while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));
   \                     ??LowLevelInit_0:
   \   00000018   9700E0E3           MVN      R0,#+151
   \   0000001C   C00FC0E3           BIC      R0,R0,#0x300
   \   00000020   000090E5           LDR      R0,[R0, #+0]
   \   00000024   010010E3           TST      R0,#0x1
   \   00000028   FAFFFF0A           BEQ      ??LowLevelInit_0
    111          
    112              /* Initialize PLLA at 200MHz (198.656) */
    113              AT91C_BASE_PMC->PMC_PLLAR = BOARD_CKGR_PLLA
    114                                          | BOARD_PLLACOUNT
    115                                          | BOARD_MULA
    116                                          | BOARD_DIVA;
   \   0000002C   D700E0E3           MVN      R0,#+215
   \   00000030   C00FC0E3           BIC      R0,R0,#0x300
   \   00000034   80119FE5           LDR      R1,??LowLevelInit_1  ;; 0x2060bf09
   \   00000038   001080E5           STR      R1,[R0, #+0]
    117              while (!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCKA));
   \                     ??LowLevelInit_2:
   \   0000003C   9700E0E3           MVN      R0,#+151
   \   00000040   C00FC0E3           BIC      R0,R0,#0x300
   \   00000044   000090E5           LDR      R0,[R0, #+0]
   \   00000048   020010E3           TST      R0,#0x2
   \   0000004C   FAFFFF0A           BEQ      ??LowLevelInit_2
    118          
    119              // Initialize PLLB for USB usage
    120              AT91C_BASE_PMC->PMC_PLLBR = BOARD_USBDIV
    121                                          | BOARD_CKGR_PLLB
    122                                          | BOARD_PLLBCOUNT
    123                                          | BOARD_MULB
    124                                          | BOARD_DIVB;
   \   00000050   D300E0E3           MVN      R0,#+211
   \   00000054   C00FC0E3           BIC      R0,R0,#0x300

⌨️ 快捷键说明

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