Dimon456 писал(а):Что?
я понимаю, что каждый больше писатель, а не читатель, но мне казалось, что я достаточно детально описал
ЧТО.
Dimon456 писал(а):Вы что не можете отследить что комп передает
а вы можете отследить мысль в моём вопросе? надеюсь, вы догадываетесь, что я не стал бы спрашивать на форуме совета, если бы вопрос не был из ряда вон выходящим? уж какие-никакие навыки по поиску ошибок и отладке у меня имеются...
комп передает данные верно, и МК верно их принимает и прошивает, я об этом писал:
ARV писал(а):сама прошивка при этом верная (если программатором принудительно прошить нужное значение флага в EEPROM, то прошивка стартует и работает).
проблема в том, что по неизвестной причине на запись в EEPROM вот в этом месте
Код: Выделить всё
// Устанавливается флаг корректности прошивки
eeprom_update_byte(BOOT_FLAG_ADDR, FLAG_OK);
eeprom_busy_wait(); // ждем конца записи
asm volatile ("jmp 0x0000"); // и выполняется старт прошивки путем перехода на нулевой адрес.
влияет размер блока данных при обмене с компом!
IO_BLOCK_SIZE - это константа, задаваемая дефайном (одинаково для МК и для программы компа), она задает размер блока и может быть 8, 16, 32, 64 или 128 по моему хотению. но все работает только для 8 и 16, а для остального - прошивается верно, но в EEPROM не появляется отметки о верности прошивки!!!
ПОЧЕМУ?!