📄 aic.lst
字号:
###############################################################################
# #
# 18/Jul/2008 11:37:56 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = arm #
# Endian = little #
# Source file = D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91lib\peripherals\aic\aic.c #
# Command line = D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91lib\peripherals\aic\aic.c #
# -D at91sam7se512 -lC D:\rock\atarm\at91sam7se\software\u #
# sb-device-core-project-1.3-iar5-at91sam7se-ek\at91sam7se #
# -ek\usb-device-core-project\ewp\at91sam7se512_sdram\List #
# \ --remarks -o D:\rock\atarm\at91sam7se\software\usb-dev #
# ice-core-project-1.3-iar5-at91sam7se-ek\at91sam7se-ek\us #
# b-device-core-project\ewp\at91sam7se512_sdram\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 "D:\Program Files\IAR Systems\Embedded #
# Workbench 5.0 Evaluation\ARM\INC\DLib_Config_Full.h" -I #
# D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\..\..\..\at91lib\ -I #
# D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\..\..\..\at91lib\boards\at91sam7se-ek\ -I #
# D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\..\..\..\at91lib\peripherals\ -I #
# D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\..\..\..\at91lib\components\ -I #
# D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\..\..\..\at91lib\usb\ -I "D:\Program #
# Files\IAR Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\" --interwork --cpu_mode arm -On #
# List file = D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\at91sam7se512_sdram\List\aic.lst #
# Object file = D:\rock\atarm\at91sam7se\software\usb-device-core-projec #
# t-1.3-iar5-at91sam7se-ek\at91sam7se-ek\usb-device-core-p #
# roject\ewp\at91sam7se512_sdram\Obj\aic.o #
# #
# #
###############################################################################
D:\rock\atarm\at91sam7se\software\usb-device-core-project-1.3-iar5-at91sam7se-ek\at91lib\peripherals\aic\aic.c
1 /* ----------------------------------------------------------------------------
2 * ATMEL Microcontroller Software Support - ROUSSET -
3 * ----------------------------------------------------------------------------
4 * Copyright (c) 2006, 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 disclaiimer below.
13 *
14 * - Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the disclaimer below in the documentation and/or
16 * other materials provided with the distribution.
17 *
18 * Atmel's name may not be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
24 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
27 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * ----------------------------------------------------------------------------
32 */
33
34 //------------------------------------------------------------------------------
35 // Headers
36 //------------------------------------------------------------------------------
37
38 #include "aic.h"
39 #include <board.h>
40
41 //------------------------------------------------------------------------------
42 // Exported functions
43 //------------------------------------------------------------------------------
44
45 //------------------------------------------------------------------------------
46 /// Configures the interrupt associated with the given source, using the
47 /// specified mode and interrupt handler.
48 /// \param source Interrupt source to configure.
49 /// \param mode Triggering mode of the interrupt.
50 /// \param handler Interrupt handler function.
51 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
52 void AIC_ConfigureIT(unsigned int source,
53 unsigned int mode,
54 void (*handler)( void ))
55 {
56 // Disable the interrupt first
57 AT91C_BASE_AIC->AIC_IDCR = 1 << source;
\ AIC_ConfigureIT:
\ 00000000 0130A0E3 MOV R3,#+1
\ 00000004 1330B0E1 LSLS R3,R3,R0
\ 00000008 DBC0E0E3 MVN R12,#+219
\ 0000000C E0CECCE3 BIC R12,R12,#0xE00
\ 00000010 00308CE5 STR R3,[R12, #+0]
58
59 // Configure mode and handler
60 AT91C_BASE_AIC->AIC_SMR[source] = mode;
\ 00000014 0430A0E3 MOV R3,#+4
\ 00000018 93001CE0 MULS R12,R3,R0
\ 0000001C 403D5CE2 SUBS R3,R12,#+4096
\ 00000020 001083E5 STR R1,[R3, #+0]
61 AT91C_BASE_AIC->AIC_SVR[source] = (unsigned int) handler;
\ 00000024 0430A0E3 MOV R3,#+4
\ 00000028 93001CE0 MULS R12,R3,R0
\ 0000002C 802F0CE5 STR R2,[R12, #-3968]
62
63 // Clear interrupt
64 AT91C_BASE_AIC->AIC_ICCR = 1 << source;
\ 00000030 0130A0E3 MOV R3,#+1
\ 00000034 1330B0E1 LSLS R3,R3,R0
\ 00000038 D7C0E0E3 MVN R12,#+215
\ 0000003C E0CECCE3 BIC R12,R12,#0xE00
\ 00000040 00308CE5 STR R3,[R12, #+0]
65 }
\ 00000044 1EFF2FE1 BX LR ;; return
66
67 //------------------------------------------------------------------------------
68 /// Enables interrupts coming from the given (unique) source.
69 /// \param source Interrupt source to enable.
70 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
71 void AIC_EnableIT(unsigned int source)
72 {
73 AT91C_BASE_AIC->AIC_IECR = 1 << source;
\ AIC_EnableIT:
\ 00000000 0110A0E3 MOV R1,#+1
\ 00000004 1110B0E1 LSLS R1,R1,R0
\ 00000008 DF20E0E3 MVN R2,#+223
\ 0000000C E02EC2E3 BIC R2,R2,#0xE00
\ 00000010 001082E5 STR R1,[R2, #+0]
74 }
\ 00000014 1EFF2FE1 BX LR ;; return
75
76 //------------------------------------------------------------------------------
77 /// Disables interrupts coming from the given (unique) source.
78 /// \param source Interrupt source to enable.
79 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
80 void AIC_DisableIT(unsigned int source)
81 {
82 AT91C_BASE_AIC->AIC_IDCR = 1 << source;
\ AIC_DisableIT:
\ 00000000 0110A0E3 MOV R1,#+1
\ 00000004 1110B0E1 LSLS R1,R1,R0
\ 00000008 DB20E0E3 MVN R2,#+219
\ 0000000C E02EC2E3 BIC R2,R2,#0xE00
\ 00000010 001082E5 STR R1,[R2, #+0]
83 }
\ 00000014 1EFF2FE1 BX LR ;; return
84
Maximum stack usage in bytes:
Function .cstack
-------- -------
AIC_ConfigureIT 0
AIC_DisableIT 0
AIC_EnableIT 0
Section sizes:
Function/Label Bytes
-------------- -----
AIC_ConfigureIT 72
AIC_EnableIT 24
AIC_DisableIT 24
120 bytes in section .text
120 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -