Цитата(aaarrr @ May 19 2010, 14:45)

Флеш всегда доступна для произвольного чтения (кроме моментов записи), со стороны процессора чтение происходит совершенно прозрачно.
Запись осуществляется только постранично. Буфер страницы отражен в адресное пространство флеш и доступен только для записи. Запись в буфер может производиться только 32-битными словами.
понял спс.
Но не хочет писать. Не знаю почему. Подскажите ошибку!
Код
// Check. Region is locked.
if( ( AT91C_BASE_MC->MC_FSR & (unsigned int)AT91C_MC_LOCKS15) )
{
// Unlock
// Removes protection from the field memory.
AT91C_BASE_MC->MC_FCR = AT91C_MC_KEY | AT91C_MC_PAGEN | AT91C_MC_FCMD_UNLOCK;
// Waiting end operations.
while( !(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) );
}
int iSizeSettingStruct = sizeof(sSetingsStruct);
if ( (iSizeSettingStruct % 4) || iSizeSettingStruct > AT91C_IFLASH_PAGE_SIZE )
return false;
unsigned int *puiPoint;
puiPoint = (unsigned int *) ADDR_SETTINGS_STRUCT; // last page
// Copy to buffer page.
memcpy( puiPoint, &sSetingsStruct, iSizeSettingStruct);
// Command to record pages
AT91C_BASE_MC->MC_FCR = AT91C_MC_KEY | AT91C_MC_PAGEN | AT91C_MC_FCMD_START_PROG;
// Waiting end operations.
while( !(AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) );