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

📄 can.lst

📁 Atmel arm can总线的应用程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# 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 + -