|
ZLGFS文件系统<br />中的块命令 <br />/********************************************************************************************************************<br />** 函数名称: INT8U SD_BlockCommand() Name: INT8U SD_BlockCommand()<br />** 功能描述: 块命令 Function: command about block operation<br />** 输 入: INT8U cmd : 命令字 Input: INT8U cmd : command byte <br /> INT8U resptype : 响应类型 INT8U resptype : response type<br /> INT32U parameter: 块操作参数 INT32U parameter: parameter of block operation<br />** 输 出: 0: 正确 >0: 错误码 Output: 0: right >0: error code<br />*********************************************************************************************************************/<br />INT8U SD_BlockCommand(INT8U cmd, INT8U resptype, INT32U parameter)<br />{<br /> INT8U param[4],resp,ret;<br /> <br /> parameter <<= SD_BLOCKSIZE_NBITS; /* 调整地址:左移9位 adjust address: move 9 bits left */<br /><br /> SD_PackParam(param, parameter); /* 将参数转化为字节形式 change the parameter to bytes form */ <br /><br /> ret = SD_SendCmd(cmd, param, resptype, &resp);<br /> if (ret != SD_NO_ERR)<br /> return ret; /* 结束数据传输失败 stop transmission operation fail */<br /> <br /> if (resp != 0)<br /> return SD_ERR_CMD_RESP; /* 响应错误 response is error */<br /> <br /> return SD_NO_ERR;<br />}<br />parameter <<= SD_BLOCKSIZE_NBITS; /* 调整地址:左移9位 adjust address: move 9 bits left */<br />为什么左移9位呢? 书上说是因为 每块大小是512 就是9 我不太理解 |
|