AndreyVN 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба Ты файл прошивки-то будешь показывать? Чтобы не гадать, может у тебя программа какя-то кривая... Зипом запакуй. Куда'ж теперь деваться :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Joy 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба Ты файл прошивки-то будешь показывать? Чтобы не гадать, может у тебя программа какя-то кривая... Зипом запакуй. Куда'ж теперь деваться :) пардоньте, а где прописана точка входа в прграмму? прыжки на прерывания? инициализация стеков? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyVN 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба пардоньте, а где прописана точка входа в прграмму? прыжки на прерывания? инициализация стеков? Так это "С" делает сам. Если дизасемблировать программу (AVR Studio) видно, что по адресу 0000 сидит RJMP на программу, RJMPы на другие прерывания, перед main сидит куча присвоений в которых спрятаны организация стека и т.п. Или я не прав? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Joy 0 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба пардоньте, а где прописана точка входа в прграмму? прыжки на прерывания? инициализация стеков? Так это "С" делает сам. Если дизасемблировать программу (AVR Studio) видно, что по адресу 0000 сидит RJMP на программу, RJMPы на другие прерывания, перед main сидит куча присвоений в которых спрятаны организация стека и т.п. Или я не прав? вот этого я не скажу, с авр-студией никогда не общался, пишу в вижуал студио и использую иаровский компилятор из командной строки. все инициализации явно прописываю ручками. скажу только, что если до ф-ии main дело не доходит, то очень возможно проблема именно вэтих самых джампах :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starter48 7 17 октября, 2006 Опубликовано 17 октября, 2006 · Жалоба Ты файл прошивки-то будешь показывать? Чтобы не гадать, может у тебя программа какя-то кривая... Зипом запакуй. Куда'ж теперь деваться :) Я зашил Port.hex в Mega8L-8PI и на 14 и 15 ногах (PB0,PB1) появились импульсы с частотой ~71.5кгц. Мега сконфигурирована на работу от внутреннего осциллятора 1Мгц. Вот мои фьюзы, на всяк случай: BLEV = 1 BODEN = 0 SUT = 0 CKSEL = 1 BLB1 = 3 BLB0 = 3 WDTON = 1 CKOPT = 0 EESV = 0 BSIZ = 0 BRST = 1 Так что это у тебя в железе что-то не то. Всё-таки попробуй прошить именно Port.hex и именно через avreal: avreal32.exe -as -p1 +mega8 -o1000 -e -w -v Port.hex но предварительно поставь фьюзы как у меня - для чистоты эксперимента. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyVN 0 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Братцы, все заработало! Спасибо всем за обсуждение. Если коротко, то в меге сидело не то, что я зашивал, помогло EraseChip. Summary по этому топику: Шьем Atmega8 через CodeVisonAVR и пользуемся AVRStudio4 как дизассемблером. 1) В программаторе CodeVisonAVR установлен флажок veryfy - Не верим ему. 2) После программирования выполняем Read Flash, затем Compare Flash - выскакивает индикатор прогресса и не говорит ничего плохого - Не верим результату. 3) Выполняем Read Flash и сохраняем содержимое как *.hex затем запускаем AVRStudio, открываем сохраненный файл, дизассемблируем его и смотрим что реально попало в Atmega. (Сравнить газами первый и последний байты - недостаточно.) У меня в середине программы оказались какие-то вопросы, и вообще нечто не похожее на мою программу. Не лишне будет сравнить тактовую частоту, которыя прошита в регистре OSCCAL, и видна в AVRStudio в разделе Processor. 4) Если программа отличается от того что должно попасть в mega, следует выполнить Erase Chip и повторить прошивку Flash и Fuse bits (последнее может и не обязательно, не знаю). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyVN 0 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Я зашил Port.hex в Mega8L-8PI и на 14 и 15 ногах (PB0,PB1) появились импульсы с частотой ~71.5кгц. Мега сконфигурирована на работу от внутреннего осциллятора 1Мгц. Нет, фьюзы в hex файле вообще не прписаны, они шьются отдельно. Похоже у тебя в меге установлены заводские фьюзы по умолчанию (1 МГц, внутренний генератор). У меня мега засвистела на частоте кварца 4 МГц, выходную частоту порта (по осциллографу) я поделил на число команд в цикле, получилось 3,3 МГц на одну команду, наверное какие-то команды двухтактные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starter48 7 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Нет, фьюзы в hex файле вообще не прписаны, они шьются отдельно. Разве кто-то утверждал обратное? :) Похоже у тебя в меге установлены заводские фьюзы по умолчанию (1 МГц, внутренний генератор). Да, похоже, ты прочитал только первое предложение из того, что я написал ;) [...] 1) В программаторе CodeVisonAVR установлен флажок veryfy - Не верим ему. 2) После программирования выполняем Read Flash, затем Compare Flash - выскакивает индикатор прогресса и не говорит ничего плохого - Не верим результату. [...] Ужос! :cranky: Рекомендую ещё помучаться и разобраться более точно, ибо верификация должна нормально работать и верить ей можно. По кр. мере у меня если флеш не стирать, то верификация не проходит. А в понипроге тоже верификация проходила? 4) Если программа отличается от того что должно попасть в mega, следует выполнить Erase Chip и повторить прошивку Flash и Fuse bits (последнее может и не обязательно, не знаю). Обычно erase делают перед каждой прошивкой, если, конечно, программатор сам не делает это. А фьюзы достаточно прошить один раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndreyVN 0 18 октября, 2006 Опубликовано 18 октября, 2006 · Жалоба Ужос! :cranky: Рекомендую ещё помучаться и разобраться более точно, ибо верификация должна нормально работать и верить ей можно. По кр. мере у меня если флеш не стирать, то верификация не проходит. А в понипроге тоже верификация проходила? Я PonyProgom всего один раз шил, уже не помню что там было. Понравился сервис CodeVision, на него и перебрался. К стати, возможно у нас разные версии, у меня CVAVR 1.24.8d Professional. Я с этим несколько дней бился, именно считая, что раз верификация установлена - результат прошивки проверять не обязательно. В качестве дополнительной проверки пробовал Read Flash, затем Compare Flash, выскакивал прогресс бар и ничего больше не говорил. Это я воспринимал как test OK. Erase не пользовался никогда. Зачем что-то стирать, он же проверил что реально прошилось в мегу. А когда дизасемблировал то что прочитал из флешки - ужаснулся, вроде мой код, но с большим количеством ошибок. К стати, в СodeVision можно управлять частотой на котоой он прошивает мегу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 19 октября, 2006 Опубликовано 19 октября, 2006 · Жалоба не знаю,я шью программатором CV постоянно через тот-же stk-200,никогда проблем не было.Попробуй зайди в setting->programmer,там будет чек-бокс delay multiplier,у меня стоит 1,попробуй увеличить. Да,и в progect->configure частота чипа правильно выставлена?программатор данные оттуда берет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться