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

📄 pmc.lst

📁 IAR5.2下 AT91SAM9260 ARM 对 MCP2515 控制源化码
💻 LST
📖 第 1 页 / 共 2 页
字号:
###############################################################################
#                                                                             #
#                                                       08/Mar/2009  18:02:08 #
# 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\peripherals\pmc\pmc.c                     #
#    Command line =  E:\IAR\at91lib\peripherals\pmc\pmc.c -D at91sam9260 -D   #
#                    sdram -lC E:\IAR\at91sam9260-ek\basic-twi-eeprom-project #
#                    \ewp\at91sam9260_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\pmc.lst                                #
#    Object file  =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\Obj\pmc.o                                   #
#                                                                             #
#                                                                             #
###############################################################################

E:\IAR\at91lib\peripherals\pmc\pmc.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 "pmc.h"
     35          #include <board.h>
     36          #include <utility/assert.h>
     37          #include <utility/trace.h>
     38          
     39          //------------------------------------------------------------------------------
     40          //         Global functions
     41          //------------------------------------------------------------------------------
     42          
     43          #if defined(at91sam7l64) || defined(at91sam7l128)
     44          //------------------------------------------------------------------------------
     45          /// Sets the fast wake-up inputs that can get the device out of Wait mode.
     46          /// \param inputs  Fast wake-up inputs to enable.
     47          //------------------------------------------------------------------------------
     48          void PMC_SetFastWakeUpInputs(unsigned int inputs)
     49          {
     50              SANITY_CHECK((inputs & ~0xFF) == 0);
     51              AT91C_BASE_PMC->PMC_FSMR = inputs;
     52          }
     53          
     54          #if !defined(__ICCARM__)
     55          __attribute__ ((section (".ramfunc"))) // GCC
     56          #endif
     57          //------------------------------------------------------------------------------
     58          /// Disables the main oscillator, making the device enter Wait mode.
     59          //------------------------------------------------------------------------------
     60          void PMC_DisableMainOscillatorForWaitMode(void)
     61          {
     62              AT91C_BASE_PMC->PMC_MOR = 0x37 << 16;
     63              while ((AT91C_BASE_PMC->PMC_MOR & AT91C_PMC_MAINSELS) != AT91C_PMC_MAINSELS);
     64          }
     65          
     66          #endif
     67          
     68          #if defined(at91sam7l)
     69          //------------------------------------------------------------------------------
     70          /// Disables the main oscillator when NOT running on it.
     71          //------------------------------------------------------------------------------
     72          void PMC_DisableMainOscillator(void)
     73          {
     74              AT91C_BASE_PMC->PMC_MOR = 0x37 << 16;
     75              while ((AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MAINSELS) == AT91C_PMC_MAINSELS);
     76          }
     77          #endif
     78          
     79          //------------------------------------------------------------------------------
     80          /// Disables the processor clock, making the device enter Idle mode.
     81          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     82          void PMC_DisableProcessorClock(void)
     83          {
     84              AT91C_BASE_PMC->PMC_SCDR = AT91C_PMC_PCK;
   \                     PMC_DisableProcessorClock:
   \   00000000   FB00E0E3           MVN      R0,#+251
   \   00000004   C00FC0E3           BIC      R0,R0,#0x300
   \   00000008   0110A0E3           MOV      R1,#+1
   \   0000000C   001080E5           STR      R1,[R0, #+0]
     85              while ((AT91C_BASE_PMC->PMC_SCSR & AT91C_PMC_PCK) != AT91C_PMC_PCK);
   \                     ??PMC_DisableProcessorClock_0:
   \   00000010   F700E0E3           MVN      R0,#+247
   \   00000014   C00FC0E3           BIC      R0,R0,#0x300
   \   00000018   000090E5           LDR      R0,[R0, #+0]
   \   0000001C   010010E3           TST      R0,#0x1
   \   00000020   FAFFFF0A           BEQ      ??PMC_DisableProcessorClock_0
     86          }
   \   00000024   1EFF2FE1           BX       LR               ;; return
     87          
     88          
     89          //------------------------------------------------------------------------------
     90          /// Enables the clock of a peripheral. The peripheral ID (AT91C_ID_xxx) is used
     91          /// to identify which peripheral is targetted.
     92          /// Note that the ID must NOT be shifted (i.e. 1 << AT91C_ID_xxx).
     93          /// \param id  Peripheral ID (AT91C_ID_xxx).
     94          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     95          void PMC_EnablePeripheral(unsigned int id)
     96          {
   \                     PMC_EnablePeripheral:
   \   00000000   10402DE9           PUSH     {R4,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
     97              SANITY_CHECK(id < 32);
   \   00000008   200054E3           CMP      R4,#+32
   \   0000000C   0400003A           BCC      ??PMC_EnablePeripheral_0
   \   00000010   6120A0E3           MOV      R2,#+97
   \   00000014   ........           LDR      R1,??DataTable2  ;; `?<Constant "E:\\\\IAR\\\\at91lib\\\\periph...">`
   \   00000018   ........           LDR      R0,??DataTable3  ;; `?<Constant "Sanity check failed a...">`
   \   0000001C   ........           BL       printf
   \                     ??PMC_EnablePeripheral_1:
   \   00000020   FEFFFFEA           B        ??PMC_EnablePeripheral_1
     98          
     99              if ((AT91C_BASE_PMC->PMC_PCSR & (1 << id)) == (1 << id)) 
   \                     ??PMC_EnablePeripheral_0:
   \   00000024   E700E0E3           MVN      R0,#+231
   \   00000028   C00FC0E3           BIC      R0,R0,#0x300
   \   0000002C   000090E5           LDR      R0,[R0, #+0]
   \   00000030   0110A0E3           MOV      R1,#+1
   \   00000034   110410E0           ANDS     R0,R0,R1, LSL R4
   \   00000038   0110A0E3           MOV      R1,#+1
   \   0000003C   110450E1           CMP      R0,R1, LSL R4
   \   00000040   0300001A           BNE      ??PMC_EnablePeripheral_2
    100              {
    101                  trace_LOG(trace_INFO,
    102                            "-I- PMC_EnablePeripheral: clock of peripheral"
    103                            " %u is already enabled\n\r",
    104                            id);
   \   00000044   0410B0E1           MOVS     R1,R4
   \   00000048   1C009FE5           LDR      R0,??PMC_EnablePeripheral_3  ;; `?<Constant "-I- PMC_EnablePeriphe...">`
   \   0000004C   ........           BL       printf

⌨️ 快捷键说明

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