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

 
 
 
Reply to this topicStart new topic
> Bootloader
demiurg1978
сообщение Feb 24 2015, 16:29
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



По этой ссылке скачал проект для студии. У меня AVR-Studio + AVR Toolchain. Давно уже с этой связкой не работал, в IAR работаю. Выдает ошибку

main.c:(.text+0x45a): undefined reference to `usbCrc16Append'

Подскажите, плиз, что за ошибка, как ее убрать.

Архив прикрепил.
Прикрепленные файлы
Прикрепленный файл  bootloader.rar ( 2.47 мегабайт ) Кол-во скачиваний: 17
 
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Feb 24 2015, 19:49
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Разобрался. У IAR хороший поиск строк по файлам. Поэтому я в нем ищу строки. Эта функция в usbdrvasm.S. Нужно было добавить этот файл в проект. Вылезли новые ошибки, разбираюсь.

Все, застрял. Компилятор пишет, что 1 ошибка, несколько предупреждений. А что за ошибка, не указывает.
Прикрепленные файлы
Прикрепленный файл  bootloader.rar ( 2.47 мегабайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Feb 25 2015, 17:08
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Вопрос пока закрываю. Не так все просто. Хотел получить готовый пример. Проблема в том, что когда-то я не смог подружиться с WinAVR. C AVR Toochain вроде началось получаться, но я возненавидел чересжопную реализацию работы с flash и eeprom. Попробовал IAR, с ним я подружился практически сразу. С тех пор в нем и работаю.
В итоге воюю с проектами собранными под WinAVR и makefile-ами. У меня AVR Toolchain. С горем пополам скомпилировал один пример, с родным makefile не компилируется, без него компилируется, но не могу найти в Toolchain найти настройку, чтобы он задал адрес загрузочного сектора. Нашел в инете другой пример. Все скомпилировааось, но нет для этого проекта комплектухи.
Продолжу позже, когда будет время и необходимая комплектуха.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Feb 26 2015, 16:20
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Нашел несколько лет валявшуюся плату AVR USB ATMEGA16. Связался с автором сайта micrisin, и он помог мне запустить проект с usb bootloader. Скомпилировал проект, залил программатором загрузчик, затем через загрузчик тестовую светодиодную моргалку.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Mar 1 2015, 08:52
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Работаю в IAR. Из-за bootloader пришлось править проект в winavr. у меня библиотеки по 2 файла. *.c и *.h. В IAR я пишу #include "sys_timer.h" в свойствах проекта добавляю сишные файлы. Сейчас в winavr я пишу #include "sys_timer.h" выдает ошибку, что не находит функцию, которая в сишном файле. пишу #include "sys_timer.с" компилируется нормально. Какая логика подключения инклюдов у winavr?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 1 2015, 10:37
Сообщение #6


Гуру
******

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



Цитата(demiurg1978 @ Mar 1 2015, 10:52) *
Какая логика подключения инклюдов у winavr?
Точно такая же, как и у любого отвечающего стандарту языка компилятора.

Цитата(demiurg1978 @ Mar 1 2015, 10:52) *
в свойствах проекта добавляю сишные файлы.
Для WinAVR вы этого не делаете, но виноват все равно компилятор, ага.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Mar 1 2015, 10:48
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(Сергей Борщ @ Mar 1 2015, 16:37) *
Точно такая же, как и у любого отвечающего стандарту языка компилятора.

Для WinAVR вы этого не делаете, но виноват все равно компилятор, ага.


Я не говорил, что виноват компилятор. Просто когда-то я заколебался воевать с этим компилятором, IAR меня устроил, и я перешел на него, работал только в нем. Сейчас в силу необходимости пришлось работать в WinAVR. Кстати, иногда делаю проекты в AVR Toochain, и в тулчейн таких ошибок не возникает.
Где можно на русском почитать как правильно использовать инклюды, что писать в *.h *.c? Также меня интересует как правильно писать в makefile.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 1 2015, 12:02
Сообщение #8


Гуру
******

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



Цитата(demiurg1978 @ Mar 1 2015, 12:48) *
Сейчас в силу необходимости пришлось работать в WinAVR. Кстати, иногда делаю проекты в AVR Toochain, и в тулчейн таких ошибок не возникает.
При том что и там и там компилятор один и тот же - avr-gcc.

Цитата(demiurg1978 @ Mar 1 2015, 12:48) *
Где можно на русском почитать как правильно использовать инклюды, что писать в *.h *.c?
В любой, в любой обучающей книжке по Си. Если даже не вообще в любой книжке про Си. Можно еще погуглить ключевые слова "раздельная компиляция".
Цитата(demiurg1978 @ Mar 1 2015, 12:48) *
Также меня интересует как правильно писать в makefile.
Следует начать с документации на gnu make.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Mar 1 2015, 12:10
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(Сергей Борщ @ Mar 1 2015, 18:02) *
При том что и там и там компилятор один и тот же - avr-gcc.

Я взял библиотеки из проекта Toolchain. Toolchain не ругается, winavr выдает ошибку.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 1 2015, 12:33
Сообщение #10


Гуру
******

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



Цитата(demiurg1978 @ Mar 1 2015, 14:10) *
Я взял библиотеки из проекта Toolchain. Toolchain не ругается, winavr выдает ошибку.
Вы получаете ошибку потому что не даете линкеру всех объектных файлов. А сгенерированный оболочкой Toolchain мэйк-файл все необходимые объектные файлы линкеру дает.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Mar 1 2015, 14:29
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Заранее прошу прошу прощения за свои вопросы. В IAR все настройки в графической оболочке. Кто-то может высказаться, вот типа раньше были времена, все делали из командной строки. У меня в этом плане сразу возникает ассоциация - как в том анекдоте про секретаршу. "ах, да, простите, забыла диск отмонтировать". Все это круто, но мне нужно было работать, IAR меня вполне удовлетворил. Сейчас же пришлось взяться за проект скомпилированный под winavr. Попутно хоть немного научусь в нем работать.
Цитата(Сергей Борщ @ Mar 1 2015, 18:33) *
Вы получаете ошибку потому что не даете линкеру всех объектных файлов. А сгенерированный оболочкой Toolchain мэйк-файл все необходимые объектные файлы линкеру дает.

1 - Что за объектные файлы, как дать линкеру эти файлы.
2 - Как в winavr добавить МК. У меня есть на руках архив скачанный с atmel.com, но как его скормить winavr, так и не смог разобраться. минимум что мне нужно, как добавить МК, которого нет в списке поддерживаемых МК. Скажем, мне нужно добавить ATMEGA32A.
3 - Скачанный рабочий проект. Архив прикрепил. Мой проект. Архив прикрепил. Мне нужно добавить прерывание, которое должно работать в загрузчике. Как это сделать?
Прикрепленные файлы
Прикрепленный файл  100711bootloadHID.2008_11_26.zip ( 3.1 мегабайт ) Кол-во скачиваний: 17
Прикрепленный файл  my_boot.rar ( 96.45 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 1 2015, 15:20
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(demiurg1978 @ Mar 1 2015, 17:29) *
Мне нужно добавить прерывание, которое должно работать в загрузчике. Как это сделать?

Точно так же, как в приложении, там разные таблицы векторов.
Изучите, как работает линкер. Не забудьте правильно установить фузы, и все будет хорошо.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


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


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