void SDSPI_MakeCmd(unsigned char *pCmdToken, unsigned int arg) { unsigned char sdCmdNum; unsigned char crc = 0; unsigned char crcPrev = 0; sdCmdNum = 0x3f & *pCmdToken; *pCmdToken = sdCmdNum | 0x40; *(pCmdToken+1) = (arg >> 24) & 0xff; *(pCmdToken+2) = (arg >> 16) & 0xff; *(pCmdToken+3) = (arg >> 8) & 0xff; *(pCmdToken+4) = arg & 0xff; crc = crc7(crcPrev, (unsigned char *)(pCmdToken), 5); *(pCmdToken+5) = (crc << 1) | 1; }