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

[AVR][c][eclipse-AVR][v-usb] - Linkowanie części asemblerowskiej biblioteki.

pholat 13 Lip 2013 20:42 2286 1
REKLAMA
  • #1 12518411
    pholat
    Poziom 10  
    Przekopując zakątki internetu nie mogę znaleźć informacji o tym jak zalinkować w eclipse-AVR części asm'owskich v-usb.
    W samym projekcie dodałem folder z biblioteką w:
    properties → resource → Linked Resources .
    W dalszych próbach w:
    properties → c/c++ General → Paths and Symbols → includes
    dodałem folder z biblioteką v-usb zarówno w części "GNU C" jak i "s, S ,asm"
    Ciągle otrzymuję jednak podczas kompilacji błąd:
    undefined reference to `usbDescriptorHidReport'
    Błąd leży na pewno gdzieś u mnie w IDE, rozwiązanie problemów z załączaniem v-usb dla Atmel Studio rozwiązane jest tu:
    Link

    Build log z konsoli wygląda u mnie tak:
    
    **** Build of configuration Release for project my_reinstall ****
    
    make all 
    Building file: ../main.c
    Invoking: AVR Compiler
    avr-gcc -I/home/pholat/workspace/my_reinstall/vusb -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=attiny2313 -DF_CPU=12000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
    ./vusb/usbdrv/usbdrv.o: In function `usbPoll':
    usbdrv.c:(.text+0x13e): undefined reference to `usbDescriptorHidReport'
    usbdrv.c:(.text+0x140): undefined reference to `usbDescriptorHidReport'
    usbdrv.c:(.text+0x1c0): undefined reference to `usbFunctionWrite'
    usbdrv.c:(.text+0x218): undefined reference to `usbFunctionRead'
    ./vusb/libs-device/osccal.o: In function `calibrateOscillator':
    osccal.c:(.text+0x18): undefined reference to `usbMeasureFrameLength'
    osccal.c:(.text+0x3a): undefined reference to `usbMeasureFrameLength'
    collect2: ld returned 1 exit status
    make: *** [my_reinstall.elf] Błąd 1
    Finished building: ../main.c
     
    Building target: my_reinstall.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,my_reinstall.map -mmcu=attiny2313 -o "my_reinstall.elf"  ./vusb/usbdrv/oddebug.o ./vusb/usbdrv/usbdrv.o ./vusb/usbdrv/usbdrvasm.o  ./vusb/libs-device/osccal.o  ./main.o   
    
    **** Build Finished ****
    
  • REKLAMA
  • #2 12630780
    pholat
    Poziom 10  
    Problem rozwiązany: okazało się że ponowne ściągnięcie pakietu v-usb, rozpakowanie i wrzucenie usbdrv do projektu załatwiło sprawę. Głupia sprawa że eclipse miał wszystko co potrzebował (poodnajdywałem wszystkie rzeczy których nie mógł znaleźć) a mimo to nie chciał ich budować.

    Eclipse z automatu buduje i linkuje wszystko co napotka w swoim folderze z projektem (chyba że zaznaczymy plik w project explorerze wybierzemy "resource configuration -> exclude from build" ).
REKLAMA