demiurg1978 1 24 февраля, 2015 Опубликовано 24 февраля, 2015 · Жалоба По этой ссылке скачал проект для студии. У меня AVR-Studio + AVR Toolchain. Давно уже с этой связкой не работал, в IAR работаю. Выдает ошибку main.c:(.text+0x45a): undefined reference to `usbCrc16Append' Подскажите, плиз, что за ошибка, как ее убрать. Архив прикрепил. bootloader.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 24 февраля, 2015 Опубликовано 24 февраля, 2015 · Жалоба Разобрался. У IAR хороший поиск строк по файлам. Поэтому я в нем ищу строки. Эта функция в usbdrvasm.S. Нужно было добавить этот файл в проект. Вылезли новые ошибки, разбираюсь. Все, застрял. Компилятор пишет, что 1 ошибка, несколько предупреждений. А что за ошибка, не указывает. bootloader.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 25 февраля, 2015 Опубликовано 25 февраля, 2015 · Жалоба Вопрос пока закрываю. Не так все просто. Хотел получить готовый пример. Проблема в том, что когда-то я не смог подружиться с WinAVR. C AVR Toochain вроде началось получаться, но я возненавидел чересжопную реализацию работы с flash и eeprom. Попробовал IAR, с ним я подружился практически сразу. С тех пор в нем и работаю. В итоге воюю с проектами собранными под WinAVR и makefile-ами. У меня AVR Toolchain. С горем пополам скомпилировал один пример, с родным makefile не компилируется, без него компилируется, но не могу найти в Toolchain найти настройку, чтобы он задал адрес загрузочного сектора. Нашел в инете другой пример. Все скомпилировааось, но нет для этого проекта комплектухи. Продолжу позже, когда будет время и необходимая комплектуха. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 26 февраля, 2015 Опубликовано 26 февраля, 2015 · Жалоба Нашел несколько лет валявшуюся плату AVR USB ATMEGA16. Связался с автором сайта micrisin, и он помог мне запустить проект с usb bootloader. Скомпилировал проект, залил программатором загрузчик, затем через загрузчик тестовую светодиодную моргалку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Работаю в IAR. Из-за bootloader пришлось править проект в winavr. у меня библиотеки по 2 файла. *.c и *.h. В IAR я пишу #include "sys_timer.h" в свойствах проекта добавляю сишные файлы. Сейчас в winavr я пишу #include "sys_timer.h" выдает ошибку, что не находит функцию, которая в сишном файле. пишу #include "sys_timer.с" компилируется нормально. Какая логика подключения инклюдов у winavr? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Какая логика подключения инклюдов у winavr?Точно такая же, как и у любого отвечающего стандарту языка компилятора. в свойствах проекта добавляю сишные файлы.Для WinAVR вы этого не делаете, но виноват все равно компилятор, ага. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Точно такая же, как и у любого отвечающего стандарту языка компилятора. Для WinAVR вы этого не делаете, но виноват все равно компилятор, ага. Я не говорил, что виноват компилятор. Просто когда-то я заколебался воевать с этим компилятором, IAR меня устроил, и я перешел на него, работал только в нем. Сейчас в силу необходимости пришлось работать в WinAVR. Кстати, иногда делаю проекты в AVR Toochain, и в тулчейн таких ошибок не возникает. Где можно на русском почитать как правильно использовать инклюды, что писать в *.h *.c? Также меня интересует как правильно писать в makefile. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Сейчас в силу необходимости пришлось работать в WinAVR. Кстати, иногда делаю проекты в AVR Toochain, и в тулчейн таких ошибок не возникает.При том что и там и там компилятор один и тот же - avr-gcc. Где можно на русском почитать как правильно использовать инклюды, что писать в *.h *.c?В любой, в любой обучающей книжке по Си. Если даже не вообще в любой книжке про Си. Можно еще погуглить ключевые слова "раздельная компиляция". Также меня интересует как правильно писать в makefile.Следует начать с документации на gnu make. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба При том что и там и там компилятор один и тот же - avr-gcc. Я взял библиотеки из проекта Toolchain. Toolchain не ругается, winavr выдает ошибку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Я взял библиотеки из проекта Toolchain. Toolchain не ругается, winavr выдает ошибку.Вы получаете ошибку потому что не даете линкеру всех объектных файлов. А сгенерированный оболочкой Toolchain мэйк-файл все необходимые объектные файлы линкеру дает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg1978 1 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Заранее прошу прошу прощения за свои вопросы. В IAR все настройки в графической оболочке. Кто-то может высказаться, вот типа раньше были времена, все делали из командной строки. У меня в этом плане сразу возникает ассоциация - как в том анекдоте про секретаршу. "ах, да, простите, забыла диск отмонтировать". Все это круто, но мне нужно было работать, IAR меня вполне удовлетворил. Сейчас же пришлось взяться за проект скомпилированный под winavr. Попутно хоть немного научусь в нем работать. Вы получаете ошибку потому что не даете линкеру всех объектных файлов. А сгенерированный оболочкой Toolchain мэйк-файл все необходимые объектные файлы линкеру дает. 1 - Что за объектные файлы, как дать линкеру эти файлы. 2 - Как в winavr добавить МК. У меня есть на руках архив скачанный с atmel.com, но как его скормить winavr, так и не смог разобраться. минимум что мне нужно, как добавить МК, которого нет в списке поддерживаемых МК. Скажем, мне нужно добавить ATMEGA32A. 3 - Скачанный рабочий проект. Архив прикрепил. Мой проект. Архив прикрепил. Мне нужно добавить прерывание, которое должно работать в загрузчике. Как это сделать? 100711bootloadHID.2008_11_26.zip my_boot.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 1 марта, 2015 Опубликовано 1 марта, 2015 · Жалоба Мне нужно добавить прерывание, которое должно работать в загрузчике. Как это сделать? Точно так же, как в приложении, там разные таблицы векторов. Изучите, как работает линкер. Не забудьте правильно установить фузы, и все будет хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 27 августа, 2019 Опубликовано 27 августа, 2019 · Жалоба Всем привет! Не нашел другой темы куда задать свой вопрос. Прошил в контроллер at32uc3a USB-загрузчик. Настроил пользовательскую страницу под отдельный пин. При 1 на нем после включения питания мы попадаем в загрузчик. Все прекрасно. Как можно сделать так, чтобы я мог контролировать этот пин? Если его подвесить к питанию, то мы все время будем нырять в загрузчик, если к земле, то мы в него не сможем никак попасть. Или как то можно использовать reset контролера в этом случае? Или возможно ли из приложения как то перепрошить слово конфигурации переключив пин захода в загрузчик? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Integro 0 27 августа, 2019 Опубликовано 27 августа, 2019 · Жалоба 31 minutes ago, Neznaika said: Не нашел другой темы куда задать свой вопрос. В раздел новичков нужно было постить... 31 minutes ago, Neznaika said: Как можно сделать так, чтобы я мог контролировать этот пин? нужно использовать pull-down резистор, из гугла: 31 minutes ago, Neznaika said: Или возможно ли из приложения как то перепрошить слово конфигурации переключив пин захода в загрузчик? Можно записать чтото в RAM или во FLASH, но в лоб это делать нельзя, нужно дать знать линкеру что вы используете этот участот памяти для своих целей. Для этого нужно смотреть доку на ваш toolchain. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neznaika 0 27 августа, 2019 Опубликовано 27 августа, 2019 · Жалоба Спасибо, за ответ) С кнопкой или перемычкой понятно) Но контроллер стоит в корпусе, а кнопка с перемычкой на плате... Выносить их на заднюю панель как то не эстетично. Видел раньше были энергонезависимые триггера, но их увы сняли с производства. Был еще вариант захода в загрузчик через USB_ID, только при подсоединении кабеля можно войти в загрузчик, но по USB у меня работает основное приложение. И каждый раз придется перед включением убеждаться, что USB-разьем пуст. Документов к сожалению не так много на эту тему( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться