|
|
  |
Можно ли обойтись без кнопки в бутлодере, avr109 + avrOSP |
|
|
|
Jul 19 2007, 07:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Бутлоадер лучше держать в секции для бутлоадера весь. А так как по факту после его применения нужно рестартовать, то выход из него прямо на вектор 0. А вот как входить, тут есть варианты - по влючению питания - ноу-хау. Отдаю. http://caxapa.ru/76325.html?hilite=%ED%EE%F3-%F5%E0%F3Ещё входить можно по сигналу Bbreak
--------------------
aka Vit
|
|
|
|
|
Jul 19 2007, 08:38
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Цитата(sensor_ua @ Jul 19 2007, 10:35)  А вот как входить, тут есть варианты - по влючению питания - ноу-хау. Отдаю. http://caxapa.ru/76325.html?hilite=%ED%EE%F3-%F5%E0%F3Ещё входить можно по сигналу Bbreak Простите, не понял: "На вывод Tx камня вешаем подтяжку 100 кОм и от ноги на джампер на общий ставим 10 кОм. При включении ставим ногу на вход, смотрим, не установлен ли джампер, принимаем решение, потом переводим ногу на выход..." Подробнее, пожалуйста вторую часть первого предложения. Что куда подключать? Не пойму смысла этих манипуляций. Получается, чтобы перепрошить, надо разбирать корпус и менять перемычки? И что такое сигнал Bbreak ?
|
|
|
|
|
Jul 19 2007, 09:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Если просто не хватает ног, а не в целях неразборности прибора, то описанный способ экономит один пин для получения сигнала о принудительном входе в бутлодырь после сброса. Bbreak - это ошибочка - сигнал называется Break - выдаётся в COM-порт. Выглядит как длинный логический ноль, не помню сколько минимум, но вроде не меньше длительности 3-х байт. Виндовс умеет. Пользоваться можно только по месту, потому как (насколько я знаю), удалёно не передаётся. Нажимаете в проге кнопу - у Вас генерится Break, Вы перевключаете питание прибора, бутлодырь находит, что у него после сброса на входе Break, и не передаёт управление основной программе. Далее могут быть вариации с таймаутами и прочими способами выхода из бутлодыря
--------------------
aka Vit
|
|
|
|
|
Jul 19 2007, 10:31
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(alux @ Jul 19 2007, 13:06)  Ну и чем этот вариант лучше, чем тот, что я описал в первом посте с WatchDog? Я ж говорил, чтобы без перевключения питания. Как заметил sensor_ua тут много разных ноу-хау. Дарю свою, которую в свое время еще в ru.embedded подсказал vmp: Все порты ввода-вывода после сброса всегда настроены на ввод. Берете какую-либо ногу, которая при нормальной работе должна быть настроена на вывод (например, на ней светодиод). Загрузчик при старте проверяет направление этой ноги. Если нога настроена на вывод - он переходит в режим программирования. Если нога настроена на ввод - он проверяет контрольную сумму программы. Если совпала - старт программы. Если не совпала - он переходит в режим ожидания команды начала программирования по интерфейсу связи. Программа, в нормальном режиме получив команду "вход в режим программирования" просто переходит по адресу BOOT_RESET, т.е. на начало загрузчика. Единственное - надо внимательно следить за инициализацией, т.е. загрузик должен отключить все прерывания, которые могу быть в основной программе.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|