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

Подскажите по Atmel Studio 6.0

Добавлено: Вт мар 31, 2015 07:02:01
leshaast
В Atmel Studio 6.0 при компиляции выходит : #warning "This file has been moved to <util/delay.h>." [-Wcpp]
Что это? Так программа вроде бы работает нормально.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Вт мар 31, 2015 07:34:48
ARV
вообще-то принято выкладывать не только сообщение об ошибке ил предупреждение, но и строку, на которую оно выводится...

скорее всего вы используете исходник, созданный для древней версии компилятора, в котором указан в директиве include файл, в новой версии находящийся в другом месте.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Вт мар 31, 2015 11:09:38
leshaast
Warning 1 #warning "This file has been moved to <util/delay.h>." [-Wcpp] c:\program files\atmel\atmel studio 6.0\extensions\atmel\avrgcc\3.4.0.65\avrtoolchain\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/avr/delay.h 36 2 Trubogib
строка 36 как я понял в файле delay.h и эта опасность то есть то нет. Перед закрытием компелируешь есть, закрываешь, открываешь, компелируешь нет опасности ???

Re: Подскажите по Atmel Studio 6.0

Добавлено: Вт мар 31, 2015 12:42:20
servmv
Глюк с установкой\ виндой, он же пишет: файл был перемещен, сделай проверку файловой системы, переустанови студию, поставь по свежей уже очно есть 6.2, на вирусы систему проверь

Re: Подскажите по Atmel Studio 6.0

Добавлено: Вт мар 31, 2015 13:19:48
ARV
ну по-русски же сказал: приведите строку, на которую ругается компилятор! нет, продолжаем тень на плетень наводить.
servmv писал(а):Глюк с установкой\ виндой,
не нужно фантазий, никакого глюка нет - уверен на 99.9999% в старых версиях модуль delay.h размещался в папке "системных" модулей, а начиная с некоторой версии его поместили в подпапку util - о чем компилятор и сообщает.

уверен, что если топикстартер наконец-то покажет строку, на которую ругается компилятор, она будет выглядеть так:
#include <delay.h>
а правильно должна выглядеть так:
#include <util/delay.h>

P.S. есть еще вариант, что топикстатер пытается скормить студии CVAvr-овский исходник...

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 14:09:04
leshaast
не совсем понимаю о какой строке идет речь (так как только начинаю в этой теме разбираться) когда жму на "варнинг" у меня открывается окно файла delay.h с варнингом на 36 строке. Программу писал сам (пытается скормить студии CVAvr-овский исходник...)
в программе прописано #include <avr/delay.h>, раньше тоже так писал все работало
В общем я еще полхо понимаю проходящие процессы, но когда выходит ошибка (error), то в студии указывается строка, а в моем случае выходит опасность (warning) и ссылки на строку в моей программе нет, как то так

P.S. еще раз напомню, что данная проблема то появляется, то исчезает (щас загрузил студию, прокомпелировал, все чисто), в ПРОТЕУСЕ все работает нормально, просто хочется понять что это и будет ли это как то отражаться на работе программы в "железе".

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 15:12:29
ARV
leshaast писал(а):в программе прописано #include <avr/delay.h>
я ранее написал, как должно быть.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 19:32:50
leshaast
ARV, спасибо. Исправил <avr/delay.h> на <util/delay.h> и студия ругаться перестала. Скажите пожалуйста, чем отличается библиотеки <avr/delay.h> от <util/delay.h> и то и это в студии присутствует, delay.h там еще где то есть, и того их минимум три, чем они отличаются друг от друга, или я что то не так понимаю???

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 19:54:33
ARV
да ничем оно не отличается! в новых версиях компилятора файл delay.h находится не в папке includes/avr, а в папке includes/util, только и всего! просто НОВЫЕ компиляторы об этом переносе ЗНАЮТ и автоматически используют ПРАВИЛЬНЫЙ путь, но выводят предупреждение при этом. старые компиляторы этой фичи не имеют.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 20:17:43
oleg110592
старые компиляторы этой фичи не имеют
в старых компиляторах, например WinAVR 2010 есть delay.h в папке includes/avr, но его содержимое такое:

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

#warning "This file has been moved to <util/delay.h>."
#include <util/delay.h>

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср апр 01, 2015 21:06:34
ARV
вот именно это и выводит сообщение. я компилятором назвал "тулчейн" в целом - с папками и файлами. WinAVR 2010 - это уже НОВЫЙ компилятор, с перемещенным файлом. я говорил о еще более старых версиях :)))

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 07:41:55
oleg110592
добавлю - старые версии компиляторов это которые до 2007 года
http://lists.gnu.org/archive/html/avr-l ... 00022.html

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 08:20:58
leshaast
Вопрос в том что студия при вводе #include<> выдает файлы разных библиотек и среди них присутствуют <avr/delay.h> , <util/delay.h> и <delay.h >, т.е. как я понимаю что все они есть, если это одно и тоже просто изменился адрес, то почему тогда присутствуют все три delay.h в разных директивах. Мож я че то не понимаю.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 08:26:47
ARV
вы можете сравнить все предлагаемые файлы по содержимому, выбрать нужный и не морочить голову себе и другим.

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 09:14:58
leshaast
ARV писал(а):вы можете сравнить все предлагаемые файлы по содержимому, выбрать нужный и не морочить голову себе и другим.
ARV спасибо за Ваши консультации, помогли. Но в этом случае, можно было бы просто сказать не знаю, или не встречался с этим, или лень (или трудно) объяснять... Я вот не знаю, разбираюсь плохо поэтому и спрашиваю...

как то так
извиняйте если заморочил Вас :))

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 10:03:47
ARV
я вам уже сказал: раньше компилятор использовал файл delay.h, который размещался в одной папке, затем разработчики тулчейна переместили его в другую папку, а чтобы древние программы компилировались, сохранили на старом месте файл-заглушку, который генерирует варнинг и подключает файл из нового места... что вам еще нужно понять?

неужели не ясно, что avr/delay.h - это пустышка, внутри которой есть вывод варнинга и подключение util/delay.h?! то есть avr/delay.h это 100% то же самое, что и util/delay.h, но с бонусом в виде варнинга?!

если у вас есть еще третий delay.h в корневой папке - кто, кроме вас, может знать о его содержимом, если в стандартном комплекте тулчейна его там нет и быть не должно?! кто, кроме вас, сможет в него посмотреть и сделать вывод о его назначении?!

в чем проблема-то?

Re: Подскажите по Atmel Studio 6.0

Добавлено: Чт апр 02, 2015 13:27:24
leshaast
ARV писал(а):я вам уже сказал: раньше компилятор использовал файл delay.h, который размещался в одной папке, затем разработчики тулчейна переместили его в другую папку, а чтобы древние программы компилировались, сохранили на старом месте файл-заглушку, который генерирует варнинг и подключает файл из нового места... что вам еще нужно понять?

ARV спасибо, собственно это то что я хотел понять (услышать), может я не правильно вопрос формулировал, поэтому такая "заморочка" получилась.
Благодарю за проявленное терпение

Re: Подскажите по Atmel Studio 6.0

Добавлено: Сб апр 04, 2015 19:34:03
Modest
Давно не появлялся на на этом форуме, но думаю здесь можно задать мой вопрос.
Использую внешнюю SRAM 32 Кбайта в связке с ATmega 128, пишу в Atmel Studio (недавно перешёл), тулчейн GCC - вопрос в том как указать компилятору что у меня памяти стало больше чем встроено в контроллере?
Долгий поиск привёл к вот этому сайту. Но там для 5 студии, попытки добавить предложенную запись не привела к успеху.
Кто может подсказать как договорится с компилятором?

неужели никто не сталкивался ?

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср ноя 23, 2016 10:14:10
_dark
Для Modest наверное уже не актуально, но пусть будет...

в принципе там правильно в их контексте

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

void vXMEMInit(void)
{
    MCUCR |= (1<<SRE);   /* External memory interface enable */
    XMCRA = 0;
    XMCRB |= (1<<XMM1)|(1<<XMM0);//PC7..PC5 released pins
}
я в main вызываю ХRAM_ini() немного с другой настройкой

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

//-----------------------------------------------------------
void XRAM_ini(void)
{
	MCUCR = (1<<SRE) | (1<<SRW10); //__eeGET(0x1D);
	XMCRA = (0<<SRL2) | (0<<SRL1) | (1<<SRL1) | (1<<SRW01) | (1<<SRW00) | (1<<SRW11);	//__eeGET(0x1E);//
	XMCRB = (1<<XMBK) | (0<<XMM2) | (0<<XMM1) | (0<<XMM0);	// 60K XRAM
}

Re: Подскажите по Atmel Studio 6.0

Добавлено: Ср ноя 23, 2016 10:18:28
ARV
Modest писал(а):Кто может подсказать как договорится с компилятором?
насколько я могу понять, такая запись должна корректно восприниматься и современной студией. но вот память эта будет доступна только для ДИНАМИЧЕСКОГО выделения соответствующими функциями. статические переменные компилятор/линкер туда класть не будет.