⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can.lst

📁 针对arm开发板开发的can总线应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION    30/Oct/2007  14:47:15 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CAN #
#                       _CAN)(10K_5K)\BasicCAN-SAM7A3\src\can.c              #
#    Command line    =  "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CA #
#                       N_CAN)(10K_5K)\BasicCAN-SAM7A3\src\can.c" -lC        #
#                       "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CA #
#                       N_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\RAM_Debug\List #
#                       \" --remarks -o "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5 #
#                       K)\AT91SAM7A3(CAN_CAN)(10K_5K)\BasicCAN-SAM7A3\compi #
#                       l\RAM_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\ARM\LIB\dl4tptinl8f.h" -I                    #
#                       "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CA #
#                       N_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\srcIAR\" -I    #
#                       "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CA #
#                       N_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\..\src\" -I    #
#                       "E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CA #
#                       N_CAN)(10K_5K)\BasicCAN-SAM7A3\compil\..\..\" -I     #
#                       "D:\IAR Systems\ARM\INC\"                            #
#    List file       =  E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CAN #
#                       _CAN)(10K_5K)\BasicCAN-SAM7A3\compil\RAM_Debug\List\ #
#                       can.lst                                              #
#    Object file     =  E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CAN #
#                       _CAN)(10K_5K)\BasicCAN-SAM7A3\compil\RAM_Debug\Obj\c #
#                       an.r79                                               #
#                                                                            #
#                                                                            #
##############################################################################

E:\Public\AT91SAM7A3(CAN_CAN)(10K_5K)\AT91SAM7A3(CAN_CAN)(10K_5K)\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, #+16]
   \   00000004   059D               LDR      R5,[SP, #+20]
   \   00000006   069E               LDR      R6,[SP, #+24]
   \   00000008   0027               MOVS     R7,#+0
   \   0000000A   C761               STR      R7,[R0, #+28]
   \   0000000C   0160               STR      R1,[R0, #+0]
   \   0000000E   4260               STR      R2,[R0, #+4]
   \   00000010   8360               STR      R3,[R0, #+8]
   \   00000012   4461               STR      R4,[R0, #+20]
   \   00000014   8561               STR      R5,[R0, #+24]
   \   00000016   C661               STR      R6,[R0, #+28]
   \   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, #+4]
   \   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, #+36]
   \   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, #+16]
   \   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, #+20]
   \   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, #+20]
   \   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, #+24]
   \   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, #+24]
   \   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               MOVS     R2,#+128
   \   00000004   1203               LSLS     R2,R2,#+12       ;; #+524288
   \   00000006   2B49               LDR      R1,??AT91F_InitMailbox_0  ;; 0xffffffff98765432
   \   00000008   2B48               LDR      R0,??AT91F_InitMailbox_0+0x4  ;; 0x23456789
   \   0000000A   07B4               PUSH     {R0-R2}
   \   0000000C   E023               MOVS     R3,#+224
   \   0000000E   5B03               LSLS     R3,R3,#+13       ;; #+1835008
   \   00000010   0022               MOVS     R2,#+0
   \   00000012   2A49               LDR      R1,??AT91F_InitMailbox_0+0x8  ;; 0x30f0000
   \   00000014   ....               LDR      R0,??DataTable0  ;; 0xfffffffffff80200
   \   00000016   ........           _BLF     AT91F_InitMailboxRegisters,??AT91F_InitMailboxRegisters??rT
   \   0000001A   03B0               ADD      SP,SP,#+12
     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               MOVS     R2,#+0
   \   0000001E   0021               MOVS     R1,#+0
   \   00000020   0020               MOVS     R0,#+0
   \   00000022   07B4               PUSH     {R0-R2}
   \   00000024   E023               MOVS     R3,#+224
   \   00000026   5B03               LSLS     R3,R3,#+13       ;; #+1835008
   \   00000028   254A               LDR      R2,??AT91F_InitMailbox_0+0xC  ;; 0x3fffffff
   \   0000002A   2649               LDR      R1,??AT91F_InitMailbox_0+0x10  ;; 0x10f0000
   \   0000002C   ....               LDR      R0,??DataTable1  ;; 0xfffffffffff84200
   \   0000002E   ........           _BLF     AT91F_InitMailboxRegisters,??AT91F_InitMailboxRegisters??rT
   \   00000032   03B0               ADD      SP,SP,#+12
     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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -