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

kompilacja biblioteki v-usb

Kujoo 02 Lip 2010 20:04 1836 14
REKLAMA
  • #1 8255257
    Kujoo
    Poziom 11  
    Mam problem z kompilacją biblioteki z tej strony: www.obdev.at
    A dokładnie to chodzi mi o ten projekt: HIDKeys
    W pobranej paczce są pliki biblioteki (*.h *.c), main.c makefile i gotowy main.hex.
    Lecz ten program main.c za żadne skarby nie chce mi się skompilować do main.hex, a chciałbym sobie co nieco w tym programie pozmieniać.
    Proszę o pomoc, bo mi już zaczyna brakować pomysłów, a nie jestem jeszcze ekspertem w programowaniu.
  • REKLAMA
  • #2 8255337
    Konto nie istnieje
    Poziom 1  
  • #3 8255679
    Kujoo
    Poziom 11  
    Plik main.c otwieram w WinAVR i kompiluję (Make all). Po tym wywala mi błędy i nie kompiluje się do *.hex Nie mam pojęcia co robię źle. W paczce jest już gotowy hex, lecz ja chciałbym go trochę zmienić... Przecież ten hex w paczce też musiał być jakoś zrobiony (skompilowany) ;P
  • REKLAMA
  • #4 8255753
    Mat_91
    Poziom 25  
    Tak a na forum są wróżki i mamy wiedzieć z góry co robisz źle:p Może pokażesz chociaż jakie te błędy Ci pokazuje?
  • REKLAMA
  • #5 8256028
    krdln
    Poziom 13  
    Wiem, że na Linuksie wystarczy przejść do tego folderu (w konsoli) wpisać po prostu make. Z tego co mi się wydaje, to make jest dostępny też chyba dla Windowsa.

    A jeśli to robisz przez WinAVR to powinna być w ustawieniach jakaś opcja, żeby nie korzystał z własnego Makefile'a, tylko z tego, który już sobie jest w folderze. Bo tego się nie kompiluje ot tak.
    Istnieje szansa, że zadziała, jeśli za pomocą WinAVR otworzysz ów plik Makefile. Ale tylko szansa, bo WinAVR nigdy nie używałem :P

    Możesz pokazać, jakie błędy Ci wywala konkretnie?

    możesz jeszcze spróbować skopiować folder usbdrv do folderu HIDKeys, jeśli go tam nie było.
  • Pomocny post
    #6 8256203
    Piotrek_P
    Poziom 18  
    Otwórz plik makefile i znajdź taką sekcję:
    
    main.hex:	main.bin
    	rm -f main.hex main.eep.hex
    	avr-objcopy -j .text -j .data -O ihex main.bin main.hex
    #	./checksize main.bin
    

    Wykomentuj linię "./checksize..." jak to pokazałem wyżej i skompiluj ponownie.
    Skompilowałem po tej poprawce bez żadnych komunikatów, ale czy fizycznie ten prog będzie działał to już nie wiem.

    Jak zgłaszasz problem kompilacji to wrzucaj do postu treść komunikatów o błędach, bo mamy lato i wróżki na urlopie :D.

    Pozdrawiam
    Piotrek
  • #7 8256258
    Kujoo
    Poziom 11  
    Dla WinAVR'a wystarczy, że w folderze z plikiem main.c będzie biblioteka i makefile to powinien to kompilować, tak robiłem i kompilowałem swoje poprzednie programy.
    Po zakomentowaniu tego co podałeś nadal wyskakuje ten sam błąd:
    > "make.exe" all
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -c main.c -o main.o
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -o main.bin usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o
    rm -f main.hex main.eep.hex
    avr-objcopy -j .text -j .data -O ihex main.bin main.hex
    ./checksize main.bin
    C:\Documents: C:\Documents: No such file or directory
    make.exe: *** [main.hex] Error 127
    
    > Process Exit Code: 2
    > Time Taken: 00:11
    
  • #8 8256409
    Dexter77
    Poziom 28  
    Zdaje sie ze problem jest w sciezce dostepu. Rozne makefile nie lubia spacji i znakow specjalnych w sciezkach dostepu.
  • REKLAMA
  • #9 8256436
    Kujoo
    Poziom 11  
    No to co ja mam zrobić. W tym co ściągnąłem był już makefile, jak myślę dobry i wszystkie inne pliki, lecz nie chce mi się to kompilować... :/
  • #10 8256462
    Dexter77
    Poziom 28  
    Wrzuc to do innego folderu. Zadne Documents And Settings. Zrob folder C:\test albo cos w tym stylu, wrzuc wszystkie pliki tam i sprobuj skompilowac.
  • #11 8256505
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #12 8256534
    Piotrek_P
    Poziom 18  
    Ja to wrzuciłem na pulpit i otworzyłem main.c w ProgrammersNotepad. Wyedytowałem makefile i poszło bez błędu.
    
    > "make.exe" all
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -x assembler-with-cpp -c usbdrv/usbdrvasm.s -o usbdrv/usbdrvasm.o
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -c usbdrv/oddebug.c -o usbdrv/oddebug.o
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -c main.c -o main.o
    avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8  -o main.bin usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o
    rm -f main.hex main.eep.hex
    avr-objcopy -j .text -j .data -O ihex main.bin main.hex
    
    > Process Exit Code: 0
    > Time Taken: 00:02
    

    Pozdrawiam
    Piotrek
  • #13 8256566
    Dexter77
    Poziom 28  
    AVR Studio mialo kiedys (moze ciagle ma) jakies problemy z tworzeniem katalogow pod Vista 64bit. Moze tu jest pies pogrzebany? Skoro nie sciezka dostepu...
  • #14 8256644
    Kujoo
    Poziom 11  
    No Piotrek_P dzieki, wielkie dzieki. Chyba problem był w tym, że ta paczka jakąś dziwną nazwę miała, a ja wypakowałem do takiego samego folderu.
    Gdy pliki wrzuciłem na pulpit i w notepadzie odpalilem kompilacje (oczywiście zmieniłem makefile jak pisałeś) wszystko poszło. Jeszcze raz wielkie dzieki.
    Pozdro
  • #15 8256660
    Piotrek_P
    Poziom 18  
    Jak Ci to będzie działało to pochwal się :D bo podoba mi się to rozwiązanie. Może się kiedyś przydać.

    Pozdrawiam
    Piotrek
REKLAMA