Не забудьте в MC_FMR записать корректные значения.
Цитата(Spoofing @ Jun 23 2009, 19:44)

Код
while(!( f_pMC->MC_FSR) & AT91C_MC_FRDY);
if((f_pMC->MC_FSR & AT91C_MC_LOCKE) || (f_pMC->MC_FSR & AT91C_MC_PROGE))
{
return -1;
}
return 0;
Здесь потеряете биты ошибок в MC_FSR.
Цитата(Spoofing @ Jun 23 2009, 19:44)

Код
while(!( f_pMC->MC_FSR) & AT91C_MC_FRDY);
Здесь скобки стоят неправильно.