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

📄 aic.lst

📁 Tried to make CAN logger on AT91sam7X-ek, but have no idea how to implement FATFs... -( I m just a
💻 LST
字号:
###############################################################################
#                                                                             #
#                                                       25/May/2009  02:53:22 #
# IAR ANSI C/C++ Compiler V5.20.0.20892/W32 EVALUATION for ARM                #
# Copyright 1999-2008 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  arm                                                      #
#    Endian       =  little                                                   #
#    Source file  =  F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91lib\peripherals\aic\aic.c               #
#    Command line =  F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91lib\peripherals\aic\aic.c -D            #
#                    at91sam7x256 -D flash -D TRACE_LEVEL=4 -lC               #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\at #
#                    91sam7x256_flash\List\ --remarks --diag_suppress         #
#                    Pe826,Pe1375 -o F:\Diplomovka\IARprojects\Diplomovka\25. #
#                    4.2009\getting-started-project-at91sam7x-ek-iar\getting- #
#                    started-project-at91sam7x-ek\at91sam7x-ek\getting-starte #
#                    d-project\ewp\at91sam7x256_flash\Obj\ --no_cse           #
#                    --no_unroll --no_inline --no_code_motion --no_tbaa       #
#                    --no_clustering --no_scheduling --debug --endian=little  #
#                    --cpu=ARM7TDMI -e --fpu=None --dlib_config "C:\Program   #
#                    Files (x86)\IAR Systems\Embedded Workbench 5.0           #
#                    Evaluation\ARM\INC\DLib_Config_Full.h" -I                #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\.. #
#                    \..\..\at91lib/peripherals\ -I                           #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\.. #
#                    \..\..\at91lib\ -I F:\Diplomovka\IARprojects\Diplomovka\ #
#                    25.4.2009\getting-started-project-at91sam7x-ek-iar\getti #
#                    ng-started-project-at91sam7x-ek\at91sam7x-ek\getting-sta #
#                    rted-project\ewp\..\..\..\at91lib\memories\sdmmc\ -I     #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\.. #
#                    \..\..\at91lib/components\ -I                            #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\.. #
#                    \..\..\at91lib/boards/at91sam7x-ek\ -I                   #
#                    F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\.. #
#                    \..\..\external_libs/crc\ -I "C:\Program Files           #
#                    (x86)\IAR Systems\Embedded Workbench 5.0                 #
#                    Evaluation\ARM\INC\" --interwork --cpu_mode arm -Oh      #
#    List file    =  F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\at #
#                    91sam7x256_flash\List\aic.lst                            #
#    Object file  =  F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-s #
#                    tarted-project-at91sam7x-ek-iar\getting-started-project- #
#                    at91sam7x-ek\at91sam7x-ek\getting-started-project\ewp\at #
#                    91sam7x256_flash\Obj\aic.o                               #
#                                                                             #
#                                                                             #
###############################################################################

F:\Diplomovka\IARprojects\Diplomovka\25.4.2009\getting-started-project-at91sam7x-ek-iar\getting-started-project-at91sam7x-ek\at91lib\peripherals\aic\aic.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 "aic.h"
     35          #include <board.h>
     36          
     37          //------------------------------------------------------------------------------
     38          //         Global functions
     39          //------------------------------------------------------------------------------
     40          
     41          //------------------------------------------------------------------------------
     42          /// Configures an interrupt in the AIC. The interrupt is identified by its
     43          /// source (AT91C_ID_xxx) and is configured to use the specified mode and
     44          /// interrupt handler function. Mode is the value that will be put in AIC_SMRx
     45          /// and the function address will be set in AIC_SVRx.
     46          /// The interrupt is disabled before configuration, so it is useless
     47          /// to do it before calling this function. When AIC_ConfigureIT returns, the
     48          /// interrupt will always be disabled and cleared; it must be enabled by a
     49          /// call to AIC_EnableIT().
     50          /// \param source  Interrupt source to configure.
     51          /// \param mode  Triggering mode and priority of the interrupt.
     52          /// \param handler  Interrupt handler function.
     53          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     54          void AIC_ConfigureIT(
     55              unsigned int source,
     56              unsigned int mode,
     57              void (*handler)(void))
     58          {
     59              // Disable the interrupt first
     60              AT91C_BASE_AIC->AIC_IDCR = 1 << source;
   \                     AIC_ConfigureIT:
   \   00000000   0130A0E3           MOV      R3,#+1
   \   00000004   1330A0E1           LSL      R3,R3,R0
   \   00000008   DBC0E0E3           MVN      R12,#+219
   \   0000000C   E0CECCE3           BIC      R12,R12,#0xE00
   \   00000010   00308CE5           STR      R3,[R12, #+0]
     61          
     62              // Configure mode and handler
     63              AT91C_BASE_AIC->AIC_SMR[source] = mode;
   \   00000014   0031A0E1           LSL      R3,R0,#+2
   \   00000018   403D43E2           SUB      R3,R3,#+4096
   \   0000001C   001083E5           STR      R1,[R3, #+0]
     64              AT91C_BASE_AIC->AIC_SVR[source] = (unsigned int) handler;
   \   00000020   0011A0E1           LSL      R1,R0,#+2
   \   00000024   802F01E5           STR      R2,[R1, #-3968]
     65          
     66              // Clear interrupt
     67              AT91C_BASE_AIC->AIC_ICCR = 1 << source;
   \   00000028   0110A0E3           MOV      R1,#+1
   \   0000002C   1100A0E1           LSL      R0,R1,R0
   \   00000030   04108CE2           ADD      R1,R12,#+4
   \   00000034   ........           B        ??Subroutine1_0
     68          }

   \                                 In section .text, align 4, keep-with-next
   \                     ??Subroutine1_0:
   \   00000000   000081E5           STR      R0,[R1, #+0]
   \   00000004   1EFF2FE1           BX       LR               ;; return
     69          
     70          //------------------------------------------------------------------------------
     71          /// Enables interrupts coming from the given (unique) source (AT91C_ID_xxx).
     72          /// \param source  Interrupt source to enable.
     73          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     74          void AIC_EnableIT(unsigned int source)
     75          {
     76              AT91C_BASE_AIC->AIC_IECR = 1 << source;
   \                     AIC_EnableIT:
   \   00000000   0110A0E3           MOV      R1,#+1
   \   00000004   1100A0E1           LSL      R0,R1,R0
   \   00000008   DF10E0E3           MVN      R1,#+223
   \   0000000C   ........           B        ?Subroutine0
     77          }

   \                                 In section .text, align 4, keep-with-next
   \                     ?Subroutine0:
   \   00000000   E01EC1E3           BIC      R1,R1,#0xE00
   \   00000004                      REQUIRE ??Subroutine1_0
   \   00000004                      ;; // Fall through to label ??Subroutine1_0
     78          
     79          //------------------------------------------------------------------------------
     80          /// Disables interrupts coming from the given (unique) source (AT91C_ID_xxx).
     81          /// \param source  Interrupt source to enable.
     82          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     83          void AIC_DisableIT(unsigned int source)
     84          {
     85              AT91C_BASE_AIC->AIC_IDCR = 1 << source;
   \                     AIC_DisableIT:
   \   00000000   0110A0E3           MOV      R1,#+1
   \   00000004   1100A0E1           LSL      R0,R1,R0
   \   00000008   DB10E0E3           MVN      R1,#+219
   \   0000000C                      REQUIRE ?Subroutine0
   \   0000000C                      ;; // Fall through to label ?Subroutine0
     86          }
     87          

   Maximum stack usage in bytes:

     Function        .cstack
     --------        -------
     AIC_ConfigureIT      0
     AIC_DisableIT        0
     AIC_EnableIT         0


   Section sizes:

     Function/Label  Bytes
     --------------  -----
     AIC_ConfigureIT   56
     ??Subroutine1_0    8
     AIC_EnableIT      16
     ?Subroutine0       4
     AIC_DisableIT     12

 
 96 bytes in section .text
 
 96 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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