Автор Тема: GCC-AVR undefined reference to  (Прочетена 4401 пъти)

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
GCC-AVR undefined reference to
« -: Jan 08, 2015, 21:48 »
Здравейте!

Опитвам се да си добавя една библиотека и да програмирам един ATMEGA 128, но получавам:

demo.c:63: undefined reference to `EEOpen'

Библиотеката е запис/четене на eeprom през i2c, но не че има значение де. :)

Та библиотеката има два файла: 24c64.c и 24c64,h  и двата съм ги сложил в папката на проекта, но не че нещо се случва.


В Makefile-а съм добавил и
24c64.o: 24c64.c
   $(CC) $(INCLUDES) $(CFLAGS) -c  $<


но грешката все още си я има.
П.С. в проекта си инклудвам 24c64.h файла. Ако инклудна ,c файла се компилира ама...

#include "24c64.h"

Та някой да има на идея защо се случва това? Че малко съм скаран с C още  [_]3

P.S. За пртолока: http://extremeelectronics.co.in/avr-tutorials/easy-24c-i2c-serial-eeprom-interfacing-with-avr-microcontrollers/
« Последна редакция: Jan 08, 2015, 21:50 от runtime »
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #1 -: Jan 09, 2015, 01:21 »
Някакъв шанс да видим цялото съдържание на demo.c и Makefile?
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #2 -: Jan 09, 2015, 01:28 »
Означава че никъде в хедърите които си инклуднал няма EEOpen, мисля че е достатъчно говорящо. Аз бих grep-нал в .h файловете които инклудваш въобще има ли декларирана такава функция.

Между другото не прави такива гимнастики с makefile-а, нямаш нито INCLUDES, нито CFLAGS, не слагай -c щото ще ти създаде object файлове и ще трябва да ги линкнеш изрично, опрости си живота :)
Активен

"Knowledge is power" - France is Bacon

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #3 -: Jan 09, 2015, 10:15 »
Цитат
Някакъв шанс да видим цялото съдържание на demo.c и Makefile?
Има  [_]3

Makefile

demo.c

Другите два файла може да се видят от първия линк :)
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: GCC-AVR undefined reference to
« Отговор #4 -: Jan 09, 2015, 10:58 »
Код:
#include <avr/eeprom.h>
- някъде при останалите include-та
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #5 -: Jan 09, 2015, 11:08 »
Код:
#include <avr/eeprom.h>
- някъде при останалите include-та

Ъъъъ какво общо има тази библиотека с другата, която ми връща грешката? При все, че тази, която ми пишеш е за работа с вградената памет в чипа, а аз искам да пиша във виншен чип през i2c интерфейса? Инак мерси за предложението де  [_]3
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: GCC-AVR undefined reference to
« Отговор #6 -: Jan 09, 2015, 11:52 »
Има общо липсват ти функциите за Eeprom-a EEXxx (EEOpen etc)
Код:
#include <avr/io.h>
http://extremeelectronics.co.in/avr-tutorials/easy-24c-i2c-serial-eeprom-interfacing-with-avr-microcontrollers/
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GCC-AVR undefined reference to РЕШЕН!
« Отговор #7 -: Jan 09, 2015, 12:09 »
Не съм много съгласен с това :)

Ред 36 в demo.c  [_]3

EEOpen(); е декларирана в 24c64.h репективно кода е в 24c64.c. Въпросния също е инклуднат, но ми дава грешка, която според мен е в линкъра.


РЕШЕН!!!
« Последна редакция: Jan 09, 2015, 12:38 от runtime »
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: GCC-AVR undefined reference to
« Отговор #8 -: Jan 09, 2015, 12:38 »
Да, сега видях, че ги има функциите. Проблемът е в makefile-a, защото
Код:
24c64.o: 24c64.c
$(CC) $(INCLUDES) $(CFLAGS) -c  $<
това правило не се извиква т.е. файлът 24c64.c не се компилира, за да работи трябва да промениш реда
Код:
OBJECTS = demo.o
на
Код:
OBJECTS = 24c64.o demo.o
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #9 -: Jan 09, 2015, 12:46 »
Тъкмо и това и направих малко преди да пишеш  [_]3 Друг е въпроса, че на i2c дебъгера ми идват някакви странни битове ама това ще го мъдря после :)

Мерси!
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: GCC-AVR undefined reference to
« Отговор #10 -: Jan 09, 2015, 13:08 »
Кодът е трудно читаем и подтиква към грешки
Код:
if (xMBUtilGetBits( ucRegCoilsBuf, 0, 1 )==1)
и
Код:
if (bit_is_clear(PIND,0))
направи ги в цикъл, щото така надиплени може да се сбърка много лесено.
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GCC-AVR undefined reference to
« Отговор #11 -: Jan 09, 2015, 14:47 »
Да, да знам, но така ги изтеглих от github. Сега да подкарам нещата, а после ще оправям :)
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Error: iq value undefined
Хумор
VladSun 2 1989 Последна публикация Jul 27, 2007, 22:49
от VladSun
Mysql reference manual 6.0 под gpl лизенз
Преводи на документация
tyuio 3 15891 Последна публикация Jul 02, 2008, 23:23
от tyuio