SWRU543B January 2019 – June 2025 CC3230S , CC3230SF , CC3235MODS , CC3235MODSF , CC3235S , CC3235SF
The code that follows shows a block write using peripheral APIs:
Unsigned long CardWriteBlock(CardAttrib_t *Card, unsigned char *pBuffer,
unsigned long ulBlockNo, unsigned long ulBlockCount)
{
unsigned long ulSize;
unsigned long ulBlkIndx;
ulBlockCount = ulBlockCount + ulBlockNo;
for(ulBlkIndx = ulBlockNo; ulBlkIndx
<ulBlockCount; ulBlkIndx++)
{
ulSize = 128;
if(Card->ulCapClass == CARD_CAP_CLASS_SDSC)
{
ulBlockNo = ulBlkIndx * 512;
}
if( SendCmd(CMD_WRITE_SINGLE_BLK, ulBlockNo) == 0 )
{
// Write the data
while(ulSize--)
{
SDHostDataWrite(SDHOST_BASE,*((unsigned long *)pBuffer));
pBuffer+=4;
}
// Wait for transfer completion.
while( !(SDHostIntStatus(SDHOST_BASE)
&SDHOST_INT_TC) );
}
else
{
return 1;
}
}
// Return error
return 0;
}