Пытался писать через IAP во внутреннюю флэш lpc2103.
В 7-ом сегменте флэш выделил последние 256 байт под массив с помощью линкера...
#define IAP_LOCATION 0x7ffffff1
unsigned int command[5];
unsigned int result[2];
typedef void (*IAP)(unsigned int [],unsigned int[]);
IAP iap_entry = (IAP) IAP_LOCATION;
command[0] = 50;
command[1] = 7;
command[2] = 7;
iap_entry (command, result);
RAMdata[0] = 0x0;
RAMdata[1] = 0x1;
RAMdata[2] = 0x2;
RAMdata[3] = 0x3;
RAMdata[4] = 0x4;
command[0] = 51;
command[1] = (unsigned int) ROMdata;
command[2] = (unsigned int) RAMdata;
command[3] = 256;
command[4] = 32211;
iap_entry (command, result);
Оба вызова функции возвращают CMD_SUCCESS, но во флэш данные не изменяются. Не пойму - как такое может быть? Куда копать? Прерывания запрещены, тумб включен, в RAM верхние 32 байта - не трогаю, пишу в Keil.