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

📄 board_memories.lst

📁 IAR5.2下 AT91SAM9260 ARM 对 MCP2515 控制源化码
💻 LST
📖 第 1 页 / 共 4 页
字号:
###############################################################################
#                                                                             #
#                                                       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_memories.c    #
#    Command line =  E:\IAR\at91lib\boards\at91sam9260-ek\board_memories.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_memories.lst                     #
#    Object file  =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\Obj\board_memories.o                        #
#                                                                             #
#                                                                             #
###############################################################################

E:\IAR\at91lib\boards\at91sam9260-ek\board_memories.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              Title: Memories implementation
     32          */
     33          
     34          //------------------------------------------------------------------------------
     35          //         Headers
     36          //------------------------------------------------------------------------------
     37          
     38          #include <board.h>
     39          #include <pio/pio.h>
     40          
     41          /*
     42              Macros:
     43                  READ - Reads a register value. Useful to add trace information to read
     44                         accesses.
     45                  WRITE - Writes data in a register. Useful to add trace information to
     46                          write accesses.
     47          */
     48          #define READ(peripheral, register)          (peripheral->register)
     49          #define WRITE(peripheral, register, value)  (peripheral->register = value)
     50          
     51          //------------------------------------------------------------------------------
     52          //         Internal functions
     53          //------------------------------------------------------------------------------
     54          
     55          //------------------------------------------------------------------------------
     56          //         Exported functions
     57          //------------------------------------------------------------------------------
     58          //------------------------------------------------------------------------------
     59          /// Changes the mapping of the chip so that the remap area mirrors the
     60          ///   internal ROM or the EBI CS0.
     61          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     62          void BOARD_RemapRom()
     63          {
     64              WRITE(AT91C_BASE_MATRIX, MATRIX_MRCR, 0);
   \                     BOARD_RemapRom:
   \   00000000   FF00E0E3           MVN      R0,#+255
   \   00000004   400DC0E3           BIC      R0,R0,#0x1000
   \   00000008   0010A0E3           MOV      R1,#+0
   \   0000000C   001080E5           STR      R1,[R0, #+0]
     65          }
   \   00000010   1EFF2FE1           BX       LR               ;; return
     66          
     67          //------------------------------------------------------------------------------
     68          /// Changes the mapping of the chip so that the remap area mirrors the
     69          ///   internal RAM.
     70          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     71          void BOARD_RemapRam()
     72          {
     73              WRITE(AT91C_BASE_MATRIX,
     74                    MATRIX_MRCR,
     75                    (AT91C_MATRIX_RCA926I | AT91C_MATRIX_RCA926D));
   \                     BOARD_RemapRam:
   \   00000000   FF00E0E3           MVN      R0,#+255
   \   00000004   400DC0E3           BIC      R0,R0,#0x1000
   \   00000008   0310A0E3           MOV      R1,#+3
   \   0000000C   001080E5           STR      R1,[R0, #+0]
     76          }
   \   00000010   1EFF2FE1           BX       LR               ;; return
     77          
     78          //------------------------------------------------------------------------------
     79          /// Initialize and configure the SDRAM
     80          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     81          void BOARD_ConfigureSdram()
     82          {
   \                     BOARD_ConfigureSdram:
   \   00000000   10402DE9           PUSH     {R4,LR}
   \   00000004   08D04DE2           SUB      SP,SP,#+8
     83          	volatile unsigned int i;
     84          	static const Pin pinsSdram = PINS_SDRAM;
     85          	volatile unsigned int *pSdram = (unsigned int *) AT91C_EBI_SDRAM;
   \   00000008   8005A0E3           MOV      R0,#+536870912
   \   0000000C   0040B0E1           MOVS     R4,R0
     86          	
     87          	// Enable corresponding PIOs
     88              PIO_Configure(&pinsSdram, 1);
   \   00000010   0110A0E3           MOV      R1,#+1
   \   00000014   A8019FE5           LDR      R0,??BOARD_ConfigureSdram_0  ;; ??pinsSdram
   \   00000018   ........           BL       PIO_Configure
     89              
     90          	// Enable EBI chip select for the SDRAM
     91          	WRITE(AT91C_BASE_MATRIX, MATRIX_EBI, AT91C_MATRIX_CS1A_SDRAMC);
   \   0000001C   E300E0E3           MVN      R0,#+227
   \   00000020   400DC0E3           BIC      R0,R0,#0x1000
   \   00000024   0210A0E3           MOV      R1,#+2
   \   00000028   001080E5           STR      R1,[R0, #+0]
     92          	
     93          	// CFG Control Register
     94          	WRITE(AT91C_BASE_SDRAMC, SDRAMC_CR, AT91C_SDRAMC_NC_9
     95                                  				| AT91C_SDRAMC_NR_13 
     96                                  				| AT91C_SDRAMC_CAS_2 
     97                                  				| AT91C_SDRAMC_NB_4_BANKS
     98                                  				| AT91C_SDRAMC_DBW_32_BITS
     99                                  				| AT91C_SDRAMC_TWR_2
    100                                  				| AT91C_SDRAMC_TRC_7
    101                                  				| AT91C_SDRAMC_TRP_2
    102                                  				| AT91C_SDRAMC_TRCD_2
    103                                  				| AT91C_SDRAMC_TRAS_5
    104                                  				| AT91C_SDRAMC_TXSR_8);
   \   0000002C   F700E0E3           MVN      R0,#+247
   \   00000030   540DC0E3           BIC      R0,R0,#0x1500
   \   00000034   8C119FE5           LDR      R1,??BOARD_ConfigureSdram_0+0x4  ;; 0x85227259
   \   00000038   001080E5           STR      R1,[R0, #+0]
    105          
    106          	for (i = 0; i < 1000; i++);
   \   0000003C   0010A0E3           MOV      R1,#+0
   \   00000040   00108DE5           STR      R1,[SP, #+0]
   \                     ??BOARD_ConfigureSdram_1:
   \   00000044   00009DE5           LDR      R0,[SP, #+0]
   \   00000048   FA0F50E3           CMP      R0,#+1000
   \   0000004C   0300002A           BCS      ??BOARD_ConfigureSdram_2
   \   00000050   00009DE5           LDR      R0,[SP, #+0]
   \   00000054   010090E2           ADDS     R0,R0,#+1
   \   00000058   00008DE5           STR      R0,[SP, #+0]
   \   0000005C   F8FFFFEA           B        ??BOARD_ConfigureSdram_1
    107          
    108          	WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_NOP_CMD);	// Perform NOP
   \                     ??BOARD_ConfigureSdram_2:
   \   00000060   FF00E0E3           MVN      R0,#+255
   \   00000064   540DC0E3           BIC      R0,R0,#0x1500
   \   00000068   0110A0E3           MOV      R1,#+1
   \   0000006C   001080E5           STR      R1,[R0, #+0]
    109          	pSdram[0] = 0x00000000;
   \   00000070   0000A0E3           MOV      R0,#+0
   \   00000074   000084E5           STR      R0,[R4, #+0]
    110          
    111          	WRITE(AT91C_BASE_SDRAMC, SDRAMC_MR, AT91C_SDRAMC_MODE_PRCGALL_CMD);	// Set PRCHG AL
   \   00000078   FF00E0E3           MVN      R0,#+255
   \   0000007C   540DC0E3           BIC      R0,R0,#0x1500
   \   00000080   0210A0E3           MOV      R1,#+2
   \   00000084   001080E5           STR      R1,[R0, #+0]
    112          	pSdram[0] = 0x00000000;						// Perform PRCHG

⌨️ 快捷键说明

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