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

📄 ican-mcp2515.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 5 页
字号:
###############################################################################
#                                                                             #
#                                                       06/Dec/2008  17:12:51 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                    #
# Copyright 1999-2007 IAR Systems. All rights reserved.                       #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  E:\ELE\yten\pro\message\ican-mcp2515.c                   #
#    Command line =  E:\ELE\yten\pro\message\ican-mcp2515.c -D EMB_FLASH      #
#                    -lCN E:\ELE\yten\pro\Debug\List\ -lb                     #
#                    E:\ELE\yten\pro\Debug\List\ -o                           #
#                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll          #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian little --cpu Cortex-M3  #
#                    -e --fpu None --dlib_config "C:\Program Files\IAR        #
#                    Systems\Embedded Workbench 5.0                           #
#                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I              #
#                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I   #
#                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" --section .text=.XML -On            #
#    List file    =  E:\ELE\yten\pro\Debug\List\ican-mcp2515.lst              #
#    Object file  =  E:\ELE\yten\pro\Debug\Obj\ican-mcp2515.o                 #
#                                                                             #
#                                                                             #
###############################################################################

E:\ELE\yten\pro\message\ican-mcp2515.c
      1          ////////////////////////
      2          #include "includes.h"
      3          #include"ytep.h"
      4          #include"can.h"

   \                                 In section .rodata, align 4
   \   unsigned char const __data CAN_RATE_TAB[3]
   \                     CAN_RATE_TAB:
   \   00000000   01041800           DC8 1, 4, 24, 0

   \                                 In section .rodata, align 4
      5          const Int8U	 CAN_BAUD[]={1,4,18};
   \                     CAN_BAUD:
   \   00000000   01041200           DC8 1, 4, 18, 0
      6          ////////////////////////
      7          //------------------------------------

   \                                 In section .XML, align 4, keep-with-next
      8          void WriteSPI(unsigned char DataOut)
      9          {
     10            unsigned char n;
     11          
     12            Clr_bit(IO_mSCK,mSCK) ;  //Make sure clock is low
   \                     WriteSPI:
   \   00000000   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000002   1268               LDR      R2,[R2, #+0]
   \   00000004   7FF48063           MVNS     R3,#+1024
   \   00000008   1340               ANDS     R3,R3,R2
   \   0000000A   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   0000000C   1360               STR      R3,[R2, #+0]
     13          
     14            for(n=0; n<8; n++)
   \   0000000E   0022               MOVS     R2,#+0
   \   00000010   1100               MOVS     R1,R2
   \                     ??WriteSPI_0:
   \   00000012   C9B2               UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
   \   00000014   0829               CMP      R1,#+8
   \   00000016   32D2               BCS.N    ??WriteSPI_1
     15            {    	
     16              if((DataOut << n) & 0x80)Set_bit(IO_mSI,mSI);        //mSII = 1;
   \   00000018   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   0000001A   10FA01F2           LSLS     R2,R0,R1
   \   0000001E   1206               LSLS     R2,R2,#+24
   \   00000020   06D5               BPL.N    ??WriteSPI_2
   \   00000022   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000024   1268               LDR      R2,[R2, #+0]
   \   00000026   52F00202           ORRS     R2,R2,#0x2
   \   0000002A   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   0000002C   1A60               STR      R2,[R3, #+0]
   \   0000002E   05E0               B.N      ??WriteSPI_3
     17              else                     Clr_bit(IO_mSI,mSI) ;                      //Clock a 0
   \                     ??WriteSPI_2:
   \   00000030   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000032   1268               LDR      R2,[R2, #+0]
   \   00000034   0223               MOVS     R3,#+2
   \   00000036   9A43               BICS     R2,R2,R3
   \   00000038   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   0000003A   1A60               STR      R2,[R3, #+0]
     18              asm("nop");
   \                     ??WriteSPI_3:
   \   0000003C   00BF               nop              
     19              asm("nop");
   \   0000003E   00BF               nop              
     20              asm("nop");
   \   00000040   00BF               nop              
     21          
     22              Set_bit(IO_mSCK,mSCK);   //mSCK = 1;                 //Pulse clock                               //      mSCK = 0;                 //
   \   00000042   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000044   1268               LDR      R2,[R2, #+0]
   \   00000046   52F48062           ORRS     R2,R2,#0x400
   \   0000004A   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   0000004C   1A60               STR      R2,[R3, #+0]
     23              asm("nop");
   \   0000004E   00BF               nop              
     24              asm("nop");
   \   00000050   00BF               nop              
     25              asm("nop");
   \   00000052   00BF               nop              
     26              asm("nop");
   \   00000054   00BF               nop              
     27              asm("nop");
   \   00000056   00BF               nop              
     28           
     29              Clr_bit(IO_mSCK,mSCK);
   \   00000058   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   0000005A   1268               LDR      R2,[R2, #+0]
   \   0000005C   7FF48063           MVNS     R3,#+1024
   \   00000060   1340               ANDS     R3,R3,R2
   \   00000062   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000064   1360               STR      R3,[R2, #+0]
     30              asm("nop");
   \   00000066   00BF               nop              
     31              asm("nop");
   \   00000068   00BF               nop              
     32              asm("nop");
   \   0000006A   00BF               nop              
     33              asm("nop");
   \   0000006C   00BF               nop              
     34          
     35              Clr_bit(IO_mSI,mSI) ;
   \   0000006E   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000070   1268               LDR      R2,[R2, #+0]
   \   00000072   0223               MOVS     R3,#+2
   \   00000074   9A43               BICS     R2,R2,R3
   \   00000076   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   00000078   1A60               STR      R2,[R3, #+0]
     36            }
   \   0000007A   491C               ADDS     R1,R1,#+1
   \   0000007C   C9E7               B.N      ??WriteSPI_0
     37          }
   \                     ??WriteSPI_1:
   \   0000007E   7047               BX       LR               ;; return
     38          
     39          /********************************************************************/

   \                                 In section .XML, align 4, keep-with-next
     40          unsigned char ReadSPI( void )
     41          {
     42            unsigned char n, DataIn = 0;
   \                     ReadSPI:
   \   00000000   0022               MOVS     R2,#+0
   \   00000002   1000               MOVS     R0,R2
     43          
     44            Clr_bit(IO_mSCK,mSCK);      //mSCK = 0;   //Make sure clock is low
   \   00000004   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000006   1268               LDR      R2,[R2, #+0]
   \   00000008   7FF48063           MVNS     R3,#+1024
   \   0000000C   1340               ANDS     R3,R3,R2
   \   0000000E   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000010   1360               STR      R3,[R2, #+0]
     45            for(n=0; n<7; n++)
   \   00000012   0022               MOVS     R2,#+0
   \   00000014   1100               MOVS     R1,R2
   \                     ??ReadSPI_0:
   \   00000016   C9B2               UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
   \   00000018   0729               CMP      R1,#+7
   \   0000001A   21D2               BCS.N    ??ReadSPI_1
     46            {
     47              Set_bit(IO_mSCK,mSCK) ;    //mSCK = 1;
   \   0000001C   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   0000001E   1268               LDR      R2,[R2, #+0]
   \   00000020   52F48062           ORRS     R2,R2,#0x400
   \   00000024   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   00000026   1A60               STR      R2,[R3, #+0]
     48              asm("nop");
   \   00000028   00BF               nop              
     49              asm("nop");
   \   0000002A   00BF               nop              
     50              if(Get_bit(IO_mSO,mSO))DataIn|=1;
   \   0000002C   ....               LDR.N    R2,??DataTable23  ;; 0x40010c08
   \   0000002E   1368               LDR      R3,[R2, #+0]
   \   00000030   0122               MOVS     R2,#+1
   \   00000032   1A40               ANDS     R2,R2,R3
   \   00000034   ....               LDR.N    R3,??DataTable23  ;; 0x40010c08
   \   00000036   1A60               STR      R2,[R3, #+0]
   \   00000038   002A               CMP      R2,#+0
   \   0000003A   02D0               BEQ.N    ??ReadSPI_2
   \   0000003C   50F00100           ORRS     R0,R0,#0x1
   \   00000040   01E0               B.N      ??ReadSPI_3
     51              else            DataIn&=0xfe;	
   \                     ??ReadSPI_2:
   \   00000042   10F0FE00           ANDS     R0,R0,#0xFE
     52              	
     53              DataIn = (DataIn << 1);
   \                     ??ReadSPI_3:
   \   00000046   C0B2               UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
   \   00000048   4000               LSLS     R0,R0,#+1
     54              Clr_bit(IO_mSCK,mSCK);
   \   0000004A   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   0000004C   1268               LDR      R2,[R2, #+0]
   \   0000004E   7FF48063           MVNS     R3,#+1024
   \   00000052   1340               ANDS     R3,R3,R2
   \   00000054   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000056   1360               STR      R3,[R2, #+0]
     55              asm("nop");
   \   00000058   00BF               nop              
     56              asm("nop");//mSCK = 0;
   \   0000005A   00BF               nop              
     57            }
   \   0000005C   491C               ADDS     R1,R1,#+1
   \   0000005E   DAE7               B.N      ??ReadSPI_0
     58              Set_bit(IO_mSCK,mSCK);								//mSCK = 1;
   \                     ??ReadSPI_1:
   \   00000060   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000062   1268               LDR      R2,[R2, #+0]
   \   00000064   52F48062           ORRS     R2,R2,#0x400
   \   00000068   ....               LDR.N    R3,??DataTable25  ;; 0x40010c0c
   \   0000006A   1A60               STR      R2,[R3, #+0]
     59              if(Get_bit(IO_mSO,mSO))DataIn|=1;
   \   0000006C   ....               LDR.N    R2,??DataTable23  ;; 0x40010c08
   \   0000006E   1368               LDR      R3,[R2, #+0]
   \   00000070   0122               MOVS     R2,#+1
   \   00000072   1A40               ANDS     R2,R2,R3
   \   00000074   ....               LDR.N    R3,??DataTable23  ;; 0x40010c08
   \   00000076   1A60               STR      R2,[R3, #+0]
   \   00000078   002A               CMP      R2,#+0
   \   0000007A   02D0               BEQ.N    ??ReadSPI_4
   \   0000007C   50F00100           ORRS     R0,R0,#0x1
   \   00000080   01E0               B.N      ??ReadSPI_5
     60              else          DataIn&=0xfe;	          //DataIn = DataIn + mSI;
   \                     ??ReadSPI_4:
   \   00000082   10F0FE00           ANDS     R0,R0,#0xFE
     61              Clr_bit(IO_mSCK,mSCK);								//				mSCK = 0;
   \                     ??ReadSPI_5:
   \   00000086   ....               LDR.N    R2,??DataTable25  ;; 0x40010c0c
   \   00000088   1268               LDR      R2,[R2, #+0]
   \   0000008A   7FF48063           MVNS     R3,#+1024
   \   0000008E   1340               ANDS     R3,R3,R2

⌨️ 快捷键说明

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