Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.95/82: Рейтинг темы: голосов - 82, средняя оценка - 4.95
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
1

Bootloader

23.02.2015, 15:03. Просмотров 14940. Ответов 25
Метки нет (Все метки)

Наступил момент использования boottooder-а. Поступил заказ на серию блоков управления. В дальнейшем возможно изменение программы для расширения функций. Разбирать корпуса, чтобы залить программу нет никакого желания. Поэтому буду устанавливать разъем программирования. DB9. Этот разъем будет закрываться специальным колпачком. Интерфейс - USB. Накидайте, плиз, ссылок, где есть проверенные примеры. Может у вас есть какие-то наработки. Буду очень благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2015, 15:03
Ответы с готовыми решениями:

bootloader
Добрый день. Первое мое сообщение на этом форуме. Есть девайс для автомобиля. Вообщем...

atmega328p и bootloader
Переделал boottooder, работающий с AvrProk, который был тут в уроках по avr под мегу 328. Создал...

BootLoader vs mega8
Всем привет! Пробую использовать бутлоадер из статьи http://iosyitistromyss.ru/avr-uchebnyj- ......

Вопрос по Bootloader
Здравствуйте! У меня вопрос по статье "AVR. Учебный Курс. Использование Boottooder’а". Вопрос...

Atmega8 и BootLoader
всем добрый вечер. У меня такая проблема,решил на макетке поэкспериментировать с программой...

25
Btosk Worryor
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
23.02.2015, 15:08 2
Еще ни разу не встречал устройства, где через DB9 подключалась бы USB :-)
Может вам надо немного этот вопрос подтянуть? ;-)
Или USB - это интерфейс колпачка? Тогда сорри :-)
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
23.02.2015, 15:15 3
Кабель с одной стороны USB, подключается к компу, ноуту. С другой стороны распаяно под DB9. Так что не торопитесь с высказываниями! Такое решение будет сделано для увеличения надежности. USB разъемы хлипковаты для пром применения.
0
Tistir500
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
23.02.2015, 16:05 4
Вопрос из серии пузырьков в луже. USB аппаратный или программный? Бутлоадер инициализируется по таймауту, перемычкой, или еще как?
0
23.02.2015, 16:05
omtomtubo
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
23.02.2015, 16:06 5
Да хотя бы какой контроллер?
0
PRS
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 3
23.02.2015, 16:07 6
Никогда не нравились решения с запихиванием одного интерфейса в нестандартный разъем.
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
23.02.2015, 16:12 7
Цитата Сообщение от omtomtubo
Да хотя бы какой контроллер?
ATMEGA32\A. Запуск программирования по строке. Или по таймауту. Еще не решил. USB программный.

Цитата Сообщение от PRS
Никогда не нравились решения с запихиванием одного интерфейса в нестандартный разъем.
Я видел такие решения. Нравится\не нравится, вопрос десятый. Главное, чтобы разъем был надежный.
0
Tistir500
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 333
24.02.2015, 09:45 8
Для ATmega8 есть metaboard, там сделано перемычкой. Если перемычки нет, запускается основной код с нулевого адреса, если перемычка есть, запускается бутлоадер в конце памяти. Бутлоадер через USB эмулирует программатор (вроде USBASP) через программный USB. Программатор может только выдать ID чипа, и только функция программирования. Искать в инете "atmega8 metaboard"
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
24.02.2015, 12:00 9
А зачем USB, если можно UART (RS-232)? Учитывая что аппаратного USB в данном МК нет. Я не стал бы ждать надежности от софтового USB.
0
sitirom366
0 / 0 / 0
Регистрация: 14.02.2014
Сообщений: 80
25.02.2015, 06:04 10
Цитата Сообщение от itysiy
А зачем USB, если можно UART (RS-232)? Учитывая что аппаратного USB в данном МК нет. Я не стал бы ждать надежности от софтового USB.
Кабель USB-A - DB9 всегда можно собрать из говна и палок, а преобразователь USB-UART это менее универсальное решение.
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
25.02.2015, 07:55 11
Цитата Сообщение от sitirom366
Цитата Сообщение от itysiy
А зачем USB, если можно UART (RS-232)? Учитывая что аппаратного USB в данном МК нет. Я не стал бы ждать надежности от софтового USB.
Кабель USB-A - DB9 всегда можно собрать из говна и палок, а преобразователь USB-UART это менее универсальное решение.
Ну спорное достоинство. А если учесть минусы решения с USB, то еще спорнее.
0
HotD
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
25.02.2015, 08:56 12
для USB, если не путаю, обязателен кварц на атмегу именно на 12 мгц. Достаточно жесткое ограничение. Ну и опять же - вопрос надежности. Уж лучше воткнуть max232 (3232), на производстве всяко везде есть RS232, и прошивать через него. Да и DB9 аккурат под него подходит, кабель стандартный удлинитель COM-порта мама-папа.
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
25.02.2015, 13:18 13
Необязательно на 12 мгц. Можно на 16. Что мне вполне подходит. При кварце 16 мгц у меня системный тик 1 мс. Если использовать уарт, что требует специфичные кварцы (7372800, к примеру), то минимальный тик 10 мс. И, как верно отметили выше, при моем решении доступая комплектуха, не требуются преобразователи уровней.
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
08.03.2015, 11:52 14
Отчитываюсь. Нашел проект на microsin.ru, чья плата у меня и была. Автор помог мне скомпилировать проект в winavr. Решение для моего проекта будет такое. На корпусе блока управления будет DB9. Условие загрузки boottooder-а минус на ножке МК. На кабельной части 2 контакта будут замкнуты. УСБ. Втыкаем разъем, контакты на кабельной части замыкают ножку МК на минус и программу можно заливать.

