📄 mci_sd.lst
字号:
\ 00000054 7F1C ADD R7,#+0x1
\ 00000056 6528 CMP R0,#+0x65
\ 00000058 F6D3 BCC ??MCI_SendCommand_5
145 break ;
146 }
147 AT91C_BASE_MCI->MCI_CMDR =CMDR_param ; //开始发送 (是否只是发送数据块时用到???)
\ ??MCI_SendCommand_6:
\ 0000005A .... LDR R0,??DataTable15 ;; 0xfffac014
\ 0000005C 0660 STR R6,[R0, #+0]
148 delay() ;
\ 0000005E ........ BL delay
149 delay() ;
\ 00000062 ........ BL delay
150 delay() ;
\ 00000066 ........ BL delay
151
152 Try_time=0 ;
\ 0000006A 0020 MOV R0,#+0
\ 0000006C 071C MOV R7,R0
153 while((AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY)==0) //等待CMDRDY
\ ??MCI_SendCommand_7:
\ 0000006E .... LDR R0,??DataTable17 ;; 0xfffac040
\ 00000070 0068 LDR R0,[R0, #+0]
\ 00000072 C007 LSL R0,R0,#+0x1F
\ 00000074 04D4 BMI ??MCI_SendCommand_8
154 {
155 if( Try_time++ >Try_Time_Max)
\ 00000076 381C MOV R0,R7
\ 00000078 071C MOV R7,R0
\ 0000007A 7F1C ADD R7,#+0x1
\ 0000007C 6528 CMP R0,#+0x65
\ 0000007E F6D3 BCC ??MCI_SendCommand_7
156 break ;
157 }
158 GetState=AT91C_BASE_MCI->MCI_SR ;
\ ??MCI_SendCommand_8:
\ 00000080 .... LDR R0,??DataTable17 ;; 0xfffac040
\ 00000082 0068 LDR R0,[R0, #+0]
\ 00000084 0090 STR R0,[SP, #+0]
159 //while ((GetState & AT91C_MCI_TXRDY)==0) //等待数据send完成 ****************************************************
160 // GetState=AT91C_BASE_MCI->MCI_SR ;
161 //******检测错误**************************
162 //if((GetState & 0x007F0000)!= 0) // 有错误,转错误处理
163 // return (-1) ;
164 if((GetState & AT91C_MCI_CMDRDY)==AT91C_MCI_CMDRDY) // 当有需要的时候,读取 响应寄存器
\ 00000086 0098 LDR R0,[SP, #+0]
\ 00000088 C007 LSL R0,R0,#+0x1F
\ 0000008A 74D5 BPL ??MCI_SendCommand_9
165 {
166 ResponedType=Responed_Type ;
\ 0000008C .... LDR R0,??DataTable18 ;; ResponedType
\ 0000008E 0560 STR R5,[R0, #+0]
167 //return 0 ;
168
169
170 switch (Responed_Type)
\ 00000090 281C MOV R0,R5
\ 00000092 0028 CMP R0,#+0
\ 00000094 04D0 BEQ ??MCI_SendCommand_10
\ 00000096 0128 CMP R0,#+0x1
\ 00000098 06D0 BEQ ??MCI_SendCommand_11
\ 0000009A 0228 CMP R0,#+0x2
\ 0000009C 28D0 BEQ ??MCI_SendCommand_12
\ 0000009E 6AE0 B ??MCI_SendCommand_9
171 {
172 case 0: // 无响应,不处理
173 {
174 Read_CMD_Respond(No_Respond) ;
\ ??MCI_SendCommand_10:
\ 000000A0 0020 MOV R0,#+0
\ 000000A2 ........ BL Read_CMD_Respond
175 break ;
\ 000000A6 66E0 B ??MCI_SendCommand_9
176
177 }
178 case 1: // 48 bit 响应
179 {
180 Read_CMD_Respond(Respond_Len_48) ; // 48 bit响应
\ ??MCI_SendCommand_11:
\ 000000A8 0120 MOV R0,#+0x1
\ 000000AA ........ BL Read_CMD_Respond
181 TRACE_INFO("____48 Responed0 DATA____") ;
\ 000000AE .... LDR R0,??DataTable54 ;; _Stdout
\ 000000B0 0028 CMP R0,#+0
\ 000000B2 03D0 BEQ ??MCI_SendCommand_13
\ 000000B4 3349 LDR R1,??MCI_SendCommand_0+0x4 ;; `?<Constant "____48 Responed0 DATA...">`
\ 000000B6 .... LDR R0,??DataTable54 ;; _Stdout
\ 000000B8 ........ _BLF fprintf,fprintf??rT
182 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[0]) ;
\ ??MCI_SendCommand_13:
\ 000000BC .... LDR R0,??DataTable54 ;; _Stdout
\ 000000BE 0028 CMP R0,#+0
\ 000000C0 05D0 BEQ ??MCI_SendCommand_14
\ 000000C2 .... LDR R0,??DataTable34 ;; 0xfffac020
\ 000000C4 0268 LDR R2,[R0, #+0]
\ 000000C6 .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 000000C8 .... LDR R0,??DataTable54 ;; _Stdout
\ 000000CA ........ _BLF fprintf,fprintf??rT
183 TRACE_INFO("____48 Responed1 DATA____") ;
\ ??MCI_SendCommand_14:
\ 000000CE .... LDR R0,??DataTable54 ;; _Stdout
\ 000000D0 0028 CMP R0,#+0
\ 000000D2 03D0 BEQ ??MCI_SendCommand_15
\ 000000D4 2C49 LDR R1,??MCI_SendCommand_0+0x8 ;; `?<Constant "____48 Responed1 DATA...">`
\ 000000D6 .... LDR R0,??DataTable54 ;; _Stdout
\ 000000D8 ........ _BLF fprintf,fprintf??rT
184 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[1]) ;
\ ??MCI_SendCommand_15:
\ 000000DC .... LDR R0,??DataTable54 ;; _Stdout
\ 000000DE 0028 CMP R0,#+0
\ 000000E0 49D0 BEQ ??MCI_SendCommand_9
\ 000000E2 .... LDR R0,??DataTable40 ;; 0xfffac024
\ 000000E4 0268 LDR R2,[R0, #+0]
\ 000000E6 .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 000000E8 .... LDR R0,??DataTable54 ;; _Stdout
\ 000000EA ........ _BLF fprintf,fprintf??rT
\ 000000EE 42E0 B ??MCI_SendCommand_9
185
186 break ;
187 }
188 case 2:
189 {
190 Read_CMD_Respond(Respond_Len_136) ; // 136 bit响应
\ ??MCI_SendCommand_12:
\ 000000F0 0220 MOV R0,#+0x2
\ 000000F2 ........ BL Read_CMD_Respond
191 TRACE_INFO("____Responed0 DATA____") ;
\ 000000F6 .... LDR R0,??DataTable54 ;; _Stdout
\ 000000F8 0028 CMP R0,#+0
\ 000000FA 03D0 BEQ ??MCI_SendCommand_16
\ 000000FC 2349 LDR R1,??MCI_SendCommand_0+0xC ;; `?<Constant "____Responed0 DATA____">`
\ 000000FE .... LDR R0,??DataTable54 ;; _Stdout
\ 00000100 ........ _BLF fprintf,fprintf??rT
192 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[0]) ;
\ ??MCI_SendCommand_16:
\ 00000104 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000106 0028 CMP R0,#+0
\ 00000108 05D0 BEQ ??MCI_SendCommand_17
\ 0000010A .... LDR R0,??DataTable34 ;; 0xfffac020
\ 0000010C 0268 LDR R2,[R0, #+0]
\ 0000010E .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 00000110 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000112 ........ _BLF fprintf,fprintf??rT
193 TRACE_INFO("____Responed1 DATA____") ;
\ ??MCI_SendCommand_17:
\ 00000116 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000118 0028 CMP R0,#+0
\ 0000011A 03D0 BEQ ??MCI_SendCommand_18
\ 0000011C 1C49 LDR R1,??MCI_SendCommand_0+0x10 ;; `?<Constant "____Responed1 DATA____">`
\ 0000011E .... LDR R0,??DataTable54 ;; _Stdout
\ 00000120 ........ _BLF fprintf,fprintf??rT
194 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[1]) ;
\ ??MCI_SendCommand_18:
\ 00000124 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000126 0028 CMP R0,#+0
\ 00000128 05D0 BEQ ??MCI_SendCommand_19
\ 0000012A .... LDR R0,??DataTable40 ;; 0xfffac024
\ 0000012C 0268 LDR R2,[R0, #+0]
\ 0000012E .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 00000130 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000132 ........ _BLF fprintf,fprintf??rT
195 TRACE_INFO("____Responed2 DATA____") ;
\ ??MCI_SendCommand_19:
\ 00000136 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000138 0028 CMP R0,#+0
\ 0000013A 03D0 BEQ ??MCI_SendCommand_20
\ 0000013C 1549 LDR R1,??MCI_SendCommand_0+0x14 ;; `?<Constant "____Responed2 DATA____">`
\ 0000013E .... LDR R0,??DataTable54 ;; _Stdout
\ 00000140 ........ _BLF fprintf,fprintf??rT
196 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[2]) ;
\ ??MCI_SendCommand_20:
\ 00000144 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000146 0028 CMP R0,#+0
\ 00000148 05D0 BEQ ??MCI_SendCommand_21
\ 0000014A .... LDR R0,??DataTable46 ;; 0xfffac028
\ 0000014C 0268 LDR R2,[R0, #+0]
\ 0000014E .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 00000150 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000152 ........ _BLF fprintf,fprintf??rT
197 TRACE_INFO("____Responed3 DATA____") ;
\ ??MCI_SendCommand_21:
\ 00000156 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000158 0028 CMP R0,#+0
\ 0000015A 03D0 BEQ ??MCI_SendCommand_22
\ 0000015C 0E49 LDR R1,??MCI_SendCommand_0+0x18 ;; `?<Constant "____Responed3 DATA____">`
\ 0000015E .... LDR R0,??DataTable54 ;; _Stdout
\ 00000160 ........ _BLF fprintf,fprintf??rT
198 TRACE_INFO("\r\n %d \r\n " ,AT91C_BASE_MCI->MCI_RSPR[3]) ;
\ ??MCI_SendCommand_22:
\ 00000164 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000166 0028 CMP R0,#+0
\ 00000168 05D0 BEQ ??MCI_SendCommand_9
\ 0000016A .... LDR R0,??DataTable52 ;; 0xfffac02c
\ 0000016C 0268 LDR R2,[R0, #+0]
\ 0000016E .... LDR R1,??DataTable53 ;; `?<Constant "\\r\\n %d \\r\\n ">`
\ 00000170 .... LDR R0,??DataTable54 ;; _Stdout
\ 00000172 ........ _BLF fprintf,fprintf??rT
199 break ;
200 }
201 default : ;
202
203 }
204
205 }
206 return 0 ; //正确返回
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -