Цитата(Timofey @ Jul 12 2007, 21:21)

В функцию EFCWrite(); передается адрес 0x0030000 - область ОЗУ после ремапа, причем получается 196 608 байт, хотя у этого контроллера 64 кб ОЗУхи
или я не прав?
прав на 100%
#define TestAddr 0x0030000
при вызове EFCWrite(adr, pbuf, Len, NeedReset) adr должен показывать на адрес внутри флеша
#define AT91C_IFLASH ((char *)0x00100000) // Internal FLASH base address
#define AT91C_IFLASH_SIZE ((unsigned int) 0x00040000) // Internal FLASH size in byte (256 Kbytes)
причем не на начало, чтобы не стереть программу, можно так:
Код
#define TestAddr (AT91C_IFLASH+AT91C_IFLASH_SIZE-sizeof(buf1))
To Annuta: Полезно иногда заглядывать в файл AT91SAM7X256.h, там все константы описаны, чтоб не делать таких ошибок с размещением.