@@ -233,6 +233,17 @@ static rt_err_t _send_cmd(
233233 }
234234 else if (type == response_r2 )
235235 {
236+ #if defined(__CORTEX_M ) && __CORTEX_M == 0
237+ /* initial message */
238+ message .send_buf = RT_NULL ;
239+ message .recv_buf = recv_buffer ;
240+ message .length = 1 ;
241+ message .cs_take = message .cs_release = 0 ;
242+
243+ /* transfer message */
244+ device -> bus -> ops -> xfer (device , & message );
245+ response [1 ] = recv_buffer [0 ];
246+ #else
236247 /* initial message */
237248 message .send_buf = RT_NULL ;
238249 message .recv_buf = response + 1 ;
@@ -241,9 +252,24 @@ static rt_err_t _send_cmd(
241252
242253 /* transfer message */
243254 device -> bus -> ops -> xfer (device , & message );
255+ #endif
244256 }
245257 else if ((type == response_r3 ) || (type == response_r7 ))
246258 {
259+ #if defined(__CORTEX_M ) && __CORTEX_M == 0
260+ /* initial message */
261+ message .send_buf = RT_NULL ;
262+ message .recv_buf = recv_buffer ;
263+ message .length = 4 ;
264+ message .cs_take = message .cs_release = 0 ;
265+
266+ /* transfer message */
267+ device -> bus -> ops -> xfer (device , & message );
268+ response [1 ] = recv_buffer [0 ];
269+ response [2 ] = recv_buffer [1 ];
270+ response [3 ] = recv_buffer [2 ];
271+ response [4 ] = recv_buffer [3 ];
272+ #else
247273 /* initial message */
248274 message .send_buf = RT_NULL ;
249275 message .recv_buf = response + 1 ;
@@ -252,6 +278,7 @@ static rt_err_t _send_cmd(
252278
253279 /* transfer message */
254280 device -> bus -> ops -> xfer (device , & message );
281+ #endif
255282 }
256283 else
257284 {
0 commit comments