Страница 1 из 2

Codeblock и winavr .... и возникшая проблема от сего синтеза

Добавлено: Сб авг 05, 2017 16:57:00
Catdawr
Здравствуйте друзья, помогите разобраться, вот у меня codeblock (с winavr) и студия АВР. Так как студия на моем компютере немного долго включается, компилирует тоже ( код из нескольких строк с морганием диодом и пары delay-ев занял секунд 10) и проекты долго включает.... ну тут комп такой, что с ним только не делал, но сейчас не об этом. И вот, значит codeblock. Идентичный код( моргалок со студии), компилированный с код блока ведет себя странно. Ну именно delay. Пара варнингов типо :

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

warning: "F_CPU" redefined
warning: this is the location of the previous definition
warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
Вот и всё что он мне говорит. А вот, собственно, что выходит - заливаю hex в протеус, и там где стоит delay в коде он его игнорирует, и все что стоит за ним. По ошибкам ничего конкретного не нашел. вот код
Спойлер

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


#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>



int main(void)
{
DDRD= 0x03;
PORTD=0x00;

    while(1){
 
    if  (PIND&(1<<PD2)){

	   _delay_ms(200);
	    PORTD |= (1<<PD0);
	    _delay_ms(200);
	    PORTD &= ~(1<<PD0);
    }
    }
    return 0;
}

То есть, в данном случае проверка кнопки есть, реакции нету. Если уберу первый _delay_ms(200) - загорится, если нажать кнопку, ... и будет продолжать гореть ни разу не моргнув.

Надо заметить, что студия на этот код не ругается и делает работоспособным, но делает это чертовски мееееееедленно.
Может, знает кто в чем дело?

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Сб авг 05, 2017 19:54:58
Ivanoff-iv
антивирь? (какую нибудь песочницу включает)

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Сб авг 05, 2017 20:06:08
Voda
WinAvr устарел давно. Установите Atmel AVR Toolchain и укажите к нему пути в настройках компилятора.
Включите оптимизацию.
уберите #define F_CPU 1000000UL

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Сб авг 05, 2017 20:56:25
mrFox
У CodeBlock F_CPU задается в project / build options -> закладка defines
и #define F_CPU в коде лишняя о чем и сообщает компилятор
дальше сообщение, что задержка не будет работать как положенно
А всякие "чудеса" происходят от разных опций компилятора под студию и кодеблок
посмотрите какие настройки стоят в студии и какие в кодеблоке

PS самая низкопотребляемая по памяти компиляция - make all
редактор - в винде notepad++, под linux есть Geany

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Сб авг 05, 2017 22:01:18
Catdawr
антивирь? (какую нибудь песочницу включает)
- у меня антивирь порядошный, о таком он сообщает
WinAvr устарел давно. Установите Atmel AVR Toolchain и укажите к нему пути в настройках компилятора.
Включите оптимизацию.
-Убрать winavr, поставить Atmel AVR Toolchain, хорошо. Надо будет найти как включать оптимизацию :)))
А всякие "чудеса" происходят от разных опций компилятора под студию и кодеблок
посмотрите какие настройки стоят в студии и какие в кодеблоке
-Ам, а есть предложения, на какие настройки обратить внимание?

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Сб авг 05, 2017 23:58:32
Voda
Надо будет найти как включать оптимизацию :)))
Переключите цель сборки на release.
Далее project,build options,слева-release, ищете optimization, -O.
Была у меня такая проблема уже :))

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 20:26:05
Catdawr
Спасибо всем, кто отозвался.

Добавлено after 2 hours 38 minutes 59 seconds:
Re: Codeblock и winavr .... и возникшая проблема от сего синтеза
Ох, мне походу еще и помощь с установкой Atmel AVR Toolchain. вообще, не нашел там никакой установки... есть- avr8-gnu-toolchain-osx-3.5.4.468-darwin.any.x86_64.tar.gz Если его разархивировать, и указать в "GNU GCC ... for AVR" и toolchain executables-е папку bin, то .... программа, всё равно, не компилируется. И просто исходную папку указывал, тоже ничего.
Как, собстно, надо то? Поясните пожалуйста.

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 21:12:39
Voda
Т.к у Вас уже есть студия - посмотрите где-нибудь в C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 21:43:16
Catdawr
...Да, где то там я их нашел). Поставил оптимизацию... Теперь он не ругается ( ни одного варнинга ), но продолжает решительно игнорировать delay-и.

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:15:47
Voda
При создании проекта правильно указали F_CPU?
Если нет, то project / build options -> закладка defines.

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:23:28
Catdawr
Убрал из кода переназначение F_CPU. Менял в "билд опшоне"- изменений никаких.

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:30:53
Voda
Что у Вас во вкладке Settings->compiller->Search directories-> Compiller и Linker?

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:33:06
Catdawr
Абсолютное ничего, а нет, пордон, это я не туда зашел ( это был просо GNU GCC compiler).... В GNU GCC compiler for AVR по 2 строки почти идентичные
C:\WinAVR\avr\include ... \lib
C:\WinAVR-20100110\avr\include ... \lib

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:35:23
Voda
Тогда Project->build options->compiller->Search directories-> Compiller и Linker?

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:39:31
Catdawr
Тогда Project->build options->compiller->Search directories-> Compiller и Linker?
А вот тут уже пусто

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:43:40
Voda
GNU GCC compiler for AVR поставьте по умолчанию пока.
Поменяйте эти пути на те, что в студии.
Т.е. compiller C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include
linker C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\lib

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:51:58
Catdawr
Да , я понял, но результата не дало. стоит ВинАвр-овские удалить?

Добавлено after 1 minute 53 seconds:
Re: Codeblock и winavr .... и возникшая проблема от сего синтеза
... Не важно, уже сделал, толку нет

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:52:58
Voda
Я сдаюсь, у меня в железе всё работает. Не поленился и залил в attiny85 :))

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 22:59:15
Catdawr
Дак в том то и дело. Что в студии работает а в Кблоке- нет... Ладно попробую его переустановить, еще что нибудь потыкаю, а пока спасибо за потраченое в пустую ваше время)

Re: Codeblock и winavr .... и возникшая проблема от сего син

Добавлено: Вс авг 06, 2017 23:02:32
Voda
Дак в том то и дело, что у меня тоже в Коде-блоке :dont_know: