kostik2 0 24 июня, 2009 Опубликовано 24 июня, 2009 · Жалоба заинтересовался проблемой самопрограммирования меги. нашел в iccv7avr\examples.avr\appnote109 код для него. но вот никак не могу уместить в голове как же им все атки воспльзоваться. void main(void) { void (*funcptr)( void ) = 0x0000; // Set up function pointer if (PROGMODE) //If PROGPIN is pulled low: programmingmode. { ...код для загрузчика } else { funcptr(); // Jump to Reset vector 0x0000 in Application Section } а где код основной проги поместить ? как в контроллер записать только в область загрузчика ? если я правильно понимаю то вот этот ****.hex должен быть записан в область загр-ка, первоначально, затем надо отдельно запрограммировать код что-ли или как ? у меня ICC_AVR пользуюсь AVR_ISP программатором. мне вот не совсем понятен механизм (т.е поорядок действий для работы с bootloadrom) помогите разобраться плиз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 24 июня, 2009 Опубликовано 24 июня, 2009 (изменено) · Жалоба Нигде не нужно размещать. Компилируешь этот код, записываешь его программатором в мегу. Потом компилируешь программу как обычно (со своей main(), как будто нет никакого бутлоадера). Ну и зажимашь PROGPIN в 0 и делаешь ресет контроллера. Он при этом перейдет в режим программирования. И скомпилированную программу передаешь через тот интерфейс, через который ее ждет бутлоадер. Естественно формат бинарника и ожидаемый бутлоадером должны совпадать. Изменено 24 июня, 2009 пользователем Taradov Alexander Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 24 июня, 2009 Опубликовано 24 июня, 2009 · Жалоба но вот никак не могу уместить в голове как же им все атки воспльзоваться. А разве эта тема уже не обсуждалась? а где код основной проги поместить ? Основную прогу вы будете создавать так, как будто у вас нет бутлоадера как в контроллер записать только в область загрузчика ? В проекте загрузчика надо указать линкеру по начиная с какого адреса он должен размешать ваш проект, т.е. адрес начала секции загрузчика. если я правильно понимаю то вот этот ****.hex должен быть записан в область загр-ка, первоначально, затем надо отдельно запрограммировать код что-ли или как ? Сначала вы AVR-ISP зашиваете ваш загрузчик, настраиваете фузы, чтобы контроллер стартовал при ресете с адреса загрузчика, а не с нулевого адреса. Ваш загрузчик должен поддерживать какой-то протокол с компьютером. Это может быть протокол AVR-ISP, а может быть и совершенно другой (это уж как вы загрузчик напишите). Далее запускается компьютерная программа (к компу должен быть подключен ваш девайс) и с помощью этой проги уже грузите основную программу. По окончания программирования загрузчик должен получить команду старта основной проги. Примерно так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kostik2 0 24 июня, 2009 Опубликовано 24 июня, 2009 · Жалоба спасибо. буду пробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
delphi_night 0 11 марта, 2011 Опубликовано 11 марта, 2011 · Жалоба Перепробовал несколько бутлодеров. Вердикт один - большинство ненадежные, со временем прошивка приходит в негодность, так как при включении контроллера скорее всего счетчик команд при старте меняется хаотично и попадает в область записи во флеш. В конце концов нашел бутлодер от Chip45. Вот тут неплохо про него написано: http://robot-develop.org/archives/1092 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 7 12 марта, 2011 Опубликовано 12 марта, 2011 (изменено) · Жалоба Перепробовал несколько бутлодеров. Вердикт один - большинство ненадежные, со временем прошивка приходит в негодность Это как это? Байты стареют и уходят на пенсию? Или счетчик команд с бодуна по утрам? Как-то вы не так бутлоадеры тестировали... ЗЫ. И статейку свою в блоге (или где там ваша ссылка?) подкорректируйте, неправильная она, вводит в заблуждение начинающих. Никогда ни у одного атмеловского проца не наблюдал хаотической работы счетчика команд. Все вполне предсказуемо и в полном соответствии с даташитом. Да у других процев, с которыми работаю уже где-то за 25 лет, не видел никаких хаосов в работе счетчиков команд. Изменено 12 марта, 2011 пользователем V_G Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба ...при старте меняется хаотично и попадает в область записи во флеш.. голимый пиар и туфта. сейчас занимаюсь именно боевым бутлоадером. именно по модбасу. именно без всяких дополнительных нажатий кнопок со стороны девайса. именно отказоусточивого, закрытый канал, программируется паралельно основной работе. сбоев замечено не было. тестовый камень- 128 мега. так, что не надо лохматить бабушку... как уже было сказано выше - ерунду говорите. (круглый) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Перепробовал несколько бутлодеров. Вердикт один - большинство ненадежные, со временем прошивка приходит в негодность, Это не бутлоадеры ненадежные, а схема ваша такая. Если в программе есть команда SPM (а в любом бутлоадере она есть) - нельзя работать без супервизора питания (он же BOD). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Marto 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Ни разу не встречались зависающие загрузчики... Впервые слышу, что через некоторое время адрес старта "уплывает" куда-то... Бут ведь для того и бут, хранится в другом конце флеша и пишет исполняемый код с начальных адресов... действительно как то странно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VovkaSOL 0 15 марта, 2011 Опубликовано 15 марта, 2011 · Жалоба Сделайте свой загрузчик, это совсем не трудно, я для меги начинал. Там главное разобраться чтоб прога комипилилась по верхним адресам. Если что могу дать проект на gcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gambit 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба сейчас занимаюсь именно боевым бутлоадером. именно по модбасу. именно без всяких дополнительных нажатий кнопок со стороны девайса. именно отказоусточивого, закрытый канал, программируется паралельно основной работе. сбоев замечено не было. Ой, как интересно! А можно посмотреть код? Хотя бы первые версии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться