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

Function FSdCtrl_WriteData

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

Source from the content-addressed store, hash-verified

160}
161
162void FSdCtrl_WriteData(FT_INOUT FtsdCtrl_t *pFtsdCtrl, FT_IN UINTPTR dataAddr,
163 FT_IN UINTPTR cardAddr, FT_IN u32 blkNum)
164{
165
166 FSdCtrl_Config_t *pConfig;
167 Ft_assertVoid(FT_NULL != pFtsdCtrl);
168 pConfig = &pFtsdCtrl->config;
169
170 /* write 1 to clear data status register and command status register */
171 Ft_out32(pConfig->baseAddress + BD_ISR_REG, BD_ISR_REG_TRS);
172 Ft_out32(pConfig->baseAddress + NORMAL_INT_STATUS_REG, NORMAL_INT_STATUS_CC);
173
174 /* set DMA BD */
175 Ft_setBit32((UINTPTR)(pConfig->baseAddress + SOFTWARE_RESET_REG_OFFSET), SOFTWARE_RESET_BDRST);
176 Ft_clearBit32((UINTPTR)(pConfig->baseAddress + SOFTWARE_RESET_REG_OFFSET), SOFTWARE_RESET_BDRST);
177
178 /* set transfer lenth */
179 Ft_out32(pConfig->baseAddress + BLK_CNT_REG, blkNum);
180
181 /* set DMA discriptor data low address,data high address,card low address,card high address*/
182 Ft_out32(pConfig->baseAddress + DAT_IN_M_TX_BD, dataAddr);
183 Ft_out32(pConfig->baseAddress + DAT_IN_M_TX_BD, 0);
184 Ft_out32(pConfig->baseAddress + DAT_IN_M_TX_BD, cardAddr);
185 Ft_out32(pConfig->baseAddress + DAT_IN_M_TX_BD, 0);
186}
187
188void FSdCtrl_ReadData(FT_INOUT FtsdCtrl_t *pFtsdCtrl,
189 FT_IN UINTPTR dataAddr,

Callers 1

Calls 3

Ft_out32Function · 0.85
Ft_setBit32Function · 0.85
Ft_clearBit32Function · 0.85

Tested by

no test coverage detected