MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / FSdCtrl_ReadData

Function FSdCtrl_ReadData

bsp/ft2004/libraries/bsp/ft_sd/ft_sdctrl.c:188–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

186}
187
188void FSdCtrl_ReadData(FT_INOUT FtsdCtrl_t *pFtsdCtrl,
189 FT_IN UINTPTR dataAddr,
190 FT_IN UINTPTR cardAddr,
191 FT_IN u32 blkNum)
192{
193 FSdCtrl_Config_t *pConfig;
194 Ft_assertVoid(FT_NULL != pFtsdCtrl);
195 pConfig = &pFtsdCtrl->config;
196
197 /* clear data status register and command status register */
198 Ft_out32(pConfig->baseAddress + BD_ISR_REG, BD_ISR_EN_ETRS);
199 Ft_out32(pConfig->baseAddress + NORMAL_INT_STATUS_REG, NORMAL_INT_EN_ECC);
200
201 /* set DMA BD */
202 Ft_setBit32((UINTPTR)(pConfig->baseAddress + SOFTWARE_RESET_REG_OFFSET), SOFTWARE_RESET_BDRST);
203 Ft_clearBit32((UINTPTR)(pConfig->baseAddress + SOFTWARE_RESET_REG_OFFSET), SOFTWARE_RESET_BDRST);
204
205 /* set transfer lenth */
206 Ft_out32(pConfig->baseAddress + BLK_CNT_REG, blkNum);
207
208 /* set DMA discriptor data low address,data high address,card low address,card high address*/
209
210 Ft_out32(pConfig->baseAddress + DAT_IN_M_RX_BD, dataAddr);
211 Ft_out32(pConfig->baseAddress + DAT_IN_M_RX_BD, 0);
212 Ft_out32(pConfig->baseAddress + DAT_IN_M_RX_BD, cardAddr);
213 Ft_out32(pConfig->baseAddress + DAT_IN_M_RX_BD, 0);
214}
215
216static ft_error_t FsdCtrl_privateSendCmd(FT_INOUT FtsdCtrl_t *pFtsdCtrl, FT_IN pFtsdCtrl_delayTimer_t pDelayTimer_fun, FT_IN u32 cmd, FT_IN u32 respType, FT_IN u32 arg)
217{

Callers 1

Calls 3

Ft_out32Function · 0.85
Ft_setBit32Function · 0.85
Ft_clearBit32Function · 0.85

Tested by

no test coverage detected