AVR studio в вопросах и ответах
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR studio в вопросах и ответах
Это память программ как и написано. В ней лежит прошивка.
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio в вопросах и ответах
Обычное окно отладчика для просмотра содержимого памяти. Что вас смущает?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR studio в вопросах и ответах
Я конечно все не проверял, но разницы не увидел. Одни и теже значения. Только в первом случае побайтный режим просмотра, во втором пословный (шина данных у памяти программ AVR 16 битная, т.е. слово 16 бит)201bazza писал(а):так совершенно другие значения?
Программа лежит в памяти программ, где то ей надо же находится.201bazza писал(а):Что за память программ, можно поподробнее?
- Реклама
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: AVR studio в вопросах и ответах
Вы наверное сами программу останавливаете, а так как 4 мс это много и симуляция значительно медленнее реального времени, то Вы туда и попадаете.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio в вопросах и ответах
Причина того, что при пошаговой отладке происходят загадочные скачки "непонятно куда" кроются в том, что при включенной оптимизации GCC генерирует отладочную информацию некорректно. К этому надо привыкнуть и смириться с этим... Или отлаживать с включенной оптимизацией.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: AVR studio в вопросах и ответах
Господа программисты! Подскажите начинающему...
Можно ли в студии, используя команды препроцессора, или иные возможности, сделать так, чтобы компилировались различные варианты кода в АВТОМАТИЧЕСКОМ режиме?
Я пока в сети не нашел такого решения и сомневаюсь, возможно ли такое вообще.
Как простейший пример для чего это нужно, например, делать две различные прошивки для динамической индикации под ОА и ОК.
Я об этом задумался, когда пришлось, по просьбам форумчан, подгонять свой код под их требования. Сейчас вношу изменения и вручную компилирую. Ветвление на варианты сделал по командам препроцессора. Но каждый раз боюсь запутаться, какой я вариант откомпилировал, а какой нет, если в программу вносится общая корректировка.
PS. просто даже на форуме видел, что народ выкладывает кучу вариантов прошивок под свои конструкции. И в ручную это делать замороченно.
И второй вопрос, как организовать учет версий и учет изменений в коде? Это можно делать автоматически или все делается вручную?
То есть заводится файл *.TXT и ручками прописываются изменения?
Можно ли в студии, используя команды препроцессора, или иные возможности, сделать так, чтобы компилировались различные варианты кода в АВТОМАТИЧЕСКОМ режиме?
Я пока в сети не нашел такого решения и сомневаюсь, возможно ли такое вообще.
Как простейший пример для чего это нужно, например, делать две различные прошивки для динамической индикации под ОА и ОК.
Я об этом задумался, когда пришлось, по просьбам форумчан, подгонять свой код под их требования. Сейчас вношу изменения и вручную компилирую. Ветвление на варианты сделал по командам препроцессора. Но каждый раз боюсь запутаться, какой я вариант откомпилировал, а какой нет, если в программу вносится общая корректировка.
PS. просто даже на форуме видел, что народ выкладывает кучу вариантов прошивок под свои конструкции. И в ручную это делать замороченно.
И второй вопрос, как организовать учет версий и учет изменений в коде? Это можно делать автоматически или все делается вручную?
То есть заводится файл *.TXT и ручками прописываются изменения?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- prinv
- Вымогатель припоя
- Сообщения: 677
- Зарегистрирован: Чт янв 20, 2011 09:07:08
- Откуда: Пермь
- Контактная информация:
Re: AVR studio в вопросах и ответах
#define SOMETHING // вариант
#ifdef SOMETHING
код для варианта
#endif
#ifdef SOMETHING
код для варианта
#endif
Никакая контра не уйдёт от нас
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio в вопросах и ответах
Автоматически - никак. Все равно, кроме вас, никто не знает, что именно вы хотите в сию минуту скомпилировать. Поэтому ПОЛУАВТОМАТИЧЕСКИ - можно.
Даже в древней студии (4.16, например), есть в настройках проекта Active configuration - это папка, куда будет складываться результат компиляции. НО!!! при этом каждая конфигурация имеет СВОИ НАСТРОЙКИ, т.е. все остальные опции проекта могут быть индивидуальными для каждой конфигурации.
Создаете конфигурацию ОК, добавляете в разделе Custom options опцию -D__OK__, и затем по коду при помощи #if defined(__OK__) пишите особый код для общего коллектора. Затем создаете конфигурацию ОА, для нее определяете макрос __OA__ и, соответственно #if defined(__OA__) расписываете... И так сколько угодно... можно и для разных камней делать, и для разных кварцев - для чего угодно!
макрос, определенный при помощи директивы -D виден во всех "исходниках" проекта - пользуйтесь.
Останется только при компиляции выбрать нужную конфигурацию - и все! Говорят, как-то можно еще одной кнопкой ВСЕ конфигурации отбилдить, но я не умею...
Даже в древней студии (4.16, например), есть в настройках проекта Active configuration - это папка, куда будет складываться результат компиляции. НО!!! при этом каждая конфигурация имеет СВОИ НАСТРОЙКИ, т.е. все остальные опции проекта могут быть индивидуальными для каждой конфигурации.
Создаете конфигурацию ОК, добавляете в разделе Custom options опцию -D__OK__, и затем по коду при помощи #if defined(__OK__) пишите особый код для общего коллектора. Затем создаете конфигурацию ОА, для нее определяете макрос __OA__ и, соответственно #if defined(__OA__) расписываете... И так сколько угодно... можно и для разных камней делать, и для разных кварцев - для чего угодно!
макрос, определенный при помощи директивы -D виден во всех "исходниках" проекта - пользуйтесь.
Останется только при компиляции выбрать нужную конфигурацию - и все! Говорят, как-то можно еще одной кнопкой ВСЕ конфигурации отбилдить, но я не умею...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: AVR studio в вопросах и ответах
ARV, спасибо! Меня даже полуавтомат устроил бы, хотя есть выбор всех конфигураций. Надо пробовать.
У меня Atmel Studio 7. Тут все по-другому. Пытаюсь разобраться и найти все настройки, что Вы написали.
Тут я создал две конфигурации: ОА и ОК. Папки создаются автоматически, что уже хорошо.

Попытался прописать как на картинке.
В коде помощник редактора мне предложил такое написание
Черта перед ОА одна, Именно так там в качестве примера была написано _DEBUG.
Попытался откомпилировать - выдает кучу ошибок. Читаю справку. Пока не понял, где ошибка
Добавлено after 7 minutes 8 seconds:
У меня Atmel Studio 7. Тут все по-другому. Пытаюсь разобраться и найти все настройки, что Вы написали.
Похоже этот пункт я нашел верно. Находится в свойствах проекта - Configuration Manager...ARV писал(а):есть в настройках проекта Active configuration
Тут я создал две конфигурации: ОА и ОК. Папки создаются автоматически, что уже хорошо.
С этим сложнее. Не нашел такой пункт меню, нашел нечто похожееARV писал(а):Создаете конфигурацию ОК, добавляете в разделе Custom options опцию -D__OK__,
Попытался прописать как на картинке.
В коде помощник редактора мне предложил такое написание
Код: Выделить всё
#ifdef _OA
#endif // _OAЧерта перед ОА одна, Именно так там в качестве примера была написано _DEBUG.
Попытался откомпилировать - выдает кучу ошибок. Читаю справку. Пока не понял, где ошибка
Добавлено after 7 minutes 8 seconds:
Директиву #if defined студия не понимает. Есть #ifdefARV писал(а):#if defined(__OK__)
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio в вопросах и ответах
Я бы советовал обязательно добавлять подчеркивания к имени макроса, так меньше шансов нарваться на повторное определение... Ну и по умолчанию "строенные" макросы gcc имеют по 2 подчеркивания спереди и, часто, сзади, поэтому свои вы можете делать с одним или тремя... на всякий случай.
а вот по поводу defined я удивлен... avr-gcc должен понимать это, это ж его родное!
а вот по поводу defined я удивлен... avr-gcc должен понимать это, это ж его родное!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- philosoraptor
- Прорезались зубы
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
Re: AVR studio в вопросах и ответах
[uquote="serg_svd",url="/forum/viewtopic.php?p=3201739#p3201739"]Господа программисты! Подскажите начинающему...
Можно ли в студии, используя команды препроцессора, или иные возможности, сделать так, чтобы компилировались различные варианты кода в АВТОМАТИЧЕСКОМ режиме?[/uquote]
Можно делать вложенные дифайны, например
Можно ли в студии, используя команды препроцессора, или иные возможности, сделать так, чтобы компилировались различные варианты кода в АВТОМАТИЧЕСКОМ режиме?[/uquote]
Можно делать вложенные дифайны, например
Код: Выделить всё
#define ID_CHK // AUTO display driver type chip detect
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef ID_CHK
// #define id 0x7783
#define id 0x9325 // set display driver type here manually
//////////// #define id 0x9341 ////////////
#define readID() id //
#define readReg(val) id // dummy placeholder
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#else
uint32_t id = 0;
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Создаем отдельный хедер, что-то вроде presets.h и туда кидаем все директивы. Включаем в проект. И тут важно помнить, что сишный компайлер не умеет возвращаться, поэтому хедер с директивами должен быть объявлен раньше прочих инклудов, где эти директивы используются.И второй вопрос, как организовать учет версий и учет изменений в коде? Это можно делать автоматически или все делается вручную?
То есть заводится файл *.TXT и ручками прописываются изменения?
Re: AVR studio в вопросах и ответах
prinv , philosoraptor это для ручного режима. Я так и делал.
Вот ARV более подходящий вариант для меня написал.
Причем об использовании Configuration Manager... я и до этого догадывался и пробовал даже, но ничего не вышло.
Потому, что надо было еще дополнительно настраивать проект.
У меня же главная проблема - я не владею терминологией в полном объеме. Поэтому и не получилось самому ответ найти просто из-за того, что поисковый запрос неправильно давал.
Вопрос к ARV
Почитал тут хелп, неправильно писал директивы препроцессора. Нужно варианты компиляции писать так
Но вот компилятор явно не понимает. Слово defined в редакторе выделено черным цветом.
Хотя посмотрел встроенные хидеры, там встречается такое написание.
Значит проблема в том, что я что-то где-то в настройках компилятора не активировал
Вот ARV более подходящий вариант для меня написал.
Причем об использовании Configuration Manager... я и до этого догадывался и пробовал даже, но ничего не вышло.
Потому, что надо было еще дополнительно настраивать проект.
У меня же главная проблема - я не владею терминологией в полном объеме. Поэтому и не получилось самому ответ найти просто из-за того, что поисковый запрос неправильно давал.
Вопрос к ARV
Почитал тут хелп, неправильно писал директивы препроцессора. Нужно варианты компиляции писать так
Код: Выделить всё
#if defined(__OA__) // Общий анод
....
#elif defined(__OK__) // Общий катод
....
#endifХотя посмотрел встроенные хидеры, там встречается такое написание.
Значит проблема в том, что я что-то где-то в настройках компилятора не активировал
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio в вопросах и ответах
Опция -std=gnu99 есть? Или на вкладке General должно быть что-то про стандарт Си, или в Miscellaneus самостоятельно добавьтеserg_svd писал(а):Значит проблема в том, что я что-то где-то в настройках компилятора не активировал
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: AVR studio в вопросах и ответах
ARV Еще раз огромное спасибо за помощь!!!!
Все получилось. Ошибка была моя. Вернее даже не знаю, ошибка или нет.
В общем я поудалял все конфигурации, что я создавал до этого. Остались только DEBUG и RELEASE.
Далее, я настроил нужный мне уровень оптимизации в RELEASE (это делать необязательно в принципе).
Далее, в Configuration Manager... в списке Active solution configurationя выбрал <NEW>. В появившемся окне Задается имя конфигурации и, обязательно, в списке Copy settings from: выбираем Release! Я этого первоначально не сделал, и бог его знает, какие настройки выставил компилятор по-умолчанию и при компиляции вываливалась куча ошибок. А так копируются настройки с Release. Галочку оставить.

Вот у меня как раз проблема и была в том, что не скопировал настройки с релиза.
Кстати, единственное пока не знаю, стоит ли оставлять в опциях -D NDEBUG, такой стоит по-умолчанию для Release
PS эххх.... еще б к имени файла в папке добавлял бы имя конфигурации

Ёлки палки! и это получилось
. Имя прописывается на вкладке Build
Все получилось. Ошибка была моя. Вернее даже не знаю, ошибка или нет.
В общем я поудалял все конфигурации, что я создавал до этого. Остались только DEBUG и RELEASE.
Далее, я настроил нужный мне уровень оптимизации в RELEASE (это делать необязательно в принципе).
Далее, в Configuration Manager... в списке Active solution configurationя выбрал <NEW>. В появившемся окне Задается имя конфигурации и, обязательно, в списке Copy settings from: выбираем Release! Я этого первоначально не сделал, и бог его знает, какие настройки выставил компилятор по-умолчанию и при компиляции вываливалась куча ошибок. А так копируются настройки с Release. Галочку оставить.
Вот у меня как раз проблема и была в том, что не скопировал настройки с релиза.
Кстати, единственное пока не знаю, стоит ли оставлять в опциях -D NDEBUG, такой стоит по-умолчанию для Release
PS эххх.... еще б к имени файла в папке добавлял бы имя конфигурации
Ёлки палки! и это получилось
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- philosoraptor
- Прорезались зубы
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
Re: AVR studio в вопросах и ответах
[uquote="serg_svd",url="/forum/viewtopic.php?p=3201986#p3201986"]более подходящий вариант для меня[/uquote]
Если нет цели сделать код максимально портируемым и платформонезависимым, то можно и так, наверно. Лично мне же проще строчку в хедере поменять.
Если нет цели сделать код максимально портируемым и платформонезависимым, то можно и так, наверно. Лично мне же проще строчку в хедере поменять.
- wws63
- Сверлит текстолит когтями
- Сообщения: 1230
- Зарегистрирован: Вс май 21, 2006 16:07:59
- Откуда: Алтай
Re: AVR studio в вопросах и ответах
Подскажите, как подключить внешний хидер в 6 студии? Не могу найти, блиннннн...
Разобрался
Разобрался
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR studio в вопросах и ответах
Решил я тут попробовать на Си порисовать для АТмега168.
Все, как напсано у :
http://easyelectronics.ru/avr-uchebnyj- ... ast-1.html
делаю.
А он мне не создает в папке Мэйк-файл.
Студия 4,19
Добавлено after 11 minutes 7 seconds:
все. разобрался. Спасибо. Надо было просто скомпилировать.
Добавлено after 26 minutes 46 seconds:
Короче, у меня косяк какой-то в Студии. Только что поставил сверху ВинАВР. Он у меня, похоже, не увязался с нею. При компиляции выдает ошибку и все тут.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: avr-gcc.exe
Причем какую ошибку я понять не могу. Сначала жаловался, что какого-то файла у него нет.
Добавлено after 7 minutes 54 seconds:
/usr/bin/sh
Вот этот ресурс вроде говорит временно не доступен. А где его искать? Что-то все перекопал.
Добавлено after 2 minutes 46 seconds:
И вроде как на rm.exe жаловался. Я его нашел в папках Студии. А вот чего делать дальше не бум-бум.
З.Ы. Все. прошу пощения за беспокойство. Все исправил, все работает. )))
Все, как напсано у :
http://easyelectronics.ru/avr-uchebnyj- ... ast-1.html
делаю.
А он мне не создает в папке Мэйк-файл.
Студия 4,19
Добавлено after 11 minutes 7 seconds:
все. разобрался. Спасибо. Надо было просто скомпилировать.
Добавлено after 26 minutes 46 seconds:
Короче, у меня косяк какой-то в Студии. Только что поставил сверху ВинАВР. Он у меня, похоже, не увязался с нею. При компиляции выдает ошибку и все тут.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: avr-gcc.exe
Причем какую ошибку я понять не могу. Сначала жаловался, что какого-то файла у него нет.
Добавлено after 7 minutes 54 seconds:
/usr/bin/sh
Вот этот ресурс вроде говорит временно не доступен. А где его искать? Что-то все перекопал.
Добавлено after 2 minutes 46 seconds:
И вроде как на rm.exe жаловался. Я его нашел в папках Студии. А вот чего делать дальше не бум-бум.
З.Ы. Все. прошу пощения за беспокойство. Все исправил, все работает. )))
Станислав
Re: AVR studio в вопросах и ответах
Здравствуйте. Зависает отладчик Atmelstudio 6.2
вот код
при пошаговой отладке проходит строчку port_ini(); как доходит до структур просто тупо зависает на месте и все иконки на панели становятся неактивными, как быть? мб где то галки в настройках не стоит? помогите.Хочу через Watch посмотреть что там внутри происходит
вот код
Код: Выделить всё
void port_ini (void){
DDRB = (1 << PB0) //выход
|(1 << PB1)//выход
|(0 << PB2)
|(0 << PB3)
|(0 << PB4);
PORTB=0b00000000;
}
typedef struct //создаем синоним структуры
{
unsigned char sequence; //последовательность
unsigned char intervals[8]; //время
} Timers;
int main(void)
{
port_ini(); //Инициализируем порты
Timers Timer_1 = {0b10101010, {1, 1, 1, 1, 2, 1, 2, 1}};
Timers Timer_2 = {0b01010101, {1, 1, 1, 1, 2, 1, 2, 1}};
while(1)
{
Timer_1.sequence = 54;
Timer_2.sequence = Timer_1.sequence;
Timer_2.sequence = 4;
Timer_1.sequence = Timer_2.sequence;
}
}




