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

📄 spi_master.lst

📁 DDS之AD9910驱动源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000010  ---- Variable 'RegisterIndex' assigned to Register 'R5' ----
  104:     unsigned    int     ReceiveData = 0;
 00000010  2000      MOV         R0,#0x0
 00000012  1C04      MOV         R4,R0 ; ReceiveData
 00000014  ---- Variable 'ReceiveData' assigned to Register 'R4' ----
  105:     unsigned    char    i = 0;
 00000014  2300      MOV         R3,#0x0
 00000016  ---- Variable 'i' assigned to Register 'R3' ----
  106:     unsigned    int     iTemp = 0;
 00000016  9001      STR         R0,[R13,#0x4] ; iTemp
  109:     ControlValue = RegisterAddress;
 00000018  1C39      MOV         R1,R7 ; RegisterAddress
 0000001A  A800      ADD         R0,R13,#0x0
 0000001C  7001      STRB        R1,[R0,#0x0] ; ControlValue
  111:     SET_SCL();
 0000001E  4800      LDR         R0,=0xFFFFF430
 00000020  6801      LDR         R1,[R0,#0x0]
 00000022  4800      LDR         R0,=0x40000
 00000024  4301      ORR         R1,R0
 00000026  4800      LDR         R0,=0xFFFFF430
 00000028  6001      STR         R1,[R0,#0x0]
  112:     delay(1);   
 0000002A  2001      MOV         R0,#0x1
 0000002C  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000002E  FFE8      BL          delay?T  ; T=0x0001  (2)
  113:     SET_CS();
 00000030  4800      LDR         R0,=0xFFFFF460
 00000032  6801      LDR         R1,[R0,#0x0]
 00000034  4800      LDR         R0,=0x20000
 00000036  4301      ORR         R1,R0
 00000038  4800      LDR         R0,=0xFFFFF460
 0000003A  6001      STR         R1,[R0,#0x0]
  114:     delay(1);
 0000003C  2001      MOV         R0,#0x1
 0000003E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000040  FFDF      BL          delay?T  ; T=0x0001  (2)
  115:     CLR_CS();    //bring CS low
 00000042  4800      LDR         R0,=0xFFFFF460
 00000044  6801      LDR         R1,[R0,#0x0]
ARM COMPILER V2.53,  SPI_Master                                                            25/11/08  15:54:08  PAGE 9   

 00000046  4800      LDR         R0,=0x20000
 00000048  4381      BIC         R1,R0
 0000004A  4800      LDR         R0,=0xFFFFF460
 0000004C  6001      STR         R1,[R0,#0x0]
  116:     delay(1);
 0000004E  2001      MOV         R0,#0x1
 00000050  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000052  FFD6      BL          delay?T  ; T=0x0001  (2)
  118:      SDA_OUT(); //Make SDIO an output
 00000054  4800      LDR         R0,=0xFFFFF430
 00000056  6801      LDR         R1,[R0,#0x0]
 00000058  4800      LDR         R0,=0x8000000
 0000005A  4301      ORR         R1,R0
 0000005C  4800      LDR         R0,=0xFFFFF430
 0000005E  6001      STR         R1,[R0,#0x0]
  121:     for(i=0; i<8; i++)
 00000060  2300      MOV         R3,#0x0
 00000062  E02A      B           L_26  ; T=0x000000BA
 00000064          L_27:
  123:         CLR_SCL();
 00000064  4800      LDR         R0,=0xFFFFF430
 00000066  6801      LDR         R1,[R0,#0x0]
 00000068  4800      LDR         R0,=0x40000
 0000006A  4381      BIC         R1,R0
 0000006C  4800      LDR         R0,=0xFFFFF430
 0000006E  6001      STR         R1,[R0,#0x0]
  124:         if(0x80 == (ControlValue & 0x80))
 00000070  A800      ADD         R0,R13,#0x0
 00000072  7800      LDRB        R0,[R0,#0x0] ; ControlValue
 00000074  2180      MOV         R1,#0x80
 00000076  4208      TST         R0,R1
 00000078  D006      BEQ         L_29  ; T=0x00000088
  126:             SET_SDIO();   //Send one to SDIO pin
 0000007A  4800      LDR         R0,=0xFFFFF430
 0000007C  6801      LDR         R1,[R0,#0x0]
 0000007E  4800      LDR         R0,=0x80000
 00000080  4301      ORR         R1,R0
 00000082  4800      LDR         R0,=0xFFFFF430
 00000084  6001      STR         R1,[R0,#0x0]
  127:         }
 00000086  E005      B           L_30  ; T=0x00000094
 00000088          L_29:
  130:             CLR_SDIO();   //Send zero to SDIO pin
 00000088  4800      LDR         R0,=0xFFFFF430
 0000008A  6801      LDR         R1,[R0,#0x0]
 0000008C  4800      LDR         R0,=0x80000
 0000008E  4381      BIC         R1,R0
 00000090  4800      LDR         R0,=0xFFFFF430
 00000092  6001      STR         R1,[R0,#0x0]
  131:         }
 00000094          L_30:
  132:         delay(1);
 00000094  2001      MOV         R0,#0x1
 00000096  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000098  FFB3      BL          delay?T  ; T=0x0001  (2)
  133:         SET_SCL();
 0000009A  4800      LDR         R0,=0xFFFFF430
 0000009C  6801      LDR         R1,[R0,#0x0]
 0000009E  4800      LDR         R0,=0x40000
 000000A0  4301      ORR         R1,R0
 000000A2  4800      LDR         R0,=0xFFFFF430
 000000A4  6001      STR         R1,[R0,#0x0]
  134:         delay(1);
 000000A6  2001      MOV         R0,#0x1
 000000A8  F7FF      BL          delay?T  ; T=0x0001  (1)
 000000AA  FFAA      BL          delay?T  ; T=0x0001  (2)
ARM COMPILER V2.53,  SPI_Master                                                            25/11/08  15:54:08  PAGE 10  

  135:         ControlValue <<= 1; //Rotate data
 000000AC  A800      ADD         R0,R13,#0x0
 000000AE  7801      LDRB        R1,[R0,#0x0] ; ControlValue
 000000B0  0049      LSL         R1,R1,#0x1
 000000B2  7001      STRB        R1,[R0,#0x0] ; ControlValue
  136:     }
 000000B4  3301      ADD         R3,#0x1
 000000B6  061B      LSL         R3,R3,#0x18
 000000B8  0E1B      LSR         R3,R3,#0x18
 000000BA          L_26:
 000000BA  1C18      MOV         R0,R3 ; i
 000000BC  0600      LSL         R0,R0,#0x18 ; i
 000000BE  0E00      LSR         R0,R0,#0x18
 000000C0  2808      CMP         R0,#0x8
 000000C2  DBCF      BLT         L_27  ; T=0x00000064
  138:     SDA_IN();   //Make SDA an input
 000000C4  4800      LDR         R0,=0xFFFFF430
 000000C6  6801      LDR         R1,[R0,#0x0]
 000000C8  4800      LDR         R0,=0x8000000
 000000CA  4381      BIC         R1,R0
 000000CC  4800      LDR         R0,=0xFFFFF430
 000000CE  6001      STR         R1,[R0,#0x0]
  141:     for (RegisterIndex=NumberofRegisters; RegisterIndex>0; RegisterIndex--)
 000000D0  1C35      MOV         R5,R6 ; NumberofRegisters
 000000D2  062D      LSL         R5,R5,#0x18 ; NumberofRegisters
 000000D4  0E2D      LSR         R5,R5,#0x18
 000000D6  E031      B           L_33  ; T=0x0000013C
  143:         for(i=0; i<32; i++)
 000000D8          L_40:
 000000D8  2300      MOV         R3,#0x0
 000000DA  E01E      B           L_38  ; T=0x0000011A
 000000DC          L_39:
  145:             CLR_SCL();
 000000DC  4800      LDR         R0,=0xFFFFF430
 000000DE  6801      LDR         R1,[R0,#0x0]
 000000E0  4800      LDR         R0,=0x40000
 000000E2  4381      BIC         R1,R0
 000000E4  4800      LDR         R0,=0xFFFFF430
 000000E6  6001      STR         R1,[R0,#0x0]
  146:             delay(1);
 000000E8  2001      MOV         R0,#0x1
 000000EA  F7FF      BL          delay?T  ; T=0x0001  (1)
 000000EC  FF89      BL          delay?T  ; T=0x0001  (2)
  147:             SET_SCL();
 000000EE  4800      LDR         R0,=0xFFFFF430
 000000F0  6801      LDR         R1,[R0,#0x0]
 000000F2  4800      LDR         R0,=0x40000
 000000F4  4301      ORR         R1,R0
 000000F6  4800      LDR         R0,=0xFFFFF430
 000000F8  6001      STR         R1,[R0,#0x0]
  148:             ReceiveData <<= 1;      //Rotate data
 000000FA  0064      LSL         R4,R4,#0x1 ; ReceiveData
  149:             iTemp = GP1DAT;         //Read SDIO of AD9910
 000000FC  4800      LDR         R0,=0xFFFFF430
 000000FE  6800      LDR         R0,[R0,#0x0]
 00000100  9001      STR         R0,[R13,#0x4] ; iTemp
  150:             if(0x00000008 == (iTemp & 0x00000008))
 00000102  9801      LDR         R0,[R13,#0x4] ; iTemp
 00000104  2108      MOV         R1,#0x8
 00000106  4208      TST         R0,R1
 00000108  D001      BEQ         L_41  ; T=0x0000010E
  152:                 ReceiveData |= 1;   
 0000010A  2001      MOV         R0,#0x1
 0000010C  4304      ORR         R4,R0
  153:             }
 0000010E          L_41:
ARM COMPILER V2.53,  SPI_Master                                                            25/11/08  15:54:08  PAGE 11  

  154:             delay(1);
 0000010E  2001      MOV         R0,#0x1
 00000110  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000112  FF76      BL          delay?T  ; T=0x0001  (2)
  155:         }
 00000114  3301      ADD         R3,#0x1
 00000116  061B      LSL         R3,R3,#0x18
 00000118  0E1B      LSR         R3,R3,#0x18
 0000011A          L_38:
 0000011A  1C18      MOV         R0,R3 ; i
 0000011C  0600      LSL         R0,R0,#0x18 ; i
 0000011E  0E00      LSR         R0,R0,#0x18
 00000120  2820      CMP         R0,#0x20
 00000122  DBDB      BLT         L_39  ; T=0x000000DC
  156:         *(RegisterData + RegisterIndex - 1) = ReceiveData;
 00000124  1C21      MOV         R1,R4 ; ReceiveData
 00000126  1C28      MOV         R0,R5 ; RegisterIndex
 00000128  0606      LSL         R6,R0,#0x18 ; RegisterIndex
 0000012A  1636      ASR         R6,R6,#0x18
 0000012C  00B6      LSL         R6,R6,#0x2
 0000012E  1C10      MOV         R0,R2 ; RegisterData
 00000130  1980      ADD         R0,R6 ; RegisterData
 00000132  3804      SUB         R0,#0x4
 00000134  6001      STR         R1,[R0,#0x0]
  158:     }
 00000136  3D01      SUB         R5,#0x1
 00000138  062D      LSL         R5,R5,#0x18
 0000013A  162D      ASR         R5,R5,#0x18
 0000013C          L_33:
 0000013C  1C28      MOV         R0,R5 ; RegisterIndex
 0000013E  0600      LSL         R0,R0,#0x18 ; RegisterIndex
 00000140  1600      ASR         R0,R0,#0x18
 00000142  2800      CMP         R0,#0x0
 00000144  DCC8      BGT         L_40  ; T=0x000000D8
  159:     delay(1);
 00000146  2001      MOV         R0,#0x1
 00000148  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000014A  FF5A      BL          delay?T  ; T=0x0001  (2)
  160:     SET_CS();   //bring CS high again
 0000014C  4800      LDR         R0,=0xFFFFF460
 0000014E  6801      LDR         R1,[R0,#0x0]
 00000150  4800      LDR         R0,=0x20000
 00000152  4301      ORR         R1,R0
 00000154  4800      LDR         R0,=0xFFFFF460
 00000156  6001      STR         R1,[R0,#0x0]
 00000158            ; SCOPE-END
  161: } 
 00000158  B002      ADD         R13,#0x8
 0000015A  BCF0      POP         {R4-R7}
 0000015C  BC08      POP         {R3}
 0000015E  4718      BX          R3
 00000160          ENDP ; 'ReadFromAD9910ViaSpi?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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