📄 can.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\can.c #
# Command line = "C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CA #
# N)(RX_continue)\BasicCAN-SAM7A3\src\can.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\ca #
# n.lst #
# Object file = C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN #
# )(RX_continue)\BasicCAN-SAM7A3\compil\Binary\Obj\can #
# .r79 #
# #
# #
##############################################################################
C:\Documents and Settings\yc\桌面\AT91SAM7A3(CAN_CAN)(RX_continue)\BasicCAN-SAM7A3\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"
19
20 //*----------------------------------------------------------------------------
21 //* \fn AT91F_InitMailbox
22 //* \brief Configure the MBx
23 //*----------------------------------------------------------------------------
\ In segment CODE, align 4, keep-with-next
24 void AT91F_InitMailbox(void)
25 {
\ AT91F_InitMailbox:
\ 00000000 70B4 PUSH {R4-R6}
26 // Init CAN0 Mailbox 0
27 AT91F_InitMailboxRegisters( AT91C_BASE_CAN0_MB0,
28 AT91C_CAN_MOT_TX | AT91C_CAN_PRIOR,
29 0x00000000,
30 AT91C_CAN_MIDvA & (0x07<<18), // ID 7
31 0x23456789,
32 0x98765432,
33 (AT91C_CAN_MDLC & (0x8<<16)) );
\ 00000002 3B4A LDR R2,??AT91F_InitMailbox_0 ;; 0xfff8021c
\ 00000004 0020 MOV R0,#+0
\ 00000006 1060 STR R0,[R2, #+0]
\ 00000008 3A4B LDR R3,??AT91F_InitMailbox_0+0x4 ;; 0x30f0000
\ 0000000A 3B49 LDR R1,??AT91F_InitMailbox_0+0x8 ;; 0xfff80200
\ 0000000C 0B60 STR R3,[R1, #+0]
\ 0000000E 3B49 LDR R1,??AT91F_InitMailbox_0+0xC ;; 0xfff80204
\ 00000010 0860 STR R0,[R1, #+0]
\ 00000012 E024 MOV R4,#+0xE0
\ 00000014 6403 LSL R4,R4,#+0xD ;; #+0x1C0000
\ 00000016 3A49 LDR R1,??AT91F_InitMailbox_0+0x10 ;; 0xfff80208
\ 00000018 0C60 STR R4,[R1, #+0]
\ 0000001A .... LDR R1,??DataTable0 ;; 0xfff80214
\ 0000001C 394D LDR R5,??AT91F_InitMailbox_0+0x14 ;; 0x23456789
\ 0000001E 0D60 STR R5,[R1, #+0]
\ 00000020 .... LDR R1,??DataTable1 ;; 0xfff80218
\ 00000022 394D LDR R5,??AT91F_InitMailbox_0+0x18 ;; 0x98765432
\ 00000024 0D60 STR R5,[R1, #+0]
\ 00000026 8021 MOV R1,#+0x80
\ 00000028 0903 LSL R1,R1,#+0xC ;; #+0x80000
\ 0000002A 1160 STR R1,[R2, #+0]
34
35 // Init CAN1 Mailbox 0
36 AT91F_InitMailboxRegisters( AT91C_BASE_CAN1_MB0,
37 AT91C_CAN_MOT_RX | AT91C_CAN_PRIOR,
38 AT91C_CAN_MIDvA | AT91C_CAN_MIDvB | AT91C_CAN_MIDE,
39 AT91C_CAN_MIDvA & (0x07<<18), // ID 7
40 0x00000000,
41 0x00000000,
42 0x00000000);
\ 0000002C 374D LDR R5,??AT91F_InitMailbox_0+0x1C ;; 0xfff8421c
\ 0000002E 2860 STR R0,[R5, #+0]
\ 00000030 374A LDR R2,??AT91F_InitMailbox_0+0x20 ;; 0xfff84200
\ 00000032 384E LDR R6,??AT91F_InitMailbox_0+0x24 ;; 0x10f0000
\ 00000034 1660 STR R6,[R2, #+0]
\ 00000036 384A LDR R2,??AT91F_InitMailbox_0+0x28 ;; 0x3fffffff
\ 00000038 384E LDR R6,??AT91F_InitMailbox_0+0x2C ;; 0xfff84204
\ 0000003A 3260 STR R2,[R6, #+0]
\ 0000003C 384E LDR R6,??AT91F_InitMailbox_0+0x30 ;; 0xfff84208
\ 0000003E 3460 STR R4,[R6, #+0]
\ 00000040 .... LDR R4,??DataTable2 ;; 0xfff84214
\ 00000042 2060 STR R0,[R4, #+0]
\ 00000044 .... LDR R4,??DataTable3 ;; 0xfff84218
\ 00000046 2060 STR R0,[R4, #+0]
\ 00000048 2860 STR R0,[R5, #+0]
43
44 // Init CAN0 Mailbox 1
45 AT91F_InitMailboxRegisters( AT91C_BASE_CAN0_MB1,
46 AT91C_CAN_MOT_TX | (AT91C_CAN_PRIOR),
47 AT91C_CAN_MIDvA | AT91C_CAN_MIDvB | AT91C_CAN_MIDE,
48 AT91C_CAN_MIDvA & (0x09<<18), // ID 9
49 0xAABBCCDD,
50 0xCAFEDECA,
51 (AT91C_CAN_MDLC & (0x8<<16)) );
\ 0000004A 364C LDR R4,??AT91F_InitMailbox_0+0x34 ;; 0xfff8023c
\ 0000004C 2060 STR R0,[R4, #+0]
\ 0000004E 364D LDR R5,??AT91F_InitMailbox_0+0x38 ;; 0xfff80220
\ 00000050 2B60 STR R3,[R5, #+0]
\ 00000052 364B LDR R3,??AT91F_InitMailbox_0+0x3C ;; 0xfff80224
\ 00000054 1A60 STR R2,[R3, #+0]
\ 00000056 364B LDR R3,??AT91F_InitMailbox_0+0x40 ;; 0xfff80228
\ 00000058 9025 MOV R5,#+0x90
\ 0000005A AD03 LSL R5,R5,#+0xE ;; #+0x240000
\ 0000005C 1D60 STR R5,[R3, #+0]
\ 0000005E .... LDR R3,??DataTable4 ;; 0xfff80234
\ 00000060 344D LDR R5,??AT91F_InitMailbox_0+0x44 ;; 0xaabbccdd
\ 00000062 1D60 STR R5,[R3, #+0]
\ 00000064 .... LDR R3,??DataTable5 ;; 0xfff80238
\ 00000066 344D LDR R5,??AT91F_InitMailbox_0+0x48 ;; 0xcafedeca
\ 00000068 1D60 STR R5,[R3, #+0]
\ 0000006A 2160 STR R1,[R4, #+0]
52
53 // Init CAN0 Mailbox 2
54 AT91F_InitMailboxRegisters( AT91C_BASE_CAN0_MB2,
55 AT91C_CAN_MOT_TX | (AT91C_CAN_PRIOR-1),
56 0x00000000,
57 AT91C_CAN_MIDvA & (0x0A<<18), // ID 10
58 0x55667788,
59 0x99AABBCC,
60 (AT91C_CAN_MDLC & (0x8<<16)) );
\ 0000006C 334B LDR R3,??AT91F_InitMailbox_0+0x4C ;; 0xfff8025c
\ 0000006E 1860 STR R0,[R3, #+0]
\ 00000070 334C LDR R4,??AT91F_InitMailbox_0+0x50 ;; 0xfff80240
\ 00000072 344D LDR R5,??AT91F_InitMailbox_0+0x54 ;; 0x30effff
\ 00000074 2560 STR R5,[R4, #+0]
\ 00000076 344C LDR R4,??AT91F_InitMailbox_0+0x58 ;; 0xfff80244
\ 00000078 2060 STR R0,[R4, #+0]
\ 0000007A 344C LDR R4,??AT91F_InitMailbox_0+0x5C ;; 0xfff80248
\ 0000007C A025 MOV R5,#+0xA0
\ 0000007E AD03 LSL R5,R5,#+0xE ;; #+0x280000
\ 00000080 2560 STR R5,[R4, #+0]
\ 00000082 334C LDR R4,??AT91F_InitMailbox_0+0x60 ;; 0xfff80254
\ 00000084 334D LDR R5,??AT91F_InitMailbox_0+0x64 ;; 0x55667788
\ 00000086 2560 STR R5,[R4, #+0]
\ 00000088 334C LDR R4,??AT91F_InitMailbox_0+0x68 ;; 0xfff80258
\ 0000008A 344D LDR R5,??AT91F_InitMailbox_0+0x6C ;; 0x99aabbcc
\ 0000008C 2560 STR R5,[R4, #+0]
\ 0000008E 1960 STR R1,[R3, #+0]
61
62 // Init CAN1 Mailbox 15 ,ID号为全0的信箱可以接收所有信箱消息
63 AT91F_InitMailboxRegisters( AT91C_BASE_CAN1_MB15,
64 AT91C_CAN_MOT_RXOVERWRITE | AT91C_CAN_PRIOR,
65 0x00000000,
66 0x00000000,
67 0x00000000,
68 0x00000000,
69 0x00000000);
\ 00000090 334B LDR R3,??AT91F_InitMailbox_0+0x70 ;; 0xfff843fc
\ 00000092 1860 STR R0,[R3, #+0]
\ 00000094 334C LDR R4,??AT91F_InitMailbox_0+0x74 ;; 0xfff843e0
\ 00000096 344D LDR R5,??AT91F_InitMailbox_0+0x78 ;; 0x20f0000
\ 00000098 2560 STR R5,[R4, #+0]
\ 0000009A 344C LDR R4,??AT91F_InitMailbox_0+0x7C ;; 0xfff843e4
\ 0000009C 2060 STR R0,[R4, #+0]
\ 0000009E 344C LDR R4,??AT91F_InitMailbox_0+0x80 ;; 0xfff843e8
\ 000000A0 2060 STR R0,[R4, #+0]
\ 000000A2 .... LDR R4,??DataTable6 ;; 0xfff843f4
\ 000000A4 2060 STR R0,[R4, #+0]
\ 000000A6 .... LDR R4,??DataTable7 ;; 0xfff843f8
\ 000000A8 2060 STR R0,[R4, #+0]
\ 000000AA 1860 STR R0,[R3, #+0]
70
71 // Init CAN0 Mailbox 3
72 AT91F_InitMailboxRegisters( AT91C_BASE_CAN0_MB3,
73 AT91C_CAN_MOT_CONSUMER | AT91C_CAN_PRIOR,
74 AT91C_CAN_MIDvA | AT91C_CAN_MIDvB | AT91C_CAN_MIDE,
75 AT91C_CAN_MIDvA & (0x0B<<18), // ID 11
76 0x00000000,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -