Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

LPC1343 - problem z kompilacją AN11018: USB composite device on the LPC134x

a-kendzio 17 Kwi 2017 15:33 657 6
  • #1 17 Kwi 2017 15:33
    a-kendzio
    Poziom 4  

    Witam

    Potrzebuję użyć klasy USB CDC - pobrałem apliaction note http://www.nxp.com/documents/application_note...osite_device_on_the_LPC134x_with_software.zip utworzyłem nowy projekt w LPCXpresso. Projekt się buduję ale linkier krzyczy o braku funkcji. Sprawdziłem w plikach projektu funkcje znajdują się w pliku usbcore.c
    Nie wiem dlaczego ich nie dołącza ich do programu :(

    Code:
    Building target: CDC_USB.axf
    
    Invoking: MCU Linker
    arm-none-eabi-gcc -nostdlib -L"/home/andrzej/workspace/LPC1343/CMSIS_CORE_LPC13xx/Debug" -Xlinker -Map="CDC_USB.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -mcpu=cortex-m3 -mthumb -T "CDC_USB_Debug.ld" -o "CDC_USB.axf" ./src/DiskImg.o ./src/cdcuser.o ./src/clkconfig.o ./src/cr_startup_lpc13xx.o ./src/crp.o ./src/mscuser.o ./src/serial.o ./src/usbcomp.o ./src/usbcore.o ./src/usbdesc.o ./src/usbhw.o ./src/usbuser.o -lCMSIS_CORE_LPC13xx
    Memory region Used Size Region Size %age Used
    ./src/usbcore.o: In function `USB_EndPoint0':
    MFlash32: 16080 B 32 KB 49.07%
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:610: undefined reference to `USB_ReqGetStatus'
    RamLoc8: 7016 B 8 KB 85.64%
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:617: undefined reference to `USB_ReqSetClrFeature'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:627: undefined reference to `USB_ReqSetClrFeature'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:637: undefined reference to `USB_ReqSetAddress'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:644: undefined reference to `USB_ReqGetDescriptor'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:656: undefined reference to `USB_ReqGetConfiguration'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:663: undefined reference to `USB_ReqSetConfiguration'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:673: undefined reference to `USB_ReqGetInterface'
    /home/andrzej/workspace/LPC1343/CDC_USB/Debug/../src/usbcore.c:680: undefined reference to `USB_ReqSetInterface'
    collect2: error: ld returned 1 exit status
    make: *** [CDC_USB.axf] Błąd 1

    10:58:41 Build Finished (took 2s.149ms)


    Dodaje plik usbcore.c

  • #2 17 Kwi 2017 16:46
    Piotrus_999
    Poziom 39  

    One są inline. Musza być zaincludowane do pliku, w którym są wywoływane. Albo zadeklarowane bez inline

    Ale generalna uwaga: radzę zacząć od lepszego poznania C. To jest podstawa.

  • Pomocny post
    #3 18 Kwi 2017 17:50
    Badmaneq
    Poziom 23  

    Akurat funkcje te są zdefiniowane i wywoływane w jednym pliku...
    Możesz pozbyć się __inline lub lepiej poprzedić deklaracja static, np.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    albo skompilować z flagą -fgnu89-inline
    Kiedy usuniesz __inline uC będzie za każdym razem skakał do adresu gdzie znajduje się funkcja, zamiast wstawiać ciało za każdym razem kiedy funkcja jest wywoływana.
    Poczytaj https://gcc.gnu.org/onlinedocs/gcc/Inline.html#Inline oraz tutaj .

  • #4 18 Kwi 2017 17:54
    Piotrus_999
    Poziom 39  

    Badmaneq napisał:
    Kiedy usuniesz __inline uC będzie za każdym razem skakał do adresu gdzie znajduje się funkcja,
    Takiś pewny?

  • #5 18 Kwi 2017 17:56
    Badmaneq
    Poziom 23  

    @Piotrus_999: Hmm, pewnie trzeba zobaczyć co wygenerował kompilator :)

    @a-kendzio: pokaż wynik polecenia nm usbcore.o

  • #6 18 Kwi 2017 18:43
    grko
    Poziom 31  

    Piotrus_999 napisał:
    One są inline. Musza być zaincludowane do pliku, w którym są wywoływane. Albo zadeklarowane bez inline

    Ale generalna uwaga: radzę zacząć od lepszego poznania C. To jest podstawa.


    To nie jest prawda ani nie ma związku z problemem autora. Z generalną "poradą" trudno się nie zgodzić czytając tego typu posty.

  • #7 20 Kwi 2017 16:02
    a-kendzio
    Poziom 4  

    Poprzedzenie tych funkcji deklaracja static spowodowało zbudowanie projektu.

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME