AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: AVR studio 4 в вопросах и ответах

Сообщение Goldsmith »

shads писал(а):в принципе - 30% - это и не реально.
В принципе вполне возможно, если первая сборка компилировалась без оптимизации, а вторая - с максимальной. Подозреваю, что об оптимизации на сайте рукодельниц ничего не написали.

Вообще Studio - это не компилятор, а всего лишь относительно удобная (впрочем, дело вкуса) оболочка (IDE), так что ее замена никак не влияет на качество кода (что Вы и наблюдали в своем случае).
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Реклама
Аватара пользователя
passer_by
Открыл глаза
Сообщения: 42
Зарегистрирован: Сб янв 05, 2013 21:03:05

Re: AVR studio 4 в вопросах и ответах

Сообщение passer_by »

Goldsmith писал(а):Подозреваю, что об оптимизации на сайте рукодельниц ничего не написали.

:) Ладно вам издеваться над маленьким. Там вообще не написали :) Я с этой оптимизацией еще на четверке задолбался.
Goldsmith писал(а):Вообще Studio - это не компилятор, а всего лишь относительно удобная (впрочем, дело вкуса) оболочка ....

А кто сказал, что они к шестерке прикрутили старый компилятор? И лишь подкрасили редактор.(К стати оч. рекомендую для новичков, не профессионалов, хоть с синтаксисом не паришься.
shads писал(а):Ошибочка где то у вас вышла..... ....

Ну не знаю, мож я так пишу, мож в зависимости от самого сишного кода. У меня там три вектора прерывания, измерение напряжения, температуры, LCD-дисплей и UART, правда не законченный.
Прилагаю более правильные картинки - прикрутил в атаче.
Вложения
AVR_6_.jpg
(163.03 КБ) 834 скачивания
AVR_4_.jpg
(135.93 КБ) 523 скачивания
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
Реклама
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: AVR studio 4 в вопросах и ответах

Сообщение shads »

А попробуйте поставить Os..... у меня просто и в 4-ке и в 6-ке такой уровень оптимизации стоит..... интересно какой у вас результат будет.....

И еще... сдается мне что проектики в разных студиях, все таки тоже разные..... почему интересно в 6-й data memory usage = 117 bytes, а в 4-й то же самое = 381 bytes..... Как такое может быть..... У меня например - очевидно что один проект - и там и там 278 байт.....
Аватара пользователя
passer_by
Открыл глаза
Сообщения: 42
Зарегистрирован: Сб янв 05, 2013 21:03:05

Re: AVR studio 4 в вопросах и ответах

Сообщение passer_by »

Сделал:
AVRStudio 4 -
Program: 6646 bytes (81.1% Full)
(.text + .data + .bootloader)
Data: 381 bytes (37.2% Full)
(.data + .bss + .noinit)
Склеил
Gudd-Head

Atmel Studio 6.0
Program Memory Usage : 4158 bytes 50,8 % Full
Data Memory Usage : 117 bytes 11,4 % Full
shads писал(а):И еще... сдается мне что проектики в разных студиях, все таки тоже разные..... почему интересно в 6-й data memory usage = 117 bytes, а в 4-й то же самое = 381 bytes..... Как такое может быть..... У меня например - очевидно что один проект - и там и там 278 байт.....

И для меня это загадка.
Проект составлен изначально в AVRStudio 4. В Atmel Studio 6.0 в новый проект я тупо копирую сишный код, символ в символ, компилирую.

P.S. Сейчас, для полного контроля, прошил из AVRStudio 4 и препрошил из Atmel Studio 6.0. Все работает, крутится, меряется.
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: AVR studio 4 в вопросах и ответах

Сообщение shads »

Выпросил я таки на медни у passer_by исходник..... Прям интересно стало, как так.... разница такая.....
Сразу бросилась в глаза работа с плавающей точкой (float), ну я как в воду смотрел..... состряпал небольшой фрагментик, чтобы там float был:

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

#include <avr/io.h>

int main(void)
{
    while(1)
    {
        float x=0.01;
        for (char i=0; i<255; i++)
        {
            char temp = x*i;
            PORTB = temp;
        }
    }
}
 


и вот какой результат:
это 4-ка
Изображение


это 6-ка
Изображение


ВЫВОД: студия 4-я просто убивает память при работе с плавающей точкой.....

Если без плавающей точки, то тоже маленькая экономия есть.... у меня 100 байт съэкономилось на 6 Кб коду.....
Вложения
img2.jpg
(5.76 КБ) 3094 скачивания
img1.jpg
(6.67 КБ) 3048 скачиваний
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio 4 в вопросах и ответах

Сообщение Engineer_Keen »

Дизассемблер обоих вариантов посмотреть бы, вот что любопытно...
Реклама
Аватара пользователя
passer_by
Открыл глаза
Сообщения: 42
Зарегистрирован: Сб янв 05, 2013 21:03:05

Re: AVR studio 4 в вопросах и ответах

Сообщение passer_by »

Ну вот. А вы думали, я шестерку рекламирую? Ща вот еще пару float воткну, и ваще экономия будет 50%.
И с оптимизатором четверки все плохо. Доходило до того, что где можно и где нельзя втыкал volatile, что бы он не лез со своей оптимизацией. Так что получается я не зря "гнался за прогрессом" :)))
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: AVR studio 4 в вопросах и ответах

Сообщение HHIMERA »

passer_by писал(а): Ща вот еще пару float воткну, и ваще экономия будет 50%.

Угу... А если ещё парочку воткнуть, то у Меги флэш магически увеличится вдвое!!! :))) :)))
И с оптимизатором четверки все плохо. Доходило до того, что где можно и где нельзя втыкал volatile, что бы он не лез со своей оптимизацией.

"No comment!" :kill:
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: AVR studio 4 в вопросах и ответах

Сообщение HHIMERA »

Кстати...
"Четвёрка"... приведённый выше пример...

Program: 670 bytes (8.2% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: AVR studio 4 в вопросах и ответах

Сообщение shads »

HHIMERA писал(а):Кстати...
"Четвёрка"... приведённый выше пример...

Program: 670 bytes (8.2% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)

А чего это..... у нас четверки покалеченные чтоли?........

Или четверку надо каким то особым образом уговаривать..... чтобы аппетит был меньше?.....
infinity19891
Встал на лапы
Сообщения: 141
Зарегистрирован: Вс дек 18, 2011 10:26:43
Откуда: Пинск

Re: AVR studio 4 в вопросах и ответах

Сообщение infinity19891 »

Всем привет!
Взялся я за компиляцию программы для кодового замка (Atmega8), при компиляции выдаёт ошибки, причём в WinAVR одни, а в AVR Studio 4 одна. Подскажите что и где не так? Заранее благодарен.
Выкладываю исходник и скриншоты ошибок.
Вложения
codelocker.zip
(7.34 КБ) 214 скачиваний
Error_winavr.png
(89.5 КБ) 391 скачивание
error_avrstudio4_1.png
(80.63 КБ) 703 скачивания
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio 4 в вопросах и ответах

Сообщение Engineer_Keen »

В первом случае куча разных ошибок и похоже какого-то файла не хватает в инклудах, а может и не одного, во втором - студия не понимает русских букв в пути.
Аватара пользователя
passer_by
Открыл глаза
Сообщения: 42
Зарегистрирован: Сб янв 05, 2013 21:03:05

Re: AVR studio 4 в вопросах и ответах

Сообщение passer_by »

Не очень хорошо разбираюсь в библиотеках, но что это:
В lcd.h -
#define LCDWriteString(x,y,msg) ????
void LCDWriteString(const char *msg);
Если птичка уже в одном прыжке от тебя, всё-таки побереги свой нос, может она за оконным стеклом???
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: AVR studio 4 в вопросах и ответах

Сообщение a_skr »

Вы где взяли этот проект? Такое ощущение, что он "сознательно испорчен".
От нечего делать исправил "ошибки". Но не факт, что работать будет. (WinAVR, проверьте частоту в makefile)
Вложения
3333333.zip
(13.96 КБ) 192 скачивания
infinity19891
Встал на лапы
Сообщения: 141
Зарегистрирован: Вс дек 18, 2011 10:26:43
Откуда: Пинск

Re: AVR studio 4 в вопросах и ответах

Сообщение infinity19891 »

a_skr писал(а):Вы где взяли этот проект? Такое ощущение, что он "сознательно испорчен".
От нечего делать исправил "ошибки". Но не факт, что работать будет. (WinAVR, проверьте частоту в makefile)

Спасибо огромное! Буду должен, как говорится.
Скачал с сайта (не помню какого), в комплекте была схема устройства, печатная плата и вот собственно исходник, который напрочь отказался компилироваться. А так как я не силён ещё в С, обратился сюда. Сам я ничего там не переписывал, попросту не знал за что браться. Ещё раз спасибо!
infinity19891
Встал на лапы
Сообщения: 141
Зарегистрирован: Вс дек 18, 2011 10:26:43
Откуда: Пинск

Re: AVR studio 4 в вопросах и ответах

Сообщение infinity19891 »

Господа! Нужен совет:

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

DDRPORT|=(1<<PINn);//является ли это выходом? (если учесть что это просто пример)

Можно ли на PORTB назначить к примеру PB0-PB5 выходы, а PB6 и PВ7 входы? Если можно, то какой командой это делается?
Заранее спасибо!
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio 4 в вопросах и ответах

Сообщение Engineer_Keen »

Можно. Направление порта задается битами регистра DDRx, для порта B это DDRB.

DDRB=(1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5)|(1<<PB5)

или

LDI R16,(1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5)|(1<<PB5)
OUT DDRB,R16
infinity19891
Встал на лапы
Сообщения: 141
Зарегистрирован: Вс дек 18, 2011 10:26:43
Откуда: Пинск

Re: AVR studio 4 в вопросах и ответах

Сообщение infinity19891 »

Народ, подскажите кто-нибудь ещё:
В этой функции есть ошибка, которая мешает компиляции

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

void ReadAll(void)
{
   uint i;
   RDat[0]=ReadRandom(0);
   for(i=1;i<2048;i++)
   RDat[i]=ReadCurrent(i/256);
}

Скрин ошибки во вложении. Подскажите как исправить?
Вложения
error.png
(8.72 КБ) 728 скачиваний
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: AVR studio 4 в вопросах и ответах

Сообщение vitalik_1984 »

Пробовали переводить? translate.google.com
там написано непродекларированная переменная rdat
первое использование в функции Readall

самое первое предупреждение относится к переносу текста из CVAVR в студию, в компиляторе gcc нет директивы #pragma used можно ее просто удалить.
оставшиеся предупреждения тоже связаны с непрямой декларацией функций.
infinity19891
Встал на лапы
Сообщения: 141
Зарегистрирован: Вс дек 18, 2011 10:26:43
Откуда: Пинск

Re: AVR studio 4 в вопросах и ответах

Сообщение infinity19891 »

С #pragma used я так и поступил. А как правильно поступить с RDat - вот в чём вопрос. А переводчик использовать мне нет нужды, английский итак знаю. Просто зачастую лучше один раз увидеть, чем 1000 раз услышать. :)
Ответить

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