Цитата(defunct @ Feb 14 2009, 00:13)

- Есть еще какие-то другие причины инициализировать железо перед запуском приложения?
Резонно, т.к. там была редакция, которая куда-то исчезла. Звучало примерно: "между ресетом и запуском приложения". Где-то между этим, конечно, проверка.
Цитата(defunct @ Feb 14 2009, 00:13)

Первая и наиболее серьезная причина - влетели в бут нештатным образом (врезультате ошибки основного приложения).
Точно в начальный адрес загрузчика ? Или от балды ? Если первое, то у меня снова уйдет на начало приложения. Это пока. Хооший вопрос, кстати. Вероятно нужно посмотреть, что ресета не было и вообще остановить камень.
Цитата(defunct @ Feb 14 2009, 00:13)

Вторая причина - допустим Bootloader проверил целостность, и с апп - все Ок. Как теперь ему узнать надо обновлять прошивку или не надо?
Без инициализации периферии - никак (аргумент "аппликейшн сообщает" - не катит, т.к. такой подход добавляет зависимость между бутлоадером и приложением).
Очень даже как. Так же, как у атмела. По холодному старту ждем апдейт, если он не произошел, по таймауту собаки сваливаемся опять в загрузчик, проверяем как в него попали, проверяем флешь и если все нормально уходим в приложение.
Цитата(defunct @ Feb 14 2009, 00:13)

провести диагностику железа, отгрузить дамп/статисткику последнего запуска и т.п.).
А зачем этим всем заниматься загрузчику ? Вообще, какое назначение у загрузчика ? И самое интересное, как запихать все хотелки в тыщу слов ?
Цитата(defunct @ Feb 14 2009, 00:13)

Раз инициализируем хотя бы один пин хотя бы одного порта
В этом нет никакой необходимости.
Цитата(defunct @ Feb 14 2009, 00:13)

учитывать _всеми_ - кеми?
Программерами, схемотехниками, камнями, приложениями...
Цитата(defunct @ Feb 14 2009, 00:13)

Выключить периферию так, чтобы от железного сброса было не отличить - дело нехитрое.
Только для одного камня. Иначе хитрое.
Цитата(defunct @ Feb 14 2009, 00:13)

Насколько это сложно - сами видите, достаточно просто записать 0 в соотв. регистры периферии.
Вы явно не представляете по каким граблям прыгаете ATmega128.UCSRnC Initial Value 0 0 0 0 0 1 1 0
И, главное, закладываете эти грабли на будущее. Или есть какие-то гарантии, что оно еще и не изменится в новой ревизии ?
Цитата(defunct @ Feb 14 2009, 00:13)

Резетить контроллер из бутлоадера по WDT после проверки целостности прошивки чтобы запустить app, одним словом называется - дебилизм.
Конечно дебилизм, после проверки нужно идти в приложение, иначе зачем его проверять.
Цитата(defunct @ Feb 14 2009, 00:13)

а как вы запускаете приложение после обновления прошивки, ведь в процессе обновления прошивки вы периферию инициализируете, не так ли?).
Я же уже сказал - после ресета.
Цитата(defunct @ Feb 14 2009, 00:13)

По поводу сбрасывания WDT - тут строго говоря, всегда надо исходить из того, что по законам Мерфи WDT включен и обязательно с минимально возможным интервалом.
А это значит, что в некоторых случаях (низкая тактовая + обновление NRWW) может понадобиться хотя бы изменить его интервал, иначе МК может сброситься при выполнении SPM.
Конечно надо. В чем, собственно, проблема ?