?? main.lst
字號:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 02/Nov/2005 11:00:19 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\src\main.c #
# Command line = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\src\main.c -lC #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\FLASH_FLASH\Li #
# st\ -o E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Inter #
# rupt-IAR4_30A-1_2\AT91SAM7X-Interrupt\compil\FLASH_F #
# LASH\Obj\ -z9 --debug --cpu_mode thumb --endian #
# little --cpu ARM7TDMI --stack_align 4 --interwork #
# -e --fpu None --dlib_config "D:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl4tptinl8n.h" -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\srcIAR\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\..\src\ -I #
# E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\..\..\ -I #
# "D:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Kickstart\arm\INC\" #
# List file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\FLASH_FLASH\Li #
# st\main.lst #
# Object file = E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IA #
# R4_30A-1_2\AT91SAM7X-Interrupt\compil\FLASH_FLASH\Ob #
# j\main.r79 #
# #
# #
##############################################################################
E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IAR4_30A-1_2\AT91SAM7X-Interrupt\src\main.c
1 // ----------------------------------------------------------------------------
2 // ATMEL Microcontroller Software Support - ROUSSET -
3 // ----------------------------------------------------------------------------
4 // DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
5 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
6 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
7 // DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
8 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
10 // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
11 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
12 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
13 // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14 // ----------------------------------------------------------------------------
15 // File Name : main.c
16 // Object : main application written in C
17 // Creation : JPP 08-Sep-2005
18 // ----------------------------------------------------------------------------
19
20 // Include Standard LIB files
21 #include "project.h"
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs unsigned int AT91F_AIC_ConfigureIt(AT91PS_AIC, unsigned int, unsigned int, unsigned int, void (*)())
\ AT91F_AIC_ConfigureIt:
\ 00000000 F4B4 PUSH {R2,R4-R7}
\ 00000002 021C MOV R2,R0
\ 00000004 0C1C MOV R4,R1
\ 00000006 059E LDR R6,[SP, #+0x14]
\ 00000008 8900 LSL R1,R1,#+0x2
\ 0000000A 4718 ADD R7,R0,R1
\ 0000000C 8037 ADD R7,#+0x80
\ 0000000E 3868 LDR R0,[R7, #+0]
\ 00000010 0125 MOV R5,#+0x1
\ 00000012 A540 LSL R5,R4
\ 00000014 2C1C MOV R4,R5
\ 00000016 9225 MOV R5,#+0x92
\ 00000018 6D00 LSL R5,R5,#+0x1 ;; #+0x124
\ 0000001A 5519 ADD R5,R2,R5
\ 0000001C 2C60 STR R4,[R5, #+0]
\ 0000001E 3E60 STR R6,[R7, #+0]
\ 00000020 009E LDR R6,[SP, #+0]
\ 00000022 1E43 ORR R6,R3
\ 00000024 5650 STR R6,[R2, R1]
\ 00000026 6C60 STR R4,[R5, #+0x4]
\ 00000028 F8BC POP {R3-R7}
\ 0000002A 7047 BX LR ;; return
22
23 //* Waiting time between AT91B_LED1 and AT91B_LED2
24 #define WAIT_TIME AT91B_MCK
25
26 #define PIO_INTERRUPT_LEVEL 6
27 #define SOFT_INTERRUPT_LEVEL 2
28 #define FIQ_INTERRUPT_LEVEL 7 // Always high
29
30 //* Global variable
\ In segment DATA_Z, align 4, align-sorted
31 int count_timer0_interrupt;
\ count_timer0_interrupt:
\ 00000000 DS8 4
\ In segment DATA_Z, align 4, align-sorted
32 int count_timer1_interrupt;
\ count_timer1_interrupt:
\ 00000000 DS8 4
33
34 // Use the Library Handler defined in file periph/pio/pio_irq/irq_pio.s
35
36 extern void FIQ_init_handler(void);
37
38 // External Function Prototype
39 extern void timer_init (void );
40 extern void Usart_init (void);
41 extern void Usart_init1 (void);
42
43 // function in dbgu.c
44 extern void Init_DBGU(void);
45
46 //*----------------------------------------------------------------------------
47 //* Function Name : aic_software_interrupt
48 //* Object : Software interrupt function
49 //* Input Parameters : none
50 //* Output Parameters : none
51 //* Functions calAT91B_LED : at91_pio_write
52 //*----------------------------------------------------------------------------
\ In segment CODE_I, align 4, keep-with-next
53 __ramfunc void aic_software_interrupt(void)
54 {
\ aic_software_interrupt:
\ 00000000 00B5 PUSH {LR}
55 //* Read the output state
56 if ( (AT91F_PIO_GetInput(AT91C_BASE_PIOB) & AT91B_LED2 ) == AT91B_LED2 )
\ 00000002 0748 LDR R0,??aic_software_interrupt_0 ;; 0xfffff63c
\ 00000004 0068 LDR R0,[R0, #+0]
\ 00000006 8021 MOV R1,#+0x80
\ 00000008 4903 LSL R1,R1,#+0xD ;; #+0x100000
\ 0000000A 0842 TST R0,R1
\ 0000000C 01D0 BEQ ??aic_software_interrupt_1
57 {
58 AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91B_LED2 );
\ 0000000E 0548 LDR R0,??aic_software_interrupt_0+0x4 ;; 0xfffff634
\ 00000010 00E0 B ??aic_software_interrupt_2
59 }
60 else
61 {
62 AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91B_LED2 );
\ ??aic_software_interrupt_1:
\ 00000012 0548 LDR R0,??aic_software_interrupt_0+0x8 ;; 0xfffff630
\ ??aic_software_interrupt_2:
\ 00000014 0160 STR R1,[R0, #+0]
63 }
64 AT91F_DBGU_Printk("-I- soft interrupt\n\r");
^
Warning[Ta022]: Possible rom access (<Constant "-I- soft interrupt\n\r">) from
within a __ramfunc function
AT91F_DBGU_Printk("-I- soft interrupt\n\r");
^
"E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-Interrupt-IAR4_30A-1_2\AT91SAM7X-Interrupt\src\main.c",64 Warning[Ta023]:
Call to a non __ramfunc function (AT91F_DBGU_Printk) from within a
__ramfunc function
\ 00000016 0548 LDR R0,??aic_software_interrupt_0+0xC ;; `?<Constant "-I- soft interrupt\\n\\r">`
\ 00000018 ........ _BLF AT91F_DBGU_Printk,AT91F_DBGU_Printk??rT?CODE_I
65 }
\ 0000001C 01BC POP {R0}
\ 0000001E 0047 BX R0 ;; return
\ ??aic_software_interrupt_0:
\ 00000020 3CF6FFFF DC32 0xfffff63c
\ 00000024 34F6FFFF DC32 0xfffff634
\ 00000028 30F6FFFF DC32 0xfffff630
\ 0000002C ........ DC32 `?<Constant "-I- soft interrupt\\n\\r">`
66
67 //*----------------------------------------------------------------------------
68 //* Function Name : pio_c_irq_handler
69 //* Object : Irq Handler calAT91B_LED by the irq_pio.s
70 //* Input Parameters : none
71 //* Output Parameters : none
72 //* Functions calAT91B_LED : at91_pio_read, at91_pio_write
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -