|
|
  |
WinAVR-20100110, Пишем отзывы сюда |
|
|
|
Feb 8 2011, 11:01
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(_Pasha @ Feb 8 2011, 15:55)  Кого? Он жеж глобальную по отношению к циклу и выкинул. Если объявить Код int i=0, j=0; , то тут понятно, что объявлено две переменные. А если сделать то же самое в инициализации цикла for: Код for (int i=0, j=0;...) , то догадаться уже сложнее
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 8 2011, 11:13
|

неотягощённый злом
     
Группа: Свой
Сообщений: 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
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 8 2011, 11:19
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(demiurg_spb @ Feb 8 2011, 14:13)  А вас что, он не предупреждал: В том и дело, что если инициализировать и в начале и в цикле, предупреждения не будет, но овнокод тот же. Цитата(AHTOXA @ Feb 8 2011, 14:01)  , то догадаться уже сложнее  Вот! Компилер живет своей жизнью, и надо его попросить сделать правильный код. Может, денег хочет?
|
|
|
|
|
Feb 8 2011, 11:41
|

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

|
Да ладно! Он честно ругнулся - вы игнорировали. Ход его рассуждений тоже понять можно, раз уж программисту неважна эта переменная (её значеие), то я забью на неё и связанное с ней биг-болт  Цитата(_Pasha @ Feb 8 2011, 14:19)  В том и дело, что если инициализировать и в начале и в цикле, предупреждения не будет, но овнокод тот же. В том и дело что в цикле Вы инитите уже другую локальную переменную с тем же именем. По идее warning по отношению ко внешней относительно цикла переменной должен бы был остаться... Похоже на багу в этой версии avr-gcc 4.3.3. Проверил на 4.4.3 - уже пофиксили - даёт warning. Так-что не надо катить бочку на святое! :-)
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 8 2011, 11:57
|

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

|
Цитата(_Pasha @ Feb 8 2011, 14:50)  Это клёновская? Нет это атмеловская. http://www.atmel.com/dyn/resources/prod_do...2.win32.x86.exeК ней правда какой то древний binutils прикручен (не весь древний, что характерно). Я собрал для себя из 2 - компилятор и avr-libc от avr-toolchain-installer а всё остально от WinAVR. Клён уже скачет впереди планеты всей на gcc-4.6.0
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Mar 31 2011, 09:31
|

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

|
Спасите мудрым советом, ибо не знаю куда копать  Несколько проектов собираются правильно и без ошибок с любым уровнем оптимизации (s, 0-3) на всех доступных мне компах (включая виртуальные; WinAVR везде одинаковый), но не собираются с оптимизацией по размеру (s) на основном рабочем ноуте, хотя раньше собирались (на нём и написаны были, собственно). Makefile стандартный, созданный софтинкой MFile. Ошибка: Цитата -------- begin -------- avr-gcc (WinAVR 20100110) 4.3.3 Copyright © 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: main.c avr-gcc -c -mmcu=atmega8535 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -ffunction-sections -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o In file included from main.h:10: c:/winavr/lib/gcc/../../avr/include/avr/interrupt.h:38:20: error: calling fdopen: No such file or directory In file included from main.h:12: c:/winavr/lib/gcc/../../avr/include/avr/pgmspace.h:82:20: error: calling fdopen: No such file or directory In file included from main.h:13: c:/winavr/lib/gcc/../../avr/include/avr/eeprom.h:38:20: error: calling fdopen: No such file or directory make.exe: *** [main.o] Error 1
> Process Exit Code: 2 > Time Taken: 00:00 Куда копать, что и где могло поломаться? Переустановка WinAVR ничего не дала. WinAVR действительно установлен в C:\WinAVR, пути к файлам правильные.
|
|
|
|
|
  |
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0
|
|
|