WinAvr в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
savage
Нашел транзистор. Понюхал.
Сообщения: 187
Зарегистрирован: Пн дек 17, 2007 14:06:09
Откуда: Саранск

Сообщение savage »

ARV
Спасибо!
что то я об этом тоже не подумал.
Да, интересно, почему CodeVision ухитряется обойтись малой кровью. Расчитан на нас - неучей?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

savage писал(а):ARV
Спасибо!
что то я об этом тоже не подумал.
Да, интересно, почему CodeVision ухитряется обойтись малой кровью. Расчитан на нас - неучей?

очень может быть :) но скорее всего там иной принцип построения компилятора - GCC - это действительно кросплатформенный компилятор, там все нюансы стандарта реализованы + всякие нюансы МК... а CodeVision, возможно, заточен именно под МК AVR, и какие-то возможности от стандарта Си отходят... Так что еще не факт, что в действительно серьезных проектах CodeVision не выкинет какого-то иного коника...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
savage
Нашел транзистор. Понюхал.
Сообщения: 187
Зарегистрирован: Пн дек 17, 2007 14:06:09
Откуда: Саранск

AVR-GCC под LINUX

Сообщение savage »

Никто не озадачивался AVR-GCC под LINUX?
Ищу подходящую графическую оболочку для него. Чтото пока не продвинулся.
Связка Wine+WinAVR+AVRStudio4 не работает в виду подвисания студии.
Eclipse+AVR-GCC хороший выход, но не нравится каждый раз в свойствах проекта прописывать компилятор и пути. К тому же я не освоился пока с Eclipsом.
Может видел кто готовые примочки для Eclipsа чтобы заставить его напрямую работать с avr-gcc, или графическую оболочку наподобии AVRStudio?
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

jax писал(а):ребят, подскажите как грамотно опросить кнопку?
я делаю

Код: Выделить всё

if(!(PINC & (1<<PC3)))

в программе всего лишь две процедуры:main и та, которая вызывается по нажатию кнопки.
при нажатии кнопки вызванная процедура зацикливается..
как быть?


Код: Выделить всё

if(bit_is_clear(PINC,PC3)) {...} // Если бит сброшен, то...
// if(bit_is_set(PINC,PC3)) {...}
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

Что такого серьезного поменяли в версии WinAVR 2007 года?
То что компилится и работает в 2005ой не работает в 2007ой версии, а именно драйвер ЖКИ, хотя при компиляции ошибок нет. :cry: :( :o :shock:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

хрен его знает, че они там понаменяли... вроде, пишут, только улучшили и рсширили... однако из листинга пропали операторы Си, что меня больше всего огорчает :(
однако по логике вещей все должно компилиться без искажений... совместимость-то вроде бу сохранена.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

только, что попробовал на 2006ой - все работает.
захожу в 2007ую - тоже компилит нормально (все файлы кроме исходников удалил)
размер програмы такой же как и в 2006ой получается
удаляю 2006ую, пробую опять в 2007ой - уже прошывка на 100 байт меньше и не работает как следует! прикол...
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

подскажыте, как зделать так, чтобы компилятор не компилировал функции которые я не использую? Ато я все свои полезные функции кинул в один файлик, но когда его подключаю, то фсе эти функции записываются в МК, хотя я использую только некоторые.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Томатный писал(а):подскажыте, как зделать так, чтобы компилятор не компилировал функции которые я не использую? Ато я все свои полезные функции кинул в один файлик, но когда его подключаю, то фсе эти функции записываются в МК, хотя я использую только некоторые.
это делается так:
1. открываем опции проекта, заходим в раздел Custom Options
2. в этом разделе в строке левее кнопки Add вводим следующее -ffunction-sections
3. Нажимаем кнопку Add
4. в окошке слева щелкаем на [Linker Options]
5. теперь в той же строке вводим -Wl,-gc-sections
6. жмем Add и Ok
7. выполняем компиляцию всего проекта Build all

Внимание! Эти опции вкупе с режимами оптимизации могут создавать удивительные ситуации при отладке! Код при этом остается работоспособным. Выделенные синим строки вводить 1 в 1, как написано, пробелы и регистр критичны!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Томатный
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт июл 31, 2007 20:32:30
Откуда: Киев, Украина
Контактная информация:

Сообщение Томатный »

не нашел :oops:
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

knyaz* писал(а):Написал программу - нет прерывания... - TAXOMETP.zip
http://www.radiokot.ru/forum/viewtopic.php?t=8473


Если у вас новый WinAVR то SIGNAL нужно заменить так как описано в примерах для разных компиляторов на стр. 3 "Прерывания в AVR"
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
knyaz*
Грызет канифоль
Сообщения: 255
Зарегистрирован: Пн фев 11, 2008 20:32:45
Откуда: Краснодарский край

Сообщение knyaz* »

у меня avr-gcc для linux спасибо
Аватара пользователя
knyaz*
Грызет канифоль
Сообщения: 255
Зарегистрирован: Пн фев 11, 2008 20:32:45
Откуда: Краснодарский край

Сообщение knyaz* »

проблема возникает очень большая тот же самый код скомпилированный в CVAVR работает нормально а вот если компилировать в WinAVR или avr-gcc (что по сути одно и тоже) работать отказывается?

Кто сталкивался с таким траблом...
Аватара пользователя
Brutaller
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн ноя 05, 2007 12:44:43
Откуда: C:\Russia\SPb
Контактная информация:

Сообщение Brutaller »

Хоть я и склоняюсь к ассемблеру, но всё-таки решил поэкспериментировать на сях. Вобщем попробовал я переписать на сях то, что было написано на асме и успешно работало. Взял IAR, написал, скомпилил, зашил, - работает. Взял CodeVisionAVR, написал, скомпилил, зашил, - работает. Взял WinAVR, написал, скомпилил, зашил, - НЕ работает. :))
В исходниках подправлялись только места под конкретные особенности каждого компилятора. Например объявление функции прерывания, хэдеры и т.п. В остальном код не менялся. При чем в первых двух вышеупомянутых компиляторах все работало на любом уровне оптимизации. А в WinAVR не заработало ни на одном уровне. При чем компилил как при помощи идущего в комплекте "Programmers Notepad", так и через AVRStudio, результат один и тот же. Потом попробовал поиграться с ним, посоздавать какие-нибудь функции и т.д. Так это вообще - мрак. Он оказывается умеет создавать фукции без конечной инструкции RET, с бесконечным циклом. Попав в которую я думаю ясно - что будет. :)) Это всё касается версии WinAVR-20071221 Про другие ничего не могу сказать. Но именно эта создала впечатление полной непредсказуемости и глючности.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Brutaller писал(а):Это всё касается версии WinAVR-20071221 Про другие ничего не могу сказать. Но именно эта создала впечатление полной непредсказуемости и глючности.


Советую использовать предыдущую версию WinAVR.
Последний раз редактировалось tych Сб мар 29, 2008 20:52:44, всего редактировалось 2 раза.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Brutaller
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн ноя 05, 2007 12:44:43
Откуда: C:\Russia\SPb
Контактная информация:

Сообщение Brutaller »

tych писал(а):Советую использовать предыдущую версию WinAVR.
Какую именно, номер?
Между прочим совсем на днях появилась 20080402rc1, надо попробовать.
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Brutaller писал(а):
tych писал(а):Советую использовать предыдущую версию WinAVR.
Какую именно, номер?


Скачайте стабильную версию WinAVR-20060421 (24 Мб) и сохраните в вашем архиве - авось еще пришодится.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Brutaller
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн ноя 05, 2007 12:44:43
Откуда: C:\Russia\SPb
Контактная информация:

Сообщение Brutaller »

tych писал(а):Скачайте стабильную версию WinAVR-20060421 и сохраните в вашем архиве - авось еще пришодится.

А это что, единственная стабильная версия? А все последующие бажные?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

WinAVR я сам осваиваю недолго, однако, особых глюков не заметил... если не считать вынесенной в отделную тему проблемы с EEPROM, да и то еще неизвестно, что именно там за проблема...
WinAVR по моему скоромному мнению вполне нормально все компилит, просто сильно соответствует стандарту С99 и не прощает разных вольностей, которые часто прощают другие компиляторы. Но если привести исходник в строгое соответствие стандарту - по-моему, все отлично работает.
А оптимизация визуально может приводить к странному поведению при отладке... но это не глюк, так по идее во всех системах...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Brutaller
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн ноя 05, 2007 12:44:43
Откуда: C:\Russia\SPb
Контактная информация:

Сообщение Brutaller »

Ага, разобрался в чем дело. Беру свои слова по поводу глюкавости назад. Дело в том, что если в CVAVR или IAR достаточно было написать:
PORTB=Table[Dig1];
чтобы загрузить байт из памяти программ,
то в WinAVR надо вот так:
PORTB=pgm_read_byte(&Table[0]+Dig1);
т.е. через указатели и специальные функции %)
И еще интересная строчка попалась в файле avr-libc-user-manual.pdf
GCC does not have full support for multiple address spaces yet
и потом куча всяких функций для доступа к памяти программ.
Ну вобщем то ясно, всё-таки WinAVR это "порт" GCC под avr, поэтому то такие вот пляски :)
Ответить

Вернуться в «AVR»