?? main.lst
字號:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 13/Jul/2006 18:13:54 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN #
# )(RX_continue)\BasicCAN-SAM7A3\src\main.c #
# Command line = "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\src\main.c" -lC #
# "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\compil\Binary\List\" #
# -o "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CA #
# N_CAN)(RX_continue)\BasicCAN-SAM7A3\compil\Binary\Ob #
# j\" -z9 --debug --cpu_mode thumb --endian little #
# --cpu ARM7TDMI --stack_align 4 --interwork -e --fpu #
# None --dlib_config "D:\IAR Systems\Embedded #
# Workbench 4.0 Kickstart\arm\LIB\dl4tptinl8f.h" -I #
# "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\compil\srcIAR\" -I #
# "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\compil\..\src\" -I #
# "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\compil\..\..\" -I #
# "D:\IAR Systems\Embedded Workbench 4.0 #
# Kickstart\arm\INC\" #
# List file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN #
# )(RX_continue)\BasicCAN-SAM7A3\compil\Binary\List\ma #
# in.lst #
# Object file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN #
# )(RX_continue)\BasicCAN-SAM7A3\compil\Binary\Obj\mai #
# n.r79 #
# #
# #
##############################################################################
C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(RX_continue)\BasicCAN-SAM7A3\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 : FBr 02-Sep-2005
18 // ----------------------------------------------------------------------------
19
20 #include "main.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
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_PDC_Open(AT91PS_PDC)
\ AT91F_PDC_Open:
\ 00000000 0221 MOV R1,#+0x2
\ 00000002 0162 STR R1,[R0, #+0x20]
\ 00000004 0902 LSL R1,R1,#+0x8
\ 00000006 0162 STR R1,[R0, #+0x20]
\ 00000008 0021 MOV R1,#+0
\ 0000000A 8161 STR R1,[R0, #+0x18]
\ 0000000C C161 STR R1,[R0, #+0x1C]
\ 0000000E 0161 STR R1,[R0, #+0x10]
\ 00000010 4161 STR R1,[R0, #+0x14]
\ 00000012 8160 STR R1,[R0, #+0x8]
\ 00000014 C160 STR R1,[R0, #+0xC]
\ 00000016 0160 STR R1,[R0, #+0]
\ 00000018 4160 STR R1,[R0, #+0x4]
\ 0000001A 0121 MOV R1,#+0x1
\ 0000001C 0162 STR R1,[R0, #+0x20]
\ 0000001E 0902 LSL R1,R1,#+0x8
\ 00000020 0162 STR R1,[R0, #+0x20]
\ 00000022 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN1_CfgPIO(void)
\ AT91F_CAN1_CfgPIO:
\ 00000000 C020 MOV R0,#+0xC0
\ 00000002 8005 LSL R0,R0,#+0x16 ;; #+0x30000000
\ 00000004 0749 LDR R1,??AT91F_CAN1_CfgPIO_0 ;; 0xfffff470
\ 00000006 0860 STR R0,[R1, #+0]
\ 00000008 0021 MOV R1,#+0
\ 0000000A 074A LDR R2,??AT91F_CAN1_CfgPIO_0+0x4 ;; 0xfffff474
\ 0000000C 1160 STR R1,[R2, #+0]
\ 0000000E 074A LDR R2,??AT91F_CAN1_CfgPIO_0+0x8 ;; 0xfffff404
\ 00000010 1060 STR R0,[R2, #+0]
\ 00000012 0748 LDR R0,??AT91F_CAN1_CfgPIO_0+0xC ;; 0xfffff670
\ 00000014 0160 STR R1,[R0, #+0]
\ 00000016 8020 MOV R0,#+0x80
\ 00000018 0649 LDR R1,??AT91F_CAN1_CfgPIO_0+0x10 ;; 0xfffff674
\ 0000001A 0860 STR R0,[R1, #+0]
\ 0000001C 0649 LDR R1,??AT91F_CAN1_CfgPIO_0+0x14 ;; 0xfffff604
\ 0000001E 0860 STR R0,[R1, #+0]
\ 00000020 7047 BX LR ;; return
\ 00000022 C046 NOP
\ ??AT91F_CAN1_CfgPIO_0:
\ 00000024 70F4FFFF DC32 0xfffff470
\ 00000028 74F4FFFF DC32 0xfffff474
\ 0000002C 04F4FFFF DC32 0xfffff404
\ 00000030 70F6FFFF DC32 0xfffff670
\ 00000034 74F6FFFF DC32 0xfffff674
\ 00000038 04F6FFFF DC32 0xfffff604
21 /* Global variables */
\ In segment DATA_Z, align 1, align-sorted
22 volatile char testCAN0 = AT91C_TEST_NOK;
\ testCAN0:
\ 00000000 DS8 1
\ In segment DATA_Z, align 1, align-sorted
23 volatile char testCAN1 = AT91C_TEST_NOK;
\ testCAN1:
\ 00000000 DS8 1
24 extern void CanSendData(unsigned int LData,unsigned HData) ;
25
26 //*----------------------------------------------------------------------------
27 //* \fn AT91F_CAN0_Handler
28 //* \brief
29 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
30 void AT91F_CAN0_Handler(void)
31 {
\ AT91F_CAN0_Handler:
\ 00000000 71B5 PUSH {R0,R4-R6,LR}
32 volatile unsigned int status;
33
34 status = AT91F_CAN_GetStatus(AT91C_BASE_CAN0) & AT91F_CAN_GetInterruptMaskStatus(AT91C_BASE_CAN0);
\ 00000002 0E48 LDR R0,??AT91F_CAN0_Handler_0 ;; 0xfff80010
\ 00000004 0068 LDR R0,[R0, #+0]
\ 00000006 0E49 LDR R1,??AT91F_CAN0_Handler_0+0x4 ;; 0xfff8000c
\ 00000008 0968 LDR R1,[R1, #+0]
\ 0000000A 0140 AND R1,R0
\ 0000000C 0091 STR R1,[SP, #+0]
35 AT91F_CAN_DisableIt(AT91C_BASE_CAN0,status);
\ 0000000E 0098 LDR R0,[SP, #+0]
\ 00000010 0C49 LDR R1,??AT91F_CAN0_Handler_0+0x8 ;; 0xfff80008
\ 00000012 0860 STR R0,[R1, #+0]
36 int RxData=AT91F_CAN_GetMessageDataLow(&AT91C_BASE_CAN0->CAN_MB0) ;
\ 00000014 0C48 LDR R0,??AT91F_CAN0_Handler_0+0xC ;; 0xfff80214
\ 00000016 0468 LDR R4,[R0, #+0]
37 TRACE_INFO("______Interrupt now is received some data____________") ;
\ 00000018 .... LDR R5,??DataTable6 ;; _Stdout
\ 0000001A .... LDR R6,??DataTable3 ;; `?<Constant "%d">`
\ 0000001C 311D ADD R1,R6,#+0x4
\ 0000001E 281C MOV R0,R5
\ 00000020 ........ _BLF fprintf,fprintf??rT
38 TRACE_INFO("%d",RxData);
\ 00000024 221C MOV R2,R4
\ 00000026 311C MOV R1,R6
\ 00000028 281C MOV R0,R5
\ 0000002A ........ _BLF fprintf,fprintf??rT
39 if(status & AT91C_CAN_WAKEUP) {
\ 0000002E 0098 LDR R0,[SP, #+0]
\ 00000030 8002 LSL R0,R0,#+0xA
\ 00000032 02D5 BPL ??AT91F_CAN0_Handler_1
40 testCAN0 = AT91C_TEST_OK;
\ 00000034 0548 LDR R0,??AT91F_CAN0_Handler_0+0x10 ;; testCAN0
\ 00000036 0121 MOV R1,#+0x1
\ 00000038 0170 STRB R1,[R0, #+0]
41 TRACE_DEBUG_H("=> CAN0 WAKEUP ");
42 }
43
44 }
\ ??AT91F_CAN0_Handler_1:
\ 0000003A .... B ?Subroutine3
\ ??AT91F_CAN0_Handler_0:
\ 0000003C 1000F8FF DC32 0xfff80010
\ 00000040 0C00F8FF DC32 0xfff8000c
\ 00000044 0800F8FF DC32 0xfff80008
\ 00000048 1402F8FF DC32 0xfff80214
\ 0000004C ........ DC32 testCAN0
\ In segment CODE, align 4, keep-with-next
\ ?Subroutine3:
\ 00000000 78BC POP {R3-R6}
\ 00000002 01BC POP {R0}
\ 00000004 0047 BX R0 ;; return
\ 00000006 C046 NOP
\ ??Subroutine3_0:
\ 00000008 1040F8FF DC32 0xfff84010
\ 0000000C 0C40F8FF DC32 0xfff8400c
\ 00000010 0840F8FF DC32 0xfff84008
\ 00000014 1442F8FF DC32 0xfff84214
\ 00000018 1842F8FF DC32 0xfff84218
\ 0000001C 1C42F8FF DC32 0xfff8421c
\ 00000020 ........ DC32 testCAN1
45
46 //*----------------------------------------------------------------------------
47 //* \fn AT91F_CAN1_Handler
48 //* \brief
49 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -