[feat] add parse for CMD52 in SDIO
This commit is contained in:
parent
ddb64b4d90
commit
5e1923a895
33
parse/sdio/cmd52.c
Normal file
33
parse/sdio/cmd52.c
Normal file
@ -0,0 +1,33 @@
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "stdint.h"
|
||||
|
||||
void main(int argc, char *argv[])
|
||||
{
|
||||
uint32_t cmd, resp;
|
||||
uint32_t addr, data;
|
||||
|
||||
while (1) {
|
||||
printf("Please input cmd52 and response\r\n");
|
||||
scanf("%x %x", &cmd, &resp);
|
||||
printf("your input is cmd52:0x%08lX, resp:0x%08lX\r\n", cmd, resp);
|
||||
/* parse cmd52 */
|
||||
addr = (cmd >> 9) & 0x1FFFF;
|
||||
data = (cmd >> 0) & 0xFF;
|
||||
if (cmd & (1 << 31)) {
|
||||
printf("write 0x%02X to 0x%06X. ", data, addr);
|
||||
if (cmd & (1 << 27)) {
|
||||
printf("with read. ");
|
||||
} else {
|
||||
printf("without read. ");
|
||||
}
|
||||
} else {
|
||||
printf("read data from 0x%06X. ", addr);
|
||||
}
|
||||
printf("func=%d\r\n", (cmd >> 28) & 0x7);
|
||||
/* parse response */
|
||||
addr = (resp >> 8) & 0xFF;
|
||||
data = (resp >> 0) & 0xFF;
|
||||
printf("return data is 0x%02lX, status=0x%02lX\r\n\r\n", data, addr);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user