📄 aic.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 + -