logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR Studio] -Problemy i pytania przy dodawaniu wielu plików

Citek 08 Lut 2009 22:02 2766 2
  • #1 6123295
    Citek
    Poziom 22  
    Witam
    Mam pytanie związane z programem AVR Studio, a dokładniej chodzi mi o dodawanie kilku plików w jeden.
    Zacznijmy od początku...
    Pragnę stworzyć program, który będzie składał się z kilku części, dlatego planuję stworzyć go w postaci modułowej, a więc głównym modułem będzie:
    - programglowny.c
    potem do niego będą podłączone takie moduły jak
    menu.c
    logo.c
    rs485.c

    Zrobiłem już początkowy szkielet, a więc mam programglowny.c i logo.c. Oba pliki znajdują się w jednym katalogu oraz do glownego programu dopisane jest:
    #include "logo.c"
    I teraz pytanie, gdzie albo w jaki sposób dodać plik logo.c do AVR Studio.
    Chodzi o to, że chcę widzieć wszystkie pliki, z których składa się program.
    Przy dodawaniu do katalogu SourceFiles poprzez prawy przycisk pliku logo.c, przy kompilacji otrzymuję sporo błędów.
    Dostaję takie informacje w okienku message:
    Loaded plugin STK500
    Loaded plugin AVR GCC
    Loaded partfile: C:\Program Files\Atmel\AVR Tools\PartDescriptionFiles\ATmega8.xml
    gcc plug-in: Error: Object file not found on expected location D:\AVR\code\programglowny\default\programglowny.elf
    gcc plug-in: Error: Object file not found on expected location D:\AVR\code\programglowny\default\programglowny.elf


    W okienku build dostaję coś takiego:

    ../startup.c: In function 'domek':
    ../startup.c:3: warning: implicit declaration of function 'LCD_GoTo'
    ../startup.c:4: warning: implicit declaration of function 'LCD_WriteData'
    ../startup.c:6: warning: implicit declaration of function 'LCD_WriteText'
    ../startup.c: In function 'startup':
    ../startup.c:16: warning: implicit declaration of function 'LCD_Initalize'
    ../startup.c:17: warning: implicit declaration of function 'LCD_Clear'
    avr-gcc.exe -mmcu=atmega8 -Wl,-Map=programglowny.map programglowny.o startup.o     -o programglowny.elf
    startup.o: In function `domek':
    D:\AVR\code\programglowny\default/../startup.c:2: multiple definition of `domek'
    programglowny.o:D:\AVR\code\programglowny\default/../startup.c:2: first defined here
    startup.o: In function `startup':
    D:\AVR\code\programglowny\default/../startup.c:15: multiple definition of `startup'
    programglowny.o:D:\AVR\code\programglowny\default/../startup.c:15: first defined here
    make: *** [programglowny.elf] Error 1
    Build succeeded with 5 Warnings...
    


    Jedyne co udało mi się zrobić to usunąć logo.c z SF i dodać go do Other Files. Wtedy wszystko działa jak należy.
    Jedynym mankamentem jest to, że logo.c i programglowny. c muszę kompilować osobno.

    Może ktoś zna sposób, abym wszystkie pliki .c miał powiązane w jednym projekcie oraz żeby wszystkie były kompilowane naraz
  • #2 6123402
    Balu
    Poziom 38  
    W drzewku po lewej(SourceFiles) musisz dodać, lub zrobić samemu makefile. Bo on wie gdzie szukać, ale kompilujesz tylko główny plik.
    Dalej includuje się pliki H nie C.
    Zrób odpowiednie pliki H dodaj do drzewa HeaderFiles, includuj w głównym plik logo.h

    Kompilator drze mordkę że masz kilka razy definicję funkcji.
    Bo masz go dodanego w drzewku własnie i tam go kompiluje a oprócz tego go inkludujesz i tam też się kompiluje.

    Czy coś:P

    Anyway zrób to do porządku z plikami H, includuj plik H. Pokaż błędy:)

    P.S.
    a co dopierwszego błędu (pluginu gcc szukaj w dokumentacji... moze nie ma dostępu do pliku albo coś?).

    Tak to powinno wyglądać (przykładowy zrzut z programu):
    [AVR Studio] -Problemy i pytania przy dodawaniu wielu plików
  • #3 6190487
    Citek
    Poziom 22  
    Jakoś sobie poradziłem, trochę trzeba się przy tym na klikać, ale chociaż główny kod robi się przejrzysty
REKLAMA