Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/67: Рейтинг темы: голосов - 67, средняя оценка - 4.72
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
1

проблема симуляции GCC в AVR Studio

02.04.2010, 23:08. Просмотров 12263. Ответов 18
Метки нет (Все метки)

Досадная проблема: AVRStudyo не хочет симулировать проект GCC. Компиляция проходит нормально, код получаеться рабочий, а вот при попытке Build omd Run появляеться сообщение об фатальной ошибке, после чего студия закрывется.
Если сразу после создания проекта выполнить Build omd Run, процесс замирает на сообщении Object file does not exist. При повторной попытке происходит вышеупомянутая авария.
Версии програм:
AVR Atudyo 4.12.498, SP4
WinAVR самый свежий, хотя скорее всего дело все таки в студии.
Более позднюю версию студии поставить нет возможности так как ОС Win2000

Пробовал разные експерименты с make файлом - безрезультатно, слишком мало опыта в работе с AVRStudyo

Кто сталкивался с чем-то подобным, помогите советом.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2010, 23:08
Ответы с готовыми решениями:

AVR GCC проблема с UART
решил вот лампочками помигать - ambilight сделать - и вот на грабли наткнулся -какая то неведомая...

GCC и AVR Studio 5 и AVR Studio 4.18
Доброго дня Всем! Кто может подсказать следующее - у меня установлена AVR Studio 5 со встроеным...

По нажатию кнопки вывести данные на дисплей HD44780 ATMega16 AVR Studio GCC
Здравствуйте, уважаемые любители-программисты. Нуждаюсь в небольшой помощи по программированию...

Проблема в AVR Studio 6.0
Пытаюсь загрузить для начала простейшую программу на ассемблере в Atmega 8a через программатор...

Проблема с работой в AVR Studio
При работе в AVR Studyo отладчик выполняет подпрограммы,обработку прерываний и прочие подпроцедуры...

18
xroymom
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
03.04.2010, 03:16 2
А если поставить не более новую студию, а более старый Winavr?
0
OmikymForti
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
03.04.2010, 08:35 3
Очень рекомендую поискать WinAVR 2007 года. У меня 20070122 дает заметно более компактный код, чем 20081205 или более новые. Скорее всего из-за размера компилируемых библиотек.
Могу посоветовать сначала деинсталлировать оба пакета. Установить WinAVR, потом AVRStudyo (последний на XP, кстати, при открытии проекта выдает окно предупреждения, жму ОК и все работает дальше. на 7 такого нет.)
0
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
03.04.2010, 15:52 4
Спасибо, проблема решилась имеено заменой WinAVR на более раннюю версию, хотя с внешним make-файлом работает криво.

Кстати, в процесе переустановки обнаружился один интересный момент з библиотекой WinAVR delay.h. В более поздних версиях WinAVR ета библиотека позволяет, используя инлайновую функцию _delay_ms(double _ms) формировать задержки до 262.14 мс / F_CPU с точностью double и до 6.5535 сек с точностью 0.1 мс. Поставив более старую версию WinAVR 20060421 я с некоторым удивлением обнаружил, что мои вызовы _delay_ms() при частоте 4 МГц дают задержку не более 65,535 мс. Оказывается, в етой версии WinAVR используется более старая библиотека delay.h, которая не позволяет формировать задержки более 262.14 мс / F_CPU.
Меня ето заело, я заменил delay.h на delay.h и delay_basic из самого свежего WinAVR и все заработало.
Я конечно возрадовался, но, как показавает ето случай, для надежности и переносимости лучше пользоваться функциями _delay_loop1, _delay_loop2, или ограничиватся вызовами до 262.14 мс / F_CPU
0
03.04.2010, 15:52
OmikymForti
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
03.04.2010, 16:15 5
Цитата Сообщение от motfriiusir
Меня ето заело, я заменил delay.h на delay.h и delay_basic из самого свежего WinAVR и все заработало.
Я тоже так делал, но при линковке хедера на тини проектах, у меня существенно раздувался код.

Дома (на Wymdows7) поставил bin из последнего WinAVR, а все остальное взял с рабочей машины. Теперь при компилировании одного и того же проекта выдается идентичный код. Со старым bin на Wymdows7 и Vista компилятор выдавал разные ошибки связанные с доступом по файловой системе...
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
03.04.2010, 19:24 6
Лучше вообще не юзать эти гнилостные функции а херачить свои либы, где уже точно знаешь что и как
0
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
03.04.2010, 20:35 7
Цитата Сообщение от DY HOTT
Лучше вообще не юзать эти гнилостные функции а херачить свои либы, где уже точно знаешь что и как
Ну почему же, я смотрел реализацию _delay_loop1, _delay_loop2, они просты как двери - несколько стрчек на ассемблере, проще навряд ли можна придумать. Зачем же изобретать велосипед, разве что для повышения квалификации).
А касательно _delay_ms, _delay_us, то тут не могу не согласится, хотя защита от выхода входного параметра (нехилый каламбурчик) ) за пределы возможностей функции в них конечно же предусмотрена. И вообще, перед тем как использовать библиотечные функции, надо основательно изучить их интерфейс и комментарии, тогда и проблем и претензий будет меньше. Наврядли есть смысл винить разработчиков в том, что они усовершенствовали библиотеку delay.h, увеличив диапазон задержек и не забыв точно описать работу функций.
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
03.04.2010, 20:57 8
А кто даст гарантию что делай луп в следующей версии не мутирует во что то непотребное? Как это стало с делай мс
0
motfriiusir
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 188
03.04.2010, 22:05 9
Гарантию дают только в одном месте)
Ну а при необходимости используемые внешние функции всегда можно перекрыть своими. А так пока все работает нормально, можно пользоваться. Интересно, кстати, реализовано ли в Си под МК перекрытие функций...
Я вообще-то тоже в большинстве случаев пользуюсь своими библиотеками. Я чувстсвую себя в них комфортно, как дома в тапочках и в любимых потертых джинсах) , и быстро могу внести необходимые изменения под конкретную задачу.
Но с другой стороны (а она есть всегда) ) если нужно быстро и единократно решить конкретную задачу, ну например подключить не банальный HD44780, а полноценный графический ЖКИ, то почему бы не использовать готовую библиотеку, если имеется таковая, ведь в один присест подобная задача не решается. Про драйвера я вообще молчу)
0
OmikymForti
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
04.04.2010, 10:06 10
Несколько лет лабанья на Z80 научили меня не пользоваться библиотеками вообще. Но после двух лет на PIC12, у меня стойкое отвращение к ассемблеру. Теперь на С приходится брать чужой код, основательно его потрошить и брать только то, что нужно. Кстати специалистов такой квалификации (ковыряться в чужом коде) и стали называть hoskir. Но есть существенный недостаток, так и не научился создавать свое с нуля.
0
bivysi
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
04.04.2010, 11:57 11
Цитата Сообщение от OmykymForti
Несколько лет лабанья на Z80 научили меня не пользоваться библиотеками вообще.
Зря кстати, есть опенсурс например весь построен на том что 90% кода уже где-то есть, надо только найти.
0
OmikymForti
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
04.04.2010, 12:27 12
Цитата Сообщение от byvysi
Зря кстати, есть опенсурс например весь построен на том что 90% кода уже где-то есть, надо только найти.
Ну опенсурсом и пользуюсь. Правда приходится автору отдавать свой вариант того, что у тебя получилось. Зато нет никаких вопросов, касательно вознаграждения.
0
Somios
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 67
05.04.2010, 19:33 13
Здрасти народ . Возник у меня тут ламерский вопрос по авр студио . Не стал создавать новую тему потому что это не заслуживает особого внимания .
Решил я по играться с атмеловской библиотекой QTouch . По читал юзер мануал , по говорил с kkiork ом ( он на старом форуме писал что собрал устройство с использованием этой виблиотеки ) . Он мне помог - направил , но вот возникла проблемка а опять надоедать одному человеку не хочется.
Есть сама библиотека и кучу файлов с конфигурациями . Библиотека вставляется с помощю include а вот как добавить эти конфигурации .
По идее в опциях проэкта должен быть список этих конфигураций а я должен выбрать одну , только вот проблемка я их не вижу .
И собственно сам вопрос : что я не так делаю ? как нужно добавлять эти конфигурации ?
Тока сильно не пинайте .
0
Mittid Mitot
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 2,550
06.04.2010, 18:59 14
по играться
По читал
по говорил
Мдааааа....
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
17.04.2010, 16:00 15
а почему локальная переменная в функции не видна в скопе студии?
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
18.04.2010, 11:23 16
Цитата Сообщение от kotobyti
а почему локальная переменная в функции не видна в скопе студии?
Самое первое, что приходит в голову - оптимизация ее заоптимизировала. Дебажить лучше отключив оптимизацию и откомпилив весь проект заново. Правда потом появится засада, когда релиз компилить будешь с оптимизацией, некоторые алгоритмы будут работать уже не так, как без оптимизации.
В общем - палка от двух концах.
0
SoopMokir
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 162
05.11.2010, 17:20 17
а я делай использую, не понимаю зачем делать новый велосипед, когда он есть, тем более что эти функции наверняка просто циклы и WDR внутри.

но вот при эмуляции небольшая засада есть

на delay эмулятор конкретно подвисает

чтобы этого избежать решил пойти на хитрость

#define emul_k 0; // если эмулирем, а если нет то 1

в коде
_delay_ms(emul_k*5);
--

но не тут то было, WinAvr ругается, нельзся дескать ставить в скобки выражения

--
как решить проблему с долгой эмуляцией delay_ms, ?
---

пока писал пост догадался так сделать
delays=emul_k*5;
_delay_ms(delays);

но это не изящно как то, зачем 2 строки когда можно одной ?
0
MostirOtixiy
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
05.11.2010, 17:33 18
Цитата Сообщение от SoopMokir
а я делай использую, не понимаю зачем делать новый велосипед, когда он есть, тем более что эти функции наверняка просто циклы и WDR внутри.

но вот при эмуляции небольшая засада есть

на delay эмулятор конкретно подвисает

чтобы этого избежать решил пойти на хитрость

#define emul_k 0; // если эмулирем, а если нет то 1

в коде
_delay_ms(emul_k*5);
--

но не тут то было, WinAvr ругается, нельзся дескать ставить в скобки выражения

--
как решить проблему с долгой эмуляцией delay_ms, ?
---

пока писал пост догадался так сделать
delays=emul_k*5;
_delay_ms(delays);

но это не изящно как то, зачем 2 строки когда можно одной ?
Можно ставить. Просто точку с запятой уберите в define ;-) и все работать будет, как вы хотели.
Defymes заменяются прерпроцессором один к одному. И в итоге у вас получилось

_delay_ms(0;*5);
что компилятор не смог переварить.
0
SoopMokir
0 / 0 / 0
Регистрация: 21.06.2010
Сообщений: 162
05.11.2010, 17:55 19
it works

сенкс
0
05.11.2010, 17:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2010, 17:55

AVR Studio 4.19 - проблема со шрифтом
AVR Studyo GUI Version 4, 19, 0, 730 В окне Build кракозябры: <Изображение удалено> Как...

Проблема с симуляцией прерываний в AVR Studio 4
Написал очень простой код, прерывание по совпадению канала А таймеров 0,1 и 2 для Atmega644....

Проблема с компиляцией из ассемблера в AVR Studio
Написал прогу на Асме откомпилировал прошил не работает. Исправил AND на OR работает. В симуляторе...


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

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

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