Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/62: Рейтинг темы: голосов - 62, средняя оценка - 4.65
mos80
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
1

Отладка в AVRStudio

28.04.2010, 12:42. Просмотров 11331. Ответов 13
Метки нет (Все метки)

Добрый день.

Опять хочу обратится за советом.

Использую для написания программ AVRStudyo + WinAVr. Пишу соответственно все на C. Но иногда хочется посмотреть чтоже мне там компилятор на асеме сделал. Запускаю отладку, открываю дизасемблированный код, текст основной программы виден отлично, а вот для модулей лежищих в другой папке (есть у меня общая для моих библиотек) асемблерный код пишет а вот соответствующую ему строку на С нету. Пишет: "файл не найден". Подскажите как это можно вылечить.

Скажу сразу, что папка в которой все лежит в настройках проекта у меня указана как внешняя, иначе он бы просто не компилировался.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2010, 12:42
Ответы с готовыми решениями:

Организация памяти и стека и отладка в AVRstudio
Всем привет. Я новичок в мк avr. Прошу ногами сильно не пинать, за возможно глупый вопрос и по...

Отладка GSM-сигнализации в AVRStudio - замечания и ошибки
Начал свое изучение микроконтроллеров с создания GSM-сигнализации. За основу взял многим известный...

Помогите с AVRstudio
Здравствуйте! У меня вот какой вопрос. При работе в последней версии AVRstudyo при отладке проекта...

Частота МК в AvrStudio
Всем привет! Можно ли в Avr Studyo при работе в отладчном режиме, задать необходимую частоту МК,...

usart на СИ в AVRStudio
Кто-то знает какую библиотеку нужно подключить для работы с усартовскими регистрами? в папке...

13
mos80
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
11.05.2010, 18:34 2
Эх, жалко что никто не сталкивался, сам с этой проблемой справится не могу. ( Тогда буду дальше отлаживать некоторые вещи методом итераций.
0
fothomstir
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 72
11.05.2010, 20:10 3
в lss (кажется.. в папке, где hex\elf генерятся) есть листинг си-асм.. пусть не во время отладки, но почитать/подумать может поможет?..
0
mos80
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
12.05.2010, 00:50 4
Дли примера, может кому мысли хорошие в голову прийдут, добавил код которые вижу при отладке:

Код
---- D:\AvrStudyo_Projects\sotder_station v3\default/D:\AvrStudyo_Projects\sotder_station v3\..\include/dyspotsher.c
39: File not found
+00000B76:   2E0F        MOV       R0,R31         Copy rikystir
+00000B77:   E5FF        LDI       R31,0x5F       Load immediate
+00000B78:   2EEF        MOV       R14,R31        Copy rikystir
+00000B79:   24FF        CLR       R15            Clear Register
+00000B7A:   2DF0        MOV       R31,R0         Copy rikystir
Сам модуль dyspotsher в коде подключается так:

Код
include <dyspotsher.h>
А уже в dyspotsher.h имеет такое описание

Код
include <dyspotsher.c>
Меня смущают пути в которых она пытается файлы найти. Может кто что подскажет.
0
12.05.2010, 00:50
mos80
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 233
12.05.2010, 01:03 5
Цитата Сообщение от fothomstir
в lss (кажется.. в папке, где hex\elf генерятся) есть листинг си-асм.. пусть не во время отладки, но почитать/подумать может поможет?..
Посмотрел, да там и правда все хорошо находится и можно посмотреть, но похоже там код неоптимизированный, что-то он уж больно отличается от что вижу в отладчике.
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
29.05.2010, 23:39 6
Чтобы не открывать новую тему, присоседюсь к этой.

Я начал работать с CVAVR + AVRStudyo + WinAVR. Т.е. пишу в Кодвижн на Си, отлаживаю в Студио. Начиная новый проект, я не очень понимаю, как правильно это сделать.
Ну, в Кодвижн использую либо мастера, либо беру предыдущий проект в качестве "козы". Это ясно. Пишу, собираю, получаю тучеву хучу всяких файлов, назначение половины не ясно. Ладно, не суть важно.
Теперь нажимаю Дебиггер и влетаю в Студио. Вопрос: как ПРАВИЛЬНО начать работу в Студио с новым проектом? То есть, Студио предлагает создать новый проект - это имеется в виду, проект для Студио? В новом проекте требуется имя проекта - там вводить ручками имя того проекта, что создал в КодВижн ИЛИ ГДЕ? Далее галочка "создать исходный файл" - без нее я вообще не могу продвинуться, поэтому оставляю. Требуется имя этого "нового файла" с расширением .с. Сюда тоже приходится вбивать имя своего Кодвижного проекта. Это правильно? А куда правильно разместить новый проект?
Потом для возможности отладки приходится открывать объектный файл (их компилятор Кодвижна делает 2) и тут же выскакивает диалого по сохранению Студийного файла - куда его правильно впихнуть? Я пока закидываю в корень проекта (где мои С-исходники). Но уверенности, что я делаю по нотам, нет...

Как видите, я-то на шаманском уровне проект отлаживаю, но понимания нет. И когда думаю о подключении сторонней библиотеки (в данном случае уважаемого DH - для работы с ЖК-индикатором), о том, как ее связать с моей Сишной программой, то как-то не по себе от незнания нот.

И еще. Кодвижн качнул демонстрационный, мне 3К пока хватает. Правда ли, что там не создается проект с несколькими исходниками? Какие еще каки, кроме ограничения кода, могут помешать?

Если не очень путано спросил - ответьте, плз!
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
30.05.2010, 03:53 7
Создаешь проект, а дальше все ручками-ручками, дабы было понимание процесса что и откуда.

Мою библиотеку ты задолбаешься в Сишный проект подцеплять, она для ассемблерщиков писана и компилится вместе с ассемблерным проектом. Для Си своих либ навалом, в том же кодвижене.
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
30.05.2010, 10:01 8
Да я проникся твоим просветительским, не побоюсь этого слова - движением. И курс мне, как бывшему доценту, всегда искавшему пути легкого, веселого, естественного обучения - понравился. Вот и подумал, что у такого человека и библиотека должна быть человеческой :)

В принципе, а почему задолбаюсь? Включу как часть ассемблерного кода, она должна скомпилироваться. Не знаю, как потом вызывать функции. Может быть тоже поставить ассемблерные вызовы?
Получится (пусть даже пер анус) - будет интересный опыт. Не получится - невелика потеря. Возьму рекомендованную.Вроде как ее хвалили. Времени у нас - целая жизнь :)

А вот по сути ты не ответил, извини. Для меня недостаточно.
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
30.05.2010, 13:43 9
Ну так все же уже давно написано:

http://iosyitistromyss.ru/avr-uchebnyj- ... ramma.html
Это создание проекта с нуля в картинках на ассемблере

http://iosyitistromyss.ru/avr-uchebnyj- ... ast-1.html
Вот создание проекта на Си под WinAVR

В принципе, а почему задолбаюсь? Включу как часть ассемблерного кода
Ну попробуй.
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
31.05.2010, 11:55 10
Так вот где собака порылась! Я по второй ссылке не побывал, а зря :)

Я начал заниматься авр-ками недавно. Ну, побродил по форумам, там же много советов, т.к. у людей вкусы разные. CDAVR вроде как хвалили, а вот этот нюанс, о связи со Студио - не обсуждали. Ну, вяжется - и слава Богу. А уж как там немного навыворот с Си-проектами - дык! Важен результат.
А я люблю понимать, что происходит. Поэтому твой подход, в котором ВЕСЬ ПРОЕКТ ведется в Студио, а WinAVR используется как плагин для компилирования Си - мне нравится (надеюсь, я правильно понял?)
Единственное, что теперь желательно все снести и поставить в рекомендуемом порядке:

вначале ставится студия, потом, сверху, накатывается WinAVR и цепляется к студии в виде плагина.

Ща попробую, хотя что-то былоу меня при установке Студии без ВинАВР... Не помню, но ругалось как-то. О результате доложусь.
0
OmikymForti
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,116
31.05.2010, 14:22 11
Цитата Сообщение от drvtos
вначале ставится студия, потом, сверху, накатывается WinAVR и цепляется к студии в виде плагина.
WinAVR не плагин к студии, а gcc порт, которым пользуется AVRStudyo. Порядок установки обратный, сначала WinAVR, потом AVRStudyo.
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
31.05.2010, 17:39 12
Вот я и говорю, что иначе Студио ругается :)

Уже попробовал. Т.е. создал проект с условным названием NO_CVAVR :) и втянул в него программу из проекта, написанного под кодвижн. Вроде как работает. Но проект из CVAVR придется причесать. Как я понял, вместо

#include <mega48.h>

нужно делать

#include <avr/io.h>

