📄 can.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 EVALUATION 24/Nov/2006 16:52:05 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X256 #
# CAN通讯实验\BasicCAN-SAM7X\src\can.c #
# Command line = "G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X25 #
# 6 CAN通讯实验\BasicCAN-SAM7X\src\can.c" -lC #
# "G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X25 #
# 6 CAN通讯实验\BasicCAN-SAM7X\compil\RAM_Debug\List\" #
# --remarks -o "G:\光盘刻录\光盘刻录\IAR实验代码\实验 #
# 五\AT91SAM7X256 CAN通讯实验\BasicCAN-SAM7X\compil\RA #
# M_Debug\Obj\" -z2 --no_cse --no_unroll --no_inline #
# --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --cpu_mode thumb --endian #
# little --cpu ARM7TDMI --stack_align 4 --interwork #
# -e --fpu None --dlib_config "F:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\arm\LIB\dl4tptinl8f.h" -I #
# "G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X25 #
# 6 CAN通讯实验\BasicCAN-SAM7X\compil\srcIAR\" -I #
# "G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X25 #
# 6 CAN通讯实验\BasicCAN-SAM7X\compil\..\src\" -I #
# "G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X25 #
# 6 CAN通讯实验\BasicCAN-SAM7X\compil\..\..\" -I #
# "F:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Evaluation\arm\INC\" #
# List file = G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X256 #
# CAN通讯实验\BasicCAN-SAM7X\compil\RAM_Debug\List\ca #
# n.lst #
# Object file = G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X256 #
# CAN通讯实验\BasicCAN-SAM7X\compil\RAM_Debug\Obj\can #
# .r79 #
# #
# #
##############################################################################
G:\光盘刻录\光盘刻录\IAR实验代码\实验五\AT91SAM7X256 CAN通讯实验\BasicCAN-SAM7X\src\can.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 : can.c
16 // - ----------------------------------------------------------------------------
17
18 #include "main.h"
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_InitMailboxRegisters(AT91PS_CAN_MB, int, int, int, int, int, int)
\ AT91F_InitMailboxRegisters:
\ 00000000 F0B4 PUSH {R4-R7}
\ 00000002 049C LDR R4,[SP, #+0x10]
\ 00000004 059D LDR R5,[SP, #+0x14]
\ 00000006 069E LDR R6,[SP, #+0x18]
\ 00000008 0027 MOV R7,#+0
\ 0000000A C761 STR R7,[R0, #+0x1C]
\ 0000000C 0160 STR R1,[R0, #+0]
\ 0000000E 4260 STR R2,[R0, #+0x4]
\ 00000010 8360 STR R3,[R0, #+0x8]
\ 00000012 4461 STR R4,[R0, #+0x14]
\ 00000014 8561 STR R5,[R0, #+0x18]
\ 00000016 C661 STR R6,[R0, #+0x1C]
\ 00000018 F0BC POP {R4-R7}
\ 0000001A 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN_EnableIt(AT91PS_CAN, unsigned int)
\ AT91F_CAN_EnableIt:
\ 00000000 4160 STR R1,[R0, #+0x4]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN_CfgModeReg(AT91PS_CAN, unsigned int)
\ AT91F_CAN_CfgModeReg:
\ 00000000 0160 STR R1,[R0, #+0]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN_InitTransferRequest(AT91PS_CAN, unsigned int)
\ AT91F_CAN_InitTransferRequest:
\ 00000000 4162 STR R1,[R0, #+0x24]
\ 00000002 7047 BX LR ;; return
19
20 //*----------------------------------------------------------------------------
21 //* \fn AT91F_InitMailbox
22 //* \brief Configure the Mailboxes
23 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
24 void AT91F_InitMailbox(void)
25 {
\ AT91F_InitMailbox:
\ 00000000 00B5 PUSH {LR}
26 // Init CAN Mailbox 0
27 AT91F_InitMailboxRegisters(AT91C_BASE_CAN_MB0,
28 AT91C_CAN_MOT_TX | AT91C_CAN_PRIOR, // Mailbox Mode Reg
29 0x00000000, // Mailbox Acceptance Mask Reg
30 AT91C_CAN_MIDvA & (0x07<<18), // Mailbox ID Reg
31 0x11223344, // Mailbox Data Low Reg
32 0x01234567, // Mailbox Data High Reg
33 (AT91C_CAN_MDLC & (0x8<<16)) ); // Mailbox Control Reg
\ 00000002 8022 MOV R2,#+0x80
\ 00000004 1203 LSL R2,R2,#+0xC ;; #+0x80000
\ 00000006 0C49 LDR R1,??AT91F_InitMailbox_0 ;; 0x1234567
\ 00000008 0C48 LDR R0,??AT91F_InitMailbox_0+0x4 ;; 0x11223344
\ 0000000A 07B4 PUSH {R0-R2}
\ 0000000C E023 MOV R3,#+0xE0
\ 0000000E 5B03 LSL R3,R3,#+0xD ;; #+0x1C0000
\ 00000010 0022 MOV R2,#+0
\ 00000012 0B49 LDR R1,??AT91F_InitMailbox_0+0x8 ;; 0x30f0000
\ 00000014 0B48 LDR R0,??AT91F_InitMailbox_0+0xC ;; 0xfffd0200
\ 00000016 ........ _BLF AT91F_InitMailboxRegisters,AT91F_InitMailboxRegisters??rT
\ 0000001A 03B0 ADD SP,#+0xC
34
35 // Init CANMailbox 1
36 AT91F_InitMailboxRegisters(AT91C_BASE_CAN_MB1,
37 AT91C_CAN_MOT_RX | AT91C_CAN_PRIOR, // Mailbox Mode Reg
38 AT91C_CAN_MIDvA | AT91C_CAN_MIDvB | AT91C_CAN_MIDE, // Mailbox Acceptance Mask Reg
39 AT91C_CAN_MIDvA & (0x07<<18), // Mailbox ID Reg
40 0x00000000, // Mailbox Data Low Reg
41 0x00000000, // Mailbox Data High Reg
42 0x00000000); // Mailbox Control Reg
\ 0000001C 0022 MOV R2,#+0
\ 0000001E 0021 MOV R1,#+0
\ 00000020 0020 MOV R0,#+0
\ 00000022 07B4 PUSH {R0-R2}
\ 00000024 E023 MOV R3,#+0xE0
\ 00000026 5B03 LSL R3,R3,#+0xD ;; #+0x1C0000
\ 00000028 074A LDR R2,??AT91F_InitMailbox_0+0x10 ;; 0x3fffffff
\ 0000002A 0849 LDR R1,??AT91F_InitMailbox_0+0x14 ;; 0x10f0000
\ 0000002C 0848 LDR R0,??AT91F_InitMailbox_0+0x18 ;; 0xfffd0220
\ 0000002E ........ _BLF AT91F_InitMailboxRegisters,AT91F_InitMailboxRegisters??rT
\ 00000032 03B0 ADD SP,#+0xC
43 }
\ 00000034 01BC POP {R0}
\ 00000036 0047 BX R0 ;; return
\ ??AT91F_InitMailbox_0:
\ 00000038 67452301 DC32 0x1234567
\ 0000003C 44332211 DC32 0x11223344
\ 00000040 00000F03 DC32 0x30f0000
\ 00000044 0002FDFF DC32 0xfffd0200
\ 00000048 FFFFFF3F DC32 0x3fffffff
\ 0000004C 00000F01 DC32 0x10f0000
\ 00000050 2002FDFF DC32 0xfffd0220
44
45 //*----------------------------------------------------------------------------
46 //* \fn AT91F_BasicTestSuite
47 //* \brief
48 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
49 void AT91F_BasicTestSuite(void)
50 {
\ AT91F_BasicTestSuite:
\ 00000000 10B5 PUSH {R4,LR}
51 unsigned int tick=0;
\ 00000002 0020 MOV R0,#+0
\ 00000004 041C MOV R4,R0
52
53 ///////////////////////////////////////////////////////////////////////////////////////////
54 TRACE_INFO("\n\r--------------------------------------------------\n\r");
\ 00000006 4548 LDR R0,??AT91F_BasicTestSuite_0 ;; _Stdout
\ 00000008 0028 CMP R0,#+0
\ 0000000A 03D0 BEQ ??AT91F_BasicTestSuite_1
\ 0000000C 4449 LDR R1,??AT91F_BasicTestSuite_0+0x4 ;; `?<Constant "\\n\\r-------------------...">`
\ 0000000E 4348 LDR R0,??AT91F_BasicTestSuite_0 ;; _Stdout
\ 00000010 ........ _BLF fprintf,fprintf??rT
55 TRACE_INFO("1. Wait for CAN Controller Bus Synchronization...\n\r");
\ ??AT91F_BasicTestSuite_1:
\ 00000014 4148 LDR R0,??AT91F_BasicTestSuite_0 ;; _Stdout
\ 00000016 0028 CMP R0,#+0
\ 00000018 03D0 BEQ ??AT91F_BasicTestSuite_2
\ 0000001A 4249 LDR R1,??AT91F_BasicTestSuite_0+0x8 ;; `?<Constant "1. Wait for CAN Contr...">`
\ 0000001C 3F48 LDR R0,??AT91F_BasicTestSuite_0 ;; _Stdout
\ 0000001E ........ _BLF fprintf,fprintf??rT
56 TRACE_INFO("--------------------------------------------------");
\ ??AT91F_BasicTestSuite_2:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -