реклама на сайте
подробности

 
 
> WinAVR-20100110, Пишем отзывы сюда
_Pasha
сообщение Jan 16 2010, 00:18
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Собсно сабж.
Попробовал пока ничего плохого не могу сказать. За выходные разберемся
Слито вместе avr & avr32. Прикольно. 275 метров

AVR-gcc 4.3.3
AVR32-gcc 4.3.2
Make 3.81 - наконец-то ! Или он уже давно там... не помню, ну да ладно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Feb 8 2011, 07:48
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Кто-нибудь может объяснить феномен. -Os
CODE

#include <avr/io.h>
int main(void);
volatile uint32_t interf;
int main(void)
{
while(PINB & 4)
{
uint32_t data=0;
for(uint8_t msk=0;msk < 24; msk++)
{
PORTB |= 0x80;
if(PINB & 0x40) data |= 1;
data <<= 1;
PORTB &= 0x7F;
}
interf = data;
}
return 0;
}

Листинг правильный - его не привожу, т.к. все тривиально
Дальше, если это сделать в таком виде
CODE

#include <avr/io.h>
int main(void);
volatile uint32_t interf;
int main(void)
{
while(PINB & 4)
{
uint32_t data;
for(uint8_t msk=0,data=0;msk < 24; msk++)
{
PORTB |= 0x80;
if(PINB & 0x40) data |= 1;
data <<= 1;
PORTB &= 0x7F;
}
interf = data;
}
return 0;
}

Листинг - конец света. Выкинул, родимый, все на корню.
CODE

