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

 
 
> bootloadHID и Atmel Studio 6.2 на Atmega168PA
truppik
сообщение Feb 16 2015, 09:40
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 24-07-14
Из: NA
Пользователь №: 82 352



Доброго времени суток!

Взял bootloadHID.2012-12-08 портировал на Atmel Studio, чуть поправив некоторые неточности (особенно убило, что ошибка с #include "usbdrv.с" встречается во многих сторонних проектах и никто не правит это на #include "usbdrv.h"), единственное что смущает - есть функции с обьявлением USB_PUBLIC - а дальше если посмотреть, то это просто #define USB_PUBLIC static (более того, в другом файле просто стоит #define USB_PUBLIC без переназначения) - так вот, со static не компилировалось - убрал, все отлично.

Закоментил эти строки, скомпилировал еще раз и ...
//GICR = (1 << IVCE); /* enable change of interrupt vectors */
// GICR = (1 << IVSEL); /* move interrupts to boot flash section */
Залил в Atmega168PA с фьюзами как на скрине - определяется без проблем, утилита тоже видит девайс и даже типа заливает прошивку (но понятное дело она не заливает, ибо у нас не загрузчик, а просто как обычная прошивка, т.к. адрес начинается с 0х0 и сам в себя он не пишет) окей, значит теперь надо просто переместить наш загрузчик в памяти и что б заливалось корректно.

Добавляю в линковщик следующую строку и откоментируем те 2 строки, что разрешают перенос прерываний в область загрузчика:
-Wl,--section-start=.text=0x1c00
компилируем, в прошивке теперь адрес начинается с 0х1с00:
:101C00000C94720E0C94AA0E0C948F0E0C948F0EE2
:101C10000C948F0E0C948F0E0C948F0E0C948F0ED0
:101C20000C948F0E0C948F0E0C948F0E0C948F0EC0
.....
все верно!
Прошиваем в МК и тут же читаем, смотрим в прочитанный хекс, начало:
:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
...
ну и наша прошивка на верном месте с адреса 0х1с00.

НО, она не работает.
Если быть точным, она запускается (проверял методом что PD3 дергал) и далее на чем то застопоривается, вывод PD1 почему то постоянно в 0 выставляется и все. Я предположил что то с прерываниями на новой серии МК - PA в конце. Ну да ладно думаю протестирую ка на старой atmega32A (что нашлось в загашнике с USB схемой) - чуть подредактировал прошивку, сначала проверил что с 0го адреса она стартует и корректно работает, далее провел модификацию для режима бутлоадера (сменил адрес на соотв. бутлоадеру 32й меге), прошил и тоже самое......

Я уже не знаю что не так. Пробовал портировать разные проекты от других людей, все компилируется и не работает схожим образом. Я что то упустил ? я далеко не хороший программист, помогите, кто сталкивался...что тут не так ?
Проект прикладываю так же.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  firmware_bootloader.zip ( 87.58 килобайт ) Кол-во скачиваний: 18
 


--------------------
never know best.
Go to the top of the page
 
+Quote Post



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

 


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


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