Пытался писать через 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.
Сообщение отредактировал ASergej_R19 - Jun 21 2008, 18:02
|