int main(void)
{
44: 0f c0 rjmp .+30 ; 0x64 <main+0x20>
while(PINB & 4)
46: 80 e0 ldi r24, 0x00 ; 0
{
uint32_t data;
for(uint8_t msk=0,data=0;msk < 24; msk++)
{
PORTB |= 0x80;
48: c7 9a sbi 0x18, 7 ; 24
if(PINB & 0x40) data |= 1;
4a: 96 b3 in r25, 0x16 ; 22
data <<= 1;
PORTB &= 0x7F;
4c: c7 98 cbi 0x18, 7 ; 24
int main(void)
{
while(PINB & 4)
{
uint32_t data;
for(uint8_t msk=0,data=0;msk < 24; msk++)
4e: 8f 5f subi r24, 0xFF ; 255
50: 88 31 cpi r24, 0x18 ; 24
52: d1 f7 brne .-12 ; 0x48 <main+0x4>
PORTB |= 0x80;
if(PINB & 0x40) data |= 1;
data <<= 1;
PORTB &= 0x7F;
}
interf = data;
54: 10 92 60 00 sts 0x0060, r1
58: 10 92 61 00 sts 0x0061, r1
5c: 10 92 62 00 sts 0x0062, r1
60: 10 92 63 00 sts 0x0063, r1
#include <avr/io.h>
int main(void);
volatile uint32_t interf;
int main(void)
{
while(PINB & 4)
64: b2 99 sbic 0x16, 2 ; 22
66: ef cf rjmp .-34 ; 0x46 <main+0x2>
PORTB &= 0x7F;
}
interf = data;
}
return 0;
}
68: 80 e0 ldi r24, 0x00 ; 0
6a: 90 e0 ldi r25, 0x00 ; 0
6c: 08 95 ret


Что же такого крамольного в for(uint8_t msk=0,data=0;msk < 24; msk++) ? cranky.gif
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 8 2011, 09:37
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(_Pasha @ Feb 8 2011, 10:48) *
Что же такого...
Глобальную за локальной не видать. А локальная не используется, вот и выкинул...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 8 2011, 11:13
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(SysRq @ Feb 8 2011, 12:37) *
Глобальную за локальной не видать. А локальная не используется, вот и выкинул...

Точняк!
И даже больше локальная переменная внутри тела цикла не 32-битная, а 8-ми.
Так вот всё будет однозначно:
Код
        uint32_t data;
        uint8_t msk;
        
        for (msk=0, data=0; msk<24; msk++)


Цитата(_Pasha @ Feb 8 2011, 13:55) *
Кого? Он жеж глобальную по отношению к циклу и выкинул.

А вас что, он не предупреждал:
Код
main.c:28: warning: 'data' may be used uninitialized in this function


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 8 2011, 11:19
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(demiurg_spb @ Feb 8 2011, 14:13) *
А вас что, он не предупреждал:

В том и дело, что если инициализировать и в начале и в цикле, предупреждения не будет, но овнокод тот же.

Цитата(AHTOXA @ Feb 8 2011, 14:01) *
, то догадаться уже сложнее sm.gif

Вот! Компилер живет своей жизнью, и надо его попросить сделать правильный код. Может, денег хочет?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 8 2011, 11:41
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Да ладно! Он честно ругнулся - вы игнорировали.
Ход его рассуждений тоже понять можно, раз уж программисту неважна эта переменная (её значеие),
то я забью на неё и связанное с ней биг-болтsm.gif

Цитата(_Pasha @ Feb 8 2011, 14:19) *
В том и дело, что если инициализировать и в начале и в цикле, предупреждения не будет, но овнокод тот же.

В том и дело что в цикле Вы инитите уже другую локальную переменную с тем же именем.
По идее warning по отношению ко внешней относительно цикла переменной должен бы был остаться... Похоже на багу в этой версии avr-gcc 4.3.3.

Проверил на 4.4.3 - уже пофиксили - даёт warning.

Так-что не надо катить бочку на святое! :-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 8 2011, 11:41
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(demiurg_spb @ Feb 8 2011, 14:32) *
тоже понять можно, раз уж программисту неважна эта переменная (её значеие),
то я забью на неё и связанное с ней биг-болтsm.gif

Дык низзя жеж понять - магическая запятая - и все пропало ©!!! Давайте тогда ваще все выкинем(б), даже если(!) есть обращения к volatile - и... короче,ето багофича, как ея правильно сформулировать?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 8 2011, 11:48
Сообщение #8


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



что сказать, переходите на версию посвежее ...
повторюсь - на avr-gcc 4.4.3 всё пучком.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Pasha   WinAVR-20100110   Jan 16 2010, 00:18
- - kurtis   Цитата(_Pasha @ Jan 16 2010, 02:18) Слито...   Jan 16 2010, 10:30
- - Petka   Цитата(_Pasha @ Jan 16 2010, 03:18) ... A...   Jan 16 2010, 10:31
- - SysRq   ЦитатаAVR32 GNU toolchain Splint 3.1.2 Splint is...   Jan 16 2010, 11:26
|- - zltigo   Цитата(SysRq @ Jan 16 2010, 14:26) 200812...   Jan 16 2010, 11:28
|- - SysRq   Цитата(zltigo @ Jan 16 2010, 14:28) А опт...   Jan 16 2010, 11:38
- - ARV   я тоже скачал официальный релиз и, как обычно (за ...   Jan 16 2010, 14:32
- - SysRq   Цитата(ARV @ Jan 16 2010, 17:32) ...разме...   Jan 16 2010, 15:00
- - demiurg_spb   Цитата(_Pasha @ Jan 16 2010, 03:18) Собсн...   Jan 16 2010, 19:12
- - ARV   а как вы поступаете: ставите сразу несколько копий...   Jan 16 2010, 20:30
|- - Сергей Борщ   Цитата(ARV @ Jan 16 2010, 22:30) а как вы...   Jan 16 2010, 22:36
||- - Сергей Борщ   Цитата(Сергей Борщ @ Jan 17 2010, 00:36) ...   Jan 21 2010, 14:34
|- - ReAl   Цитата(ARV @ Jan 16 2010, 22:30) а как вы...   Jan 17 2010, 08:25
- - _Pasha   Цитата(ARV @ Jan 17 2010, 00:30) а как вы...   Jan 17 2010, 05:55
|- - Сергей Борщ   Цитата(_Pasha @ Jan 17 2010, 07:55) Непри...   Jan 17 2010, 09:19
|- - Petka   Цитата(Сергей Борщ @ Jan 17 2010, 12:19) ...   Jan 17 2010, 10:00
||- - ReAl   Цитата(Petka @ Jan 17 2010, 12:00) Давно ...   Jan 17 2010, 15:35
||- - demiurg_spb   Цитата(Petka @ Jan 17 2010, 13:00) Давно ...   Jan 17 2010, 21:28
||- - ReAl   Цитата(demiurg_spb @ Jan 17 2010, 23:28) ...   Jan 17 2010, 22:38
|- - demiurg_spb   Цитата(Сергей Борщ @ Jan 17 2010, 01:36) ...   Jan 18 2010, 10:13
|- - Сергей Борщ   По msys - взять с http://sourceforge.net/projects/...   Jan 18 2010, 11:54
|- - demiurg_spb   Цитата(Сергей Борщ @ Jan 18 2010, 14:54) ...   Jan 18 2010, 13:07
|- - Сергей Борщ   Проинсталлил "честно". Оно копирует кучу...   Jan 18 2010, 14:54
- - Genadi Zawidowski   Было... ЦитатаAVR Memory Usage ---------------- De...   Jan 18 2010, 01:13
- - _Diman_   Я так приспособился разные версии проверять. Запу...   Jan 19 2010, 10:37
|- - _Pasha   Цитата(_Diman_ @ Jan 19 2010, 13:37) http...   Jan 19 2010, 11:05
- - Зайцев Иван   А кто нибуть использовал уже avr32-gcc? Если да то...   Jan 19 2010, 11:17
|- - klen   Цитата(Зайцев Иван @ Jan 19 2010, 14:17) ...   Jan 19 2010, 20:44
|- - Зайцев Иван   Цитата(klen @ Jan 20 2010, 01:44) а что т...   Jan 20 2010, 03:14
- - Cyber_RAT   http://sourceforge.net/projects/winavr/files/ опят...   Jan 20 2010, 21:29
|- - SysRq   Цитата(Cyber_RAT @ Jan 21 2010, 00:29) оп...   Jan 20 2010, 22:23
|- - _Pasha   Цитата(SysRq @ Jan 21 2010, 02:23) убраны...   Jan 21 2010, 03:59
- - Vova75   Ошибку  в прологе/эпилоге при использовании ISR(xx...   Jan 27 2010, 12:16
- - ReAl   Однако... То-то я чуйкой какой-то ("шестое ч...   Feb 4 2010, 21:24
|- - _Pasha   Цитата(ReAl @ Feb 5 2010, 01:24) Однако.....   Feb 8 2010, 12:59
|- - _Pasha   Цитата(_Pasha @ Feb 8 2010, 16:59) Однако...   Feb 12 2010, 17:49
|- - ReAl   Цитата(_Pasha @ Feb 12 2010, 19:49) Еще п...   Mar 20 2010, 13:24
- - Genadi Zawidowski   ЦитатаCode: #include <avr/io.h> volatile ui...   Feb 8 2010, 06:04
|- - ReAl   Цитата(Genadi Zawidowski @ Feb 8 2010, 08...   Feb 8 2010, 10:48
- - _Pasha   Ау, я что, в палате №6? Не спим! Нашел серьезн...   Feb 17 2010, 06:59
|- - ReAl   Цитата(_Pasha @ Feb 17 2010, 08:59) Попыт...   Feb 17 2010, 19:53
|- - _Pasha   Цитата(ReAl @ Feb 17 2010, 22:53) Мне не ...   Feb 20 2010, 08:06
- - misyachniy   Друг спросил как разместить данные во флеш поопред...   Feb 17 2010, 15:39
|- - Сергей Борщ   Цитата(misyachniy @ Feb 17 2010, 17:39) Н...   Feb 17 2010, 17:50
|- - misyachniy   Цитата(Сергей Борщ @ Feb 17 2010, 19:50) ...   Feb 18 2010, 09:49
|- - Сергей Борщ   Цитата(misyachniy @ Feb 18 2010, 11:49) П...   Feb 18 2010, 11:32
|- - demiurg_spb   Забавный прикол:Кодuint16_t x; .... if ((x...   Feb 19 2010, 14:25
|- - _Pasha   Цитата(Сергей Борщ @ Feb 18 2010, 15:32) ...   Mar 16 2010, 18:05
|- - Сергей Борщ   Цитата(_Pasha @ Mar 16 2010, 20:05) т.к. ...   Mar 16 2010, 23:25
|- - _Pasha   Цитата(Сергей Борщ @ Mar 17 2010, 03:25) ...   Mar 17 2010, 05:39
- - SysRq   Цитата(_Pasha @ Feb 17 2010, 09:59) Нашел...   Feb 17 2010, 19:45
- - ZiB   аналогично, не удалось воссоздать ошибку. проверил...   Feb 18 2010, 06:48
- - ARV   а я вот не увидел в этой версии компилятора опции ...   Mar 25 2010, 08:45
|- - Сергей Борщ   Цитата(ARV @ Mar 25 2010, 10:45) или я ку...   Mar 25 2010, 08:56
- - ARV   во блин... странно... вчера вроде не получалось об...   Mar 25 2010, 09:17
- - Клим   Возможно уже такой вопрос был, сходу не нашел. WIN...   Aug 19 2010, 13:22
- - SysRq   Цитата(Клим @ Aug 19 2010, 17:22) Каким о...   Aug 19 2010, 13:46
|- - Клим   Цитата(SysRq @ Aug 19 2010, 16:46) Исполь...   Aug 19 2010, 14:40
|- - _Pasha   Цитата(Клим @ Aug 19 2010, 18:40) call ma...   Aug 20 2010, 15:53
|- - _Pasha   Цитата(SysRq @ Feb 8 2011, 12:37) Глобаль...   Feb 8 2011, 10:55
||- - AHTOXA   Цитата(_Pasha @ Feb 8 2011, 15:55) Кого? ...   Feb 8 2011, 11:01
||- - _Pasha   Цитата(demiurg_spb @ Feb 8 2011, 14:48) н...   Feb 8 2011, 11:50
||- - demiurg_spb   Цитата(_Pasha @ Feb 8 2011, 14:50) Это кл...   Feb 8 2011, 11:57
||- - demiurg_spb   Цитата(demiurg_spb @ Feb 8 2011, 14:57) ....   Feb 17 2011, 18:56
|- - AHTOXA   Цитата(_Pasha @ Feb 8 2011, 16:19) Вот...   Feb 8 2011, 12:05
- - ARV   как заставить компилятор помещать в elf-файл полны...   Mar 23 2011, 18:30
- - SysRq   Спасите мудрым советом, ибо не знаю куда копать ...   Mar 31 2011, 09:31
|- - Сергей Борщ   QUOTE (SysRq @ Mar 31 2011, 12:31) WinAVR...   Apr 1 2011, 09:03
- - SysRq   Цитата(Сергей Борщ @ Apr 1 2011, 13:03) ....   Apr 1 2011, 12:02
- - halfdoom   Попросил заказчик использовать gcc-4.5.1 (тот, что...   Aug 5 2012, 07:44
|- - _Pasha   Цитата(halfdoom @ Aug 5 2012, 10:44) Попр...   Aug 5 2012, 12:56
|- - Genadi Zawidowski   Цитата(halfdoom @ Aug 5 2012, 11:44) Попр...   Aug 5 2012, 13:57
- - halfdoom   В общем, нашел основной источник роста: излишне ...   Aug 5 2012, 15:11
|- - Genadi Zawidowski   Цитата(halfdoom @ Aug 5 2012, 19:11) В об...   Aug 7 2012, 23:03
|- - halfdoom   Цитата(Genadi Zawidowski @ Aug 8 2012, 02...   Aug 8 2012, 14:30
|- - demiurg_spb   Цитата(halfdoom @ Aug 8 2012, 18:30) Може...   Aug 9 2012, 05:10
|- - Genadi Zawidowski   Цитата(demiurg_spb @ Aug 9 2012, 09:10) ....   Aug 9 2012, 07:53
||- - demiurg_spb   думаю что где-то так Код#define flash const __flas...   Aug 9 2012, 08:28
||- - Genadi Zawidowski   Цитата(demiurg_spb @ Aug 9 2012, 12:28) C...   Aug 9 2012, 08:39
||- - demiurg_spb   Цитата(Genadi Zawidowski @ Aug 9 2012, 12...   Aug 9 2012, 08:45
|- - halfdoom   Цитата(demiurg_spb @ Aug 9 2012, 08:10) Н...   Aug 10 2012, 04:45
- - _Pasha   Цитата-mfaster-structs With -mfaster-structs, the ...   Aug 5 2012, 15:46
|- - halfdoom   Цитата(_Pasha @ Aug 5 2012, 18:46) Спецом...   Aug 5 2012, 16:26
|- - demiurg_spb   Цитата(halfdoom @ Aug 5 2012, 20:26) Уже ...   Aug 8 2012, 05:50
|- - ReAl   Цитата(demiurg_spb @ Aug 8 2012, 08:50) О...   Aug 8 2012, 07:35
|- - demiurg_spb   Ни чем не могу помочь... Разве только под win: htt...   Aug 8 2012, 07:50
- - _Pasha   Собсна из 8-битов одни АВРки SDCC чистой культуро...   Aug 5 2012, 16:32
- - ReAl   (сверните кто-нибудь строку в 78 сообщении, а то о...   Aug 9 2012, 06:23
- - Genadi Zawidowski   Использую вот отсюда http://electronix.ru/forum/in...   Aug 9 2012, 09:04
|- - demiurg_spb   Цитата(Genadi Zawidowski @ Aug 9 2012, 13...   Aug 9 2012, 09:18
|- - Genadi Zawidowski   Это что-то! На 32-х килобайтном проекте получи...   Aug 9 2012, 19:25
- - Genadi Zawidowski   Нашёл ещё одну сборку - уже с инсталлятором - htt...   Aug 10 2012, 07:20
- - demiurg_spb   Я её тоже находил, но и также находил инфу что с н...   Aug 10 2012, 07:24
2 страниц V   1 2 >


Reply to this topicStart new topic
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01557 секунд с 7
ELECTRONIX ©2004-2016