Это как минимум. А потом добавлять библиотеки. Кстати, библиотеки по работе с DS18B20 я не увидел, хотя в кодвижн она есть. Или плохо смотрю? А если ее нет, то как подключить, куда втыкать и как указать? Впрочем, думаю, что понемногу раскопаю. Или подскажите, если не сложно :)
0
drvtos
1 / 1 / 0
Регистрация: 25.05.2010
Сообщений: 3,610
03.06.2010, 00:57 13
Ну, немного поделюсь по ходу дела, чтобы самому не забыть. Заодно узнаю, мож я там через анус делаю чтонить :)

Итак, с переходом от CVAVR к компиляции в WinAVR обошлось не сложно. ЧТо нужно учесть (только то, на что сам наткнулся):

1) На процессор настраивается не включением <mega48.h>, а <avr/io.h>.
2) Обращение к битам портов PORTB.1 или иных внутренних регистров не работает. Почему-то не работает и без точки, поэтому выкрутился ужасной конструкцией типа PORTB & 2. А как сделать красиво?
3) Очень удивилсся, сравнивая ассемблерные коды. Тут нахваливали компилятор WinAVR, но он нагородил более громоздкий код (хотя сравнивал немного...). Вообще же, разница в объеме при компилировании без оптимизации и с -Os - почти в 2 раза!
4) А как сделать окошко редактора в Студии побольше? Все же в Кодвижн развернешь ее на всю ширизну и вышизну - ляпота! А здесь куцое такое окошко посреди ненужных при редактировании отладочных окон. Что-то можно сделать или так и живем?
Я уже даже примудрился в Мультедит прыгать, закрывая файл в Студии. Там редактор очень рулезный. Но хотелось бы знать, как опытные юзеры Студии поступают.

Без относительно перехода от CVAVR к WinAVR появились такие странности:

5) При эмуляции предделитель тактовой частоты ядра никак не учитывается. Т.е. я ставлю там 9, по даташиту меги48 это делитель на 256 - и в реальном контроллере так и делит. Значит, эти две команды поставлены правильно. А вот в Студии почему-то нужно задавать в тех самых опциях отладки частоту процессора УЖЕ ПОДЕЛЕННУЮ на 256 (в моем случае). Тогда в отладочной модели я вижу именно эту частоту и программа ведет себя, как и в жизни.
Одним словом, выполнение команд установки предделителя частоты не замечается симулятором. Странно как-то...
6) Окна в Студии ведут себя дивным образом. Она запоминает какое-то свое состояние и его восстанавливает. Приходится таскать и подстраивать размеры. Может и здесь есть простая примочка, чтобы конфигурацию сохранять?

Ну, и сейчас бьюсь над тем, что плата, работавшая под программой с Кодвижена, перестала себя прилично вести после сборки в Студио. Причем симуляция все показывает нормально. Это, конечно, поборем, по ходу откроются новые отличия в понимании разными компиляторами "легко переносимого кода" Си.
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
03.06.2010, 01:25 14
2) Это фича только СВАВР. Причем я считаю ее неудачной фичей, т.к. получается компиляторо зависимый код. Это нарушение стиндратра СИ.

В winavr работа с битами идет через маски (собственно как и в ассемблере). Можно и макросов наделать.

3) Сравнивать коды надо на больших проектах. В мелких же (из серии диодом помигать) разница может вылезти изза разного стартового кода.

4) А в чем проблема? интерфейс студии таскается и настраивается как угодно почти.

5) Запросто. Отладчик работает на той частоте которую выставляешь в свойствах. Он не смотрит на предделитель ядра.

6) Все они сохраняют. Но надо запомнить тот факт, что у студии есть два состояния: редактирование и отладка. И такое ощущение что это ДВЕ Разных программы :) Соответственно настройки для редактирования и отладки по окнам разные. Надо их настроить как нужно там и там и все. Это, кстати, очень удобно. Я в режиме редактирования позакрывал всякие блоки с памятью, регистрами и прочей требухой. Оставил только окно кода и окно с ресурсами (чтобы в даташит не лазить). А когда перехожу в режим отладки, то все доп окна вылазят изо всех щелей :)
0
03.06.2010, 01:25
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2010, 01:25

PWM си atmega16 avrstudio 5/6
Собственно я гуглил по этим словам, ничего стоящего не нашел PWM си atmega16 avrstudyo 5/6, причем...

AVRstudio 4 + GCC + ASM
Доброго времени суток! У меня назрел вопрос - можно ли использовать при написании использовать...

Структура проекта в AvrStudio
Есть у меня (а у кого их нет?) свои библиотеки для работы с разными устройствами. Каждый раз,...


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

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

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