Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR Studio & WinAvr
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
radiofill
Решил перейти с ICC на WinAVR. для освоения выбрал естессно AVR Studio 4.13 SP2.
... естественно с первого раза не заработало
Ругается что не определена функция lcdInit(); Но если написать void lcdInit(); ошибка пропадает...

При выводе строки так вообще чудеса. ../sample.c:13: error: expected declaration specifiers or '...' before string constant

Библиотека Libavr, пути все прописаны
aesok
Цитата(radiofill @ Aug 30 2008, 15:54) *
Решил перейти с ICC на WinAVR. для освоения выбрал естессно AVR Studio 4.13 SP2.
... естественно с первого раза не заработало
Ругается что не определена функция lcdInit(); Но если написать void lcdInit(); ошибка пропадает...


В сообщении не написанно что "не определена функция", в сообщении написано что не определенна ссылка на функцию.

Добавьте в проект файлы lcd.c и возможно timer.c

Цитата
При выводе строки так вообще чудеса. ../sample.c:13: error: expected declaration specifiers or '...' before string constant


Непонял, в тексте сообщения есть орфографическая ошибка? По моему вполне адекватная реакция компилятора, на ту чуш что Вы написали.


Анатолий.
AHTOXA
Цитата(radiofill @ Aug 30 2008, 17:54) *
Ругается что не определена функция lcdInit();


Верните как было и добавьте в проект файл lcd.c, в котором определена функция lcdInit();
radiofill
Цитата(aesok @ Aug 30 2008, 17:28) *
По моему вполне адекватная реакция компилятора, на ту чуш что Вы написали.
Анатолий.



Разве lcd.c надо вручную подключать? 07.gif лежат они в одной папке
vik0
Цитата(radiofill @ Aug 31 2008, 14:26) *
Разве lcd.c надо вручную подключать? 07.gif лежат они в одной папке


Ну и что, что в одной папке? Компоновщик должен телепатически определять
где именно у Вас релизована эта функция?
radiofill
Цитата(AHTOXA @ Aug 30 2008, 23:27) *
Верните как было и добавьте в проект файл lcd.c, в котором определена функция lcdInit();


помогло... почти. теперь, как и следовало ожидать просит прописать delay.c
в настройках проекта папки с библиотеками все прописаны, make файл avrstudio сам генерит...
архив с проетом приложил.
aesok
Цитата(radiofill @ Sep 1 2008, 01:05) *
помогло... почти. теперь, как и следовало ожидать просит прописать delay.c


??? Где Вы это прочли ???

Я же Вам уже писал:
Цитата
Добавьте в проект файлы lcd.c и возможно timer.c


И проверте что в файле global.h правильно указана тактовая частота контроллера.


Анатолий.
Qwertty
А подключают с файлы к проекту вовсе не через #include <lcd.c> smile.gif
AHTOXA
Цитата(radiofill @ Sep 1 2008, 03:05) *
помогло... почти. теперь, как и следовало ожидать просит прописать delay.c


Добавлять надо не так:-) Там должно быть что-то типа меню Project - Add... Чтобы файл lcd.c (и timer.c или где там ф-я delay, и вообще все нужные файлы) появились слева в Source Files. Тогда Студия при генерации makefile учтёт эти файлы, потом компилятор по команде из makefile их скомпилирует, а линкер - всё это хозяйство слинкует.
radiofill
... в WinAvr всё работает делал также всё, странно

Цитата(AHTOXA @ Sep 1 2008, 08:06) *
Добавлять надо не так:-) Там должно быть что-то типа меню Project - Add... Чтобы файл lcd.c (и timer.c или где там ф-я delay, и вообще все нужные файлы) появились слева в Source Files. Тогда Студия при генерации makefile учтёт эти файлы, потом компилятор по команде из makefile их скомпилирует, а линкер - всё это хозяйство слинкует.

ё моё зачем такие дикие заморочки 07.gif Под winavr написал - с первого раза всё откомпилировалось wacko.gif
F_CPU прописанно в настройках проекта

help.gif help.gif help.gif smile3046.gif чусвствую придётся на winavr работать
aesok
Цитата(radiofill @ Sep 2 2008, 00:11) *
А насчёт советов что я F_CPU не прописал и им подобные то вам надо в другой раздел форума советы давать maniac.gif


Не вопрос, я к Вам в саппорты на записавался. Спасибо не умеете говорить, разбирайтесь сами.

Анатолий.
ReAl
Цитата(radiofill @ Sep 1 2008, 23:20) *
А насчёт советов что я F_CPU не прописал и им подобные то вам надо в другой раздел форума советы давать

чусвствую придётся на winavr работать
Глядя на скриншоты я чувствую, что тема в тот другой раздел и просится.
radiofill
Цитата(aesok @ Sep 2 2008, 00:21) *
Не вопрос, я к Вам в саппорты на записавался. Спасибо не умеете говорить, спасибо, разбирайтесь сами.

Анатолий.

ничего личого... обидеть не хотел, честно. я уже всё перепробовал ничего не помогает...
помогает только #include <lcd.c> но так не делаеться, пути в проекте все прописал...

Цитата(ReAl @ Sep 2 2008, 00:31) *
Глядя на скриншоты я чувствую, что тема в тот другой раздел и просится.

я с компилятором пытаюсь разобраться. А программу написать это уже совсем другая история (и другой раздел на форуме)
singlskv
Цитата(aesok @ Sep 2 2008, 00:21) *
Не вопрос, я к Вам в саппорты на записавался. Спасибо не умеете говорить, разбирайтесь сами.
Анатолий.
OFF(ЖУТКИЙ):
Анатолий,
может быть Вам все-таки в свой профиль на электрониксе включить
ссылку на профиль на Savannah или gcc?
Может тогда хамства станет поменьше ?
radiofill
Цитата(AHTOXA @ Sep 1 2008, 08:06) *
Добавлять надо не так:-) Там должно быть что-то типа меню Project - Add... Чтобы файл lcd.c (и timer.c или где там ф-я delay, и вообще все нужные файлы) появились слева в Source Files. Тогда Студия при генерации makefile учтёт эти файлы, потом компилятор по команде из makefile их скомпилирует, а линкер - всё это хозяйство слинкует.

Сделал как ты сказал теперь просит lcd.o wacko.gif обращаю внимание для win avr всё также делал откомпилировалось с первого раза без ошибок и предупреждений.
Сергей Борщ
Цитата(radiofill @ Sep 1 2008, 23:58) *
обращаю внимание для win avr всё также делал
Теперь вам осталось понять, что WinAvr не является средой разработки, что и компилятор в составе пакета WinAvr и этот же самый компилятор, вызываемый из AvrStudio в обоих случаях вызываются утилитой GNU make, которая управляется при помощи makefile. Если вы прочтете документацию на GNU make (легко ищется гуглем даже на русском) и просмотрите генерируемые студией и MFile мейк-файлы, то легко сможете понять, откуда такие различия в поведении и как надо действовать в каждом случае. Если вы не хотите изучать документацию на GNU make, то скорее всего вам стоит выбрать другой компилятор.
radiofill
Цитата(Сергей Борщ @ Sep 2 2008, 01:34) *
Теперь вам осталось понять, что WinAvr не является средой разработки, что и компилятор в составе пакета WinAvr и этот же самый компилятор, вызываемый из AvrStudio в обоих случаях вызываются утилитой GNU make, которая управляется при помощи makefile. Если вы прочтете документацию на GNU make (легко ищется гуглем даже на русском) и просмотрите генерируемые студией и MFile мейк-файлы, то легко сможете понять, откуда такие различия в поведении и как надо действовать в каждом случае. Если вы не хотите изучать документацию на GNU make, то скорее всего вам стоит выбрать другой компилятор.

спасибо за совет насчёт Make файла. beer.gif a14.gif
то что winavr и avrstudio всего лишь "шкурки" для GCC это я уже давно понял.
В причине проблемы разобрался, Make файл генерируемый AVRstudio не создаёт объектые файлы. В WinAvr Make файл делал с помощю утилиты "MFile"
В итоге откомпилировал объектные библиотеки вручную. Как то так - "gcc -c lcd.h....... итд итп".
А Make файл говорят не сложно писать... попробуем smile3046.gif )

Так что не объявленное F_CPU здесь непричём yeah.gif lol.gif
Сергей Борщ
Цитата(radiofill @ Sep 4 2008, 19:00) *
Как то так - "gcc -c lcd.h....... итд итп".
Хм... А зачем вы компилите заголовочный *.h файл? Или это описка или вы еще не все поняли.


Цитата(radiofill @ Sep 4 2008, 19:00) *
то что winavr и avrstudio всего лишь "шкурки" для GCC это я уже давно понял.
winavr - это всего-лишь набор, состоящий из компилятора avr-gcc, набора binutils, Юниксовых утилит (make, mkdir, sh и т.д.), редактора Programmers Notepad, некоторых утилит (симулятор, AVRDude) и красивого инсталлятора. Средой разработки ("шкуркой") во всем этом конструкторе является скорее PN.
radiofill
Цитата(Сергей Борщ @ Sep 4 2008, 21:55) *
Хм... А зачем вы компилите заголовочный *.h файл? Или это описка или вы еще не все поняли.
winavr - это всего-лишь набор, состоящий из компилятора avr-gcc, набора binutils, Юниксовых утилит (make, mkdir, sh и т.д.), редактора Programmers Notepad, некоторых утилит (симулятор, AVRDude) и красивого инсталлятора. Средой разработки ("шкуркой") во всем этом конструкторе является скорее PN.


Про шкурку, это я фигурально выразился)
А вот насчёт компилирования объектных файлов вы правы, пока только начал разбираться, компилировал вместе сишный файл вместе с заголовочным в объектный, потом компоновал объектые в биарник, как то так... Программы писал только на ICC, а там как вы понимаете всего процесса сборки не увидиш.
Компилировал по приложенной инструкции (архив приложил если кому интересно tort.gif )
И ещё один глюк откопал!!! У меня утилита make была расшарена два раза, виноват Borland Builder, его make'r тоже прописан в системной переменной path, поэтому глобальные пути не работали.
Вобщем куча всяких мелочей, а когда всё это сложилось... получилось то, что получилось)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.