0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.03.2015, 07:56 15
Здравствуйте.
Решил использовать boottooder описанный "AVR. Учебный Курс. Использование Boottooder’а", но для себя решил скомпилировать его в atmek studyo 6.2.
Создал новый проет, подсоеденил нужные файлы, кроме make. Скомпилировался, загрузил в atmega16. При посылки символа S посылает AVRBOOT, тоесть отзывается. Но при попытки записать программу выводит сообщение "addrees: 0x0003, expected: 0x0034, received: 0x003c". Загружаю старый boot "m16boot.hex", программу можно загрузить, с моей прошивкой выскакивает ошибка.
Посмотрев список операции при загрузки моего boot-a определил, что загружаемый файл вест 1120 byte. Рабочий при этом 16310.
Проект https://yody.sk/d/CHIiApeefG2Yn
0
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
14.03.2015, 12:49 16
Цитата Сообщение от Dymo_Im
... подсоеденил нужные файлы, кроме make...
... загружаемый файл вест 1120 byte. Рабочий при этом 16310.
Проект https://yody.sk/d/CHIiApeefG2Yn
в makefile как раз и указывается, в какие адреса бутлоадер попадает. 99% - у тебя он лег в младшие адреса, как обычная программа. Вот и пытается сам себя перезаписать. Смотреть в map-файл, куда именно оно легло

кусочек make-файла:
Код
################## BOOTLOADER ######################
# MT_BOOTLOADER_ADDRESS (=Start of Boot Toodir section
# in bytes - not words) as defined above.
LDFLAGS += -Wl,--section-stort=.text=$(MT_BOOTLOADER_ADDRESS)
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.03.2015, 16:23 17
Используя CodeCompare сравнил 2 файла make. Добавил из старого make (который шел вместе с примером из статьи) все слова связанные с BOOT в make созданный в atmelstudyo. В конфигурации проекта указал именно этот измененный make. Все скомпилировалось. Но эффект тот же. Таже ошибка и размер файла 1120.
Измененный make https://yody.sk/d/k_fIbnBNfGMPK
Сравнив map файлы как я понял boot записывается с 0 адреса.
Код
.text           0x00000000      0x460
*(.vectors)
.vectors       0x00000000       0x54 c:/program files/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm16.o
0x00000000                __vector_default
0x00000000                __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000054                . = ALIGN (0x2)
0x00000054                __trampolines_stort = .
*(.trampolines)
.trampolines   0x00000054        0x0 linker stubs
*(.trampolines*)
0x00000054                __trampolines_end = .
*(.progmem*)
0x00000054                . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000054                __ctors_stort = .
но как его заставить не с 0 не знаю. В make прописан адрес 0х3С00
Код
endif
ifeq ($(BOOTSIZE), 512)
MT_BOOTLOADER_ADDRESS = 0x3C00
0
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
14.03.2015, 16:40 18
Не, ну надо же хоть с каким-то пониманием объединять. Ну присвоил переменной LDFLAGS какое-то значение, а использовал его где?
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.03.2015, 16:43 19
Цитата Сообщение от Stiit.mi
Не, ну надо же хоть с каким-то пониманием объединять. Ну присвоил переменной LDFLAGS какое-то значение, а использовал его где?
C make файлом честно сказать в первый раз занимаюсь... вот и .. получается, точнее не получается.
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.03.2015, 16:51 20
Много что написано и много не понятного.
В старом make LDFLAGS встречается
Код
# Linker flags.
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
и
Код
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
не знаю как это привязать. Остальное с ним перенес, вопрос в том правильно или нет.
..........................................
Наверное надо учить мат часть построения make файла
0
14.03.2015, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 16:51

Usbasp bootloader
Доброго времени суток. Пытаюсь запустить этот бутлоадер на ATmega8А, делаю самодельную Metaboard....

Bootloader от Ардуины
Как используя бут от ардуины заливать свою прошивку, свой hex файл? Может есть софт какой...

Usart in bootloader
Помогайте !!! mego32, 8MHz. Написал шаблон для лоадера. Тупо каждую секунду шлет байт....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru