реклама на сайте
подробности

 
 
> bootloader
maloii
сообщение Sep 26 2009, 21:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 29-02-08
Пользователь №: 35 472



Подскажите что выбрать, запутался совсем. Хочу шить контроллер (atmega168) через UART. USB=>UART имею. Поискал в инете но совсем запутался, куча предложений. Так же хотел бы бутлоадер для которого не надо резетить чип чтобы прошить(просто на плате есть только выход UART). Везде описывают что файл бутлоадера я должен сам компилить, неужели готовых хексов никто не сделал?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
manul78
сообщение Sep 26 2009, 22:31
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



maloii ! Поставьте конкретный и последовательный вопрос, а то получается "желаю купить дом - но не имею возможности,
имею возможность купить козу - но не имею желания..." biggrin.gif

Как я понял из ваших слов:

1) У Вас есть пустой МК ATmega168 и вы желаете менять память программ через UART.
2) Вам придется написать основную программу которая будет опрашивать UART и по какому-то "волшебному слову" переда-
вать "бразды правления" программе бутлоадера (которую придется тоже написать самому).
3) Программа бутлоадера будет получать данные через UART и соответственно заполнять ими память основной программы,
после чего опять передаст "бразды правления" основной программе.

Сложные и заковыристые "танцы с бубнами" cranky.gif , но теоретически решаемые... smile.gif

И что это за устройство такое чудное ?


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
maloii
сообщение Sep 27 2009, 07:03
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 29-02-08
Пользователь №: 35 472



Цитата(manul78 @ Sep 27 2009, 02:31) *
1) У Вас есть пустой МК ATmega168 и вы желаете менять память программ через UART.
2) Вам придется написать основную программу которая будет опрашивать UART и по какому-то "волшебному слову" переда-
вать "бразды правления" программе бутлоадера (которую придется тоже написать самому).
3) Программа бутлоадера будет получать данные через UART и соответственно заполнять ими память основной программы,
после чего опять передаст "бразды правления" основной программе.

Я собрал плату с мегой 168, но для упрощения схемы выходы для ISP не стал делать, но на плате есть выход UART. Кнопочек для резета не делал. К чипу просто подпоялся и залить прошивку через ISP могу. Саму программу для этого чипа написал, но на будущее охота обновлять прогу через uart. С бутлоадерами раньше не общался и поэтому возник вопрос какой же выбрать, какой прогой шить и как обойти надобность кнопочки резет которой нет на плате.
С низу приложил файл с разводкой, просто плата настолько малюсенькая что разъем для программирования там будет лишний, а вот обновлять прошивку возможно придется часто.

Сообщение отредактировал rezident - Sep 27 2009, 19:01
Причина редактирования: Излишнее цитирование.

Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 27 2009, 08:02
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(maloii @ Sep 27 2009, 11:03) *
Я собрал плату с мегой 168, но для упрощения схемы выходы для ISP не стал делать, но на плате есть выход UART. Кнопочек для резета не делал. К чипу просто подпоялся и залить прошивку через ISP могу. Саму программу для этого чипа написал, но на будущее охота обновлять прогу через uart. С бутлоадерами раньше не общался и поэтому возник вопрос какой же выбрать, какой прогой шить и как обойти надобность кнопочки резет которой нет на плате.
С низу приложил файл с разводкой, просто плата настолько малюсенькая что разъем для программирования там будет лишний, а вот обновлять прошивку возможно придется часто.


В Вашем случае проще. У ATmega168 немножко другая организация памяти. Она делится на 2 части:

1) RWW (чтение при записи)
2) NRWW (нет чтения при записи)

Условно можно обозначить, что секция прикладной программы это RWW, а секция загрузчика - NRWW.

Cоответственно можно написать обработчик прерывания для UART. Т.е. получив от внешнего источника определенный
байт ("волшебное слово" например 0xFF или серию байт например "I WANT UPDATE") обработчик передаст управление
программе JMP или CALL расположенной в области NRWW. Там будет код, который будет читать информацию через
UART и писать её в область RWW. После окончания "перезаписи" осуществляем переход JMP или RET обратно в область
RWW где находится Ваша основная (обновленная) программа.

P.S. Старички меня поймут, вспомнят и улыбнутся (хотя мне всего 32 года). Раньше во времена "суперкомпьютеров"
ZX-SPECTRUM небезизвестный Bill Gilbert таким макаром защищал программы от взлома и перезаписи. Т.к. битва
шла практически за каждый байт (48 кБ оперативки) то при считывании игры с кассеты сначала считывался "заг-
рузчик" который затем считывал основную программу, и фишкой было когда программа загрузчика делала CALL
из "загрузчика" а возращалась (беря адрес возврата из стека) уже по перезаписанному в процессе загрузке адресу
тем самым стартуя основную программу (игру). Эх были времена... rolleyes.gif

Цитата(maloii @ Sep 27 2009, 11:03) *
С низу приложил файл с разводкой, просто плата настолько малюсенькая что разъем для программирования там будет лишний, а вот обновлять прошивку возможно придется часто.


Зря, Вы уважаемый сразу ударились в "миниатюры". Сначала надо было "откатать" устройство на "монтажке", потому как
в процессе разработки и отладки всегда бывают "подводные камни". Это я Вам как неоднократно "садившийся на мель"
говорю. smile.gif

Кстати, ATMEL предлагает совершенно бесплатную программу FLIP, и уже готовый фирменный бутлоадер для неё. Т.е.
Например AT90USB162 (с встроенным USB) позволяет залив сначала в чип специальный бутлоадер производить посредством
программы FLIP операции аналогичные ISP программатору только напрямую через USB. Поддерживает она (FLIP) и microLAN
и CAN и по моему даже RS-232... (!). Посмотрите даташит на нее, возможно для Вашего МК есть готовое решение, в против
ном случае Вам придется еще писать программу-терминал (для РС) обмена между компьютером и Вашим устройством.


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016