TamTam 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба Довел до ума програмку зашил в мк и вот бли не задача не работает, Думаю ну ладно может где напортачил, перелистал код все ок, Вот только в майне у меня есть токая строка void main(void) { init; if (byte_read(0)==0) { #ifdef DEBUG putsf("FIRST RUN !!!\n\r"); #endif byte_write(126,0); byte_write(127,0); } // ну и далее код } тут я понял что чтото с eeprom-ом случилось, а чем посмотреть??? Ну значит тыкаю на кнопку (запустить программатор), вижу есть прочесть eeprom, ну я туда а он не читает. Так вот я подумал что пипец рому, ну запутил риал, читает все ок, но ведъ в CVAVR поудобней будет, и тут я заметил что если проект не открыт, то читает и всек остальное нормально а если проджект открыт то пипец (и тут я заметил). Что в окошке EEPROM в поле адрес окончания стоит 0 а не 7F поставил 7F и все ок но оно все время от туда слетает, Может кто знает как решить данный трабл (чтод не ставить туда каждый раз адрес последнего байта), или разработчик так задумал ???? Может где галочку поставить нода ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба А может в проекте неправильно проц указан? Может у того, который указан и EEPROMa-то нет. 0-ой адрес в EEPROMе не советовал бы использовать. Это "мусорный" нулевой байт. Иногда стирается при случайных сбросах. И это. Если проверяете в "if" так после "if" нужно же его прописывать ненулевым значением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamTam 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба А может в проекте неправильно проц указан? Может у того, который указан и EEPROMa-то нет. 0-ой адрес в EEPROMе не советовал бы использовать. Это "мусорный" нулевой байт. Иногда стирается при случайных сбросах. И это. Если проверяете в "if" так после "if" нужно же его прописывать ненулевым значением. В проджекте указан 90S2313, а вот если в окне програматора поменять его на самого себя все становиться ок , но потом всеравно обваливается. А какова вероятноть того что он будет затераться??? а то я уже сурц отдал. а в этом байте храниться информация о количестве ключей записанных в память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamTam 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба А может в проекте неправильно проц указан? Может у того, который указан и EEPROMa-то нет. 0-ой адрес в EEPROMе не советовал бы использовать. Это "мусорный" нулевой байт. Иногда стирается при случайных сбросах. И это. Если проверяете в "if" так после "if" нужно же его прописывать ненулевым значением. В проджекте указан 90S2313, а вот если в окне програматора поменять его на самого себя все становиться ок , но потом всеравно обваливается. А какова вероятноть того что он будет затераться??? а то я уже сурц отдал. а в этом байте храниться информация о количестве ключей записанных в память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 1 июня, 2006 Опубликовано 1 июня, 2006 · Жалоба Вероятность пропорционально частоте записи в епром по любым адресам, делённая на всё время и умноженная на вероятность сброса (пропадения питания). Короче, если во время записи в епром проц аппаратно сбросится (питание, вачдог и др.) то нулевой байт затрётся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
chronoman 0 4 июня, 2006 Опубликовано 4 июня, 2006 · Жалоба а вот мне видится, что такая вот самопроизвольная порча еепромов в АВРках описана в эррартах, там сказано, что есть проблема со сбросом по питанию, если ставить внешние супервизоры такие как LM809, MAX809 или что то посерьезней, то все будет окей. Они вроде бы переделали потом схематику в мегах, но я все равно ставил эти трехножки, они копейки стоили и занимали на плате минимум места. Хотя может действительно я что-то не догонял все это время. У меня много реальных проектов, в которых первая (нулевая) ячейка использовалась (там был последний конфигурируемый IP-адрес устройства), если бы он накрывался, то девайс бы сразу же вырубался, а этого не припомнится, их уже более двух сотен спокойненько день изо дня работают на заводах заказчика и летают в наших отечественных самолетах. Может надо срочно делать апдейт ембеддед программ, а то падать начнут :( И еще у меня еепромка обычно промаскирована в шахматном порядке какой-то константой, при каждой загрузке я проверяю эту маску, если в ней что то не так, то как минимум светодиодик. сообщение на верх системы по какому нить интерфейсу. Потому что в еепромке часто хранятся важные константы, уставки, калибровки, если они собъются, система получит некорректный алгоритм управления и это может закончится не только плачевно для системы, сколько для объекта, которым она управляет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj78 0 4 июня, 2006 Опубликовано 4 июня, 2006 · Жалоба По поводу порчи еепрома- я всегда забиваю первые 10 байт какой-нибудь фигней, а все данные хранятся начиная с 10-го байта. До 10-го байта порча не доходила у меня никогда :) а вот , примногократном перепрограммировании, некоторые еячейуки переставали работать. примерно через год эксплуатации. это я в программе установок сделал мигание на ЖКИ устанавливаемого параметра (проект был программатор таймера), примерно с частотой 5гц, и с этой частотой переменные еепром переписывались. через год эксплуатации наиболее часто изменяемые параметры перестали меняться :). сделал буфер в озу- все прошло.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться