Ce test écrit une suite d'octets de valeurs croissantes (0x00 à 0xFF) dans le secteur de numéro TEST_SECTOR, puis relit ce secteur en vérifiant que les données lues correpondent à celles écrites. Si cela fonctionne, la LED1 clignote régulièrement, sinon elle flashe rapidement.
#include <string.h>
#include <avrio/led.h>
#include <avrio/button.h>
#include <avrio/mmc.h>
#include <avrio/spi.h>
#include <avrio/delay.h>
#define TEST_SECTOR 0
static void
vAssert (bool test) {
if (test == false) {
for (;;) {
}
}
}
int
main (void) {
uint8_t * pucBuffer = ucBuffer;
uint16_t usIndex;
vMmcInit();
for (;;) {
while (xMmcIsDetected() == false) {
}
pucBuffer = ucBuffer;
*pucBuffer++ = (uint8_t) usIndex;
}
pucBuffer = ucBuffer;
pucBuffer = ucBuffer;
memset (pucBuffer, 0, MMC_SECTOR_SIZE);
pucBuffer = ucBuffer;
vAssert (*pucBuffer++ == (uint8_t) usIndex);
}
;
vMmcClose();
;
}
}
return 0;
}