📄 can.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART 28/Jul/2006 14:53:08 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
# N)\BasicCAN-SAM7A3\src\can.c #
# Command line = "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\src\can.c" -lC #
# "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\compil\FLASH_Debug\List\" -o #
# "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\compil\FLASH_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 "D:\IAR Systems\Embedded Workbench #
# 4.0 Kickstart\arm\LIB\dl4tptinl8f.h" -I #
# "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\compil\srcIAR\" -I #
# "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\compil\..\src\" -I #
# "E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_C #
# AN)\BasicCAN-SAM7A3\compil\..\..\" -I "D:\IAR #
# Systems\Embedded Workbench 4.0 Kickstart\arm\INC\" #
# List file = E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
# N)\BasicCAN-SAM7A3\compil\FLASH_Debug\List\can.lst #
# Object file = E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CA #
# N)\BasicCAN-SAM7A3\compil\FLASH_Debug\Obj\can.r79 #
# #
# #
##############################################################################
E:\share\Atmel\AT91SAM7A3(CAN_CAN)\AT91SAM7A3(CAN_CAN)\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"
\ 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
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs unsigned int AT91F_CAN_GetMessageStatus(AT91PS_CAN_MB)
\ AT91F_CAN_GetMessageStatus:
\ 00000000 0069 LDR R0,[R0, #+0x10]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN_CfgMessageDataLow(AT91PS_CAN_MB, unsigned int)
\ AT91F_CAN_CfgMessageDataLow:
\ 00000000 4161 STR R1,[R0, #+0x14]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs unsigned int AT91F_CAN_GetMessageDataLow(AT91PS_CAN_MB)
\ AT91F_CAN_GetMessageDataLow:
\ 00000000 4069 LDR R0,[R0, #+0x14]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs void AT91F_CAN_CfgMessageDataHigh(AT91PS_CAN_MB, unsigned int)
\ AT91F_CAN_CfgMessageDataHigh:
\ 00000000 8161 STR R1,[R0, #+0x18]
\ 00000002 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ __??Code16?? __code __interwork __atpcs unsigned int AT91F_CAN_GetMessageDataHigh(AT91PS_CAN_MB)
\ AT91F_CAN_GetMessageDataHigh:
\ 00000000 8069 LDR R0,[R0, #+0x18]
\ 00000002 7047 BX LR ;; return
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 00B5 PUSH {LR}
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 8022 MOV R2,#+0x80
\ 00000004 1203 LSL R2,R2,#+0xC ;; #+0x80000
\ 00000006 2B49 LDR R1,??AT91F_InitMailbox_0 ;; 0x98765432
\ 00000008 2B48 LDR R0,??AT91F_InitMailbox_0+0x4 ;; 0x23456789
\ 0000000A 07B4 PUSH {R0-R2}
\ 0000000C E023 MOV R3,#+0xE0
\ 0000000E 5B03 LSL R3,R3,#+0xD ;; #+0x1C0000
\ 00000010 0022 MOV R2,#+0
\ 00000012 2A49 LDR R1,??AT91F_InitMailbox_0+0x8 ;; 0x30f0000
\ 00000014 .... LDR R0,??DataTable0 ;; 0xfff80200
\ 00000016 ........ _BLF AT91F_InitMailboxRegisters,AT91F_InitMailboxRegisters??rT
\ 0000001A 03B0 ADD SP,#+0xC
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);
\ 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 254A LDR R2,??AT91F_InitMailbox_0+0xC ;; 0x3fffffff
\ 0000002A 2649 LDR R1,??AT91F_InitMailbox_0+0x10 ;; 0x10f0000
\ 0000002C .... LDR R0,??DataTable1 ;; 0xfff84200
\ 0000002E ........ _BLF AT91F_InitMailboxRegisters,AT91F_InitMailboxRegisters??rT
\ 00000032 03B0 ADD SP,#+0xC
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,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -