Возникла проблема. Почему-то не программируется flash-память с помощью оперции IAP.
Использую стандартный код
Код
#define IAP_LOCATION 0x7ffffff1
unsigned long iap_command[5];
unsigned long iap_result[3];
...........
iap_entry(iap_command, iap_result); // и др.команды
unsigned long iap_command[5];
unsigned long iap_result[3];
...........
iap_entry(iap_command, iap_result); // и др.команды
Чтение версии загрузчика с помощью дает нужный результат,т.е. операция срабатывает.
Например, хочу запрограммировать один 7-й сектор:
Код
iap_command[0] = 50;
iap_command[1] = 7;
iap_command[2] = 7;
iap_entry(iap_command, iap_result);
iap_command[0] = 51;
iap_command[1] = 0x7000;
iap_command[2] = (unsigned long)RAMbuffer;
iap_command[3] = 4096;
iap_command[4] = SYS_GetFsclk()/1000;
iap_entry(iap_command, iap_result);
iap_command[1] = 7;
iap_command[2] = 7;
iap_entry(iap_command, iap_result);
iap_command[0] = 51;
iap_command[1] = 0x7000;
iap_command[2] = (unsigned long)RAMbuffer;
iap_command[3] = 4096;
iap_command[4] = SYS_GetFsclk()/1000;
iap_entry(iap_command, iap_result);
Перед выполнением этих операций считываю содержимое сектора 7 и выбрасываю через com-порт на терминал
После выполнения каждой операции на комп отправляется результат операции. Получаю код CMD_SUCCESS = 0,т.е. все хорошо, а
затем считываю вновь содержимое сектора 0x7000. Получаю те же самые нули, что и были до программирования,т.е. сектор не запрограммировался...
Не понимаю, что не так...