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

 
 
> 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
 
Start new topic
Ответов
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



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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 13:00
Рейтинг@Mail.ru


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