Задолбался я с этим кеилом. Пишу такую прогр.:
char const MyText[128] __at(0x31000) = "тра-ля-ля"; /важно!!!
unsigned int z; char k[1]; volatile char ex1,ex2;
int main (void) { unsigned int i;
memcpy(k,MyText,1);
for (i = 0; i < sizeof (vals); i++) { vals[i] = (unsigned char) i;
ex1=MyText[1];
erase (0x30000, 0x31FFF); //Стирание IAPом program ((unsigned int)MyText, vals, sizeof (vals)); // Запись во флешь IAPом ex2=MyText[2];
while (1); }
Отлаживаюсь ULINKом.
После закрузки вижу по адресу 0x31000 результат программирования programm...
Если комментирую programm(...), вижу стертые сектора (результат работы erase(...)
Если комментирую и programm и erase вижу нормально прошитое "тра-ля-ля"
Отключение оптимизации не помогает.
Что-то уже нет мыслей никаких...
|