paska (25.11.2004 15:02, просмотров: 2492)
IAP в LPC2124 "улетает" ? пытаюсь записать/стереть флеш. Если не подготовить сектор (команда 50), подготовить не тот сектор, указать "плохой" адрес (не на нужной границе)и т.д., то все вроде бы нормально - говорит об ошибке и выходит. А если все сделать правильно, то IAP улетает на несуществующие адреса (0х8хххххх)в конце концов имеем Prefetch Abort.
Вот программа (ободрал из филипсовского примера)
unsigned long iap_cmd[5];
unsigned long iap_result[2];
#define IAP_LOCATION 0x7ffffff1
typedef void(*IAP)(unsigned long [], unsigned long[]);
IAP iap_entry = (IAP) IAP_LOCATION;
iap_cmd[0] = 50;
iap_cmd[1] = 8;
iap_cmd[2] = 8;
iap_entry(iap_cmd, iap_result);
iap_cmd[0] = 51;
iap_cmd[1] = 0x10000;
iap_cmd[2] = (unsigned long)v;
iap_cmd[3] = 512;
iap_cmd[4] = 60000;
iap_entry(iap_cmd, iap_result);
опция Thumb Interwork включена. пользую CW 1.2 + JTAG