Elektroda.pl
Elektroda.pl
X
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32] Eclipse, projekt z automatycznym make, kłopoty z kompilacją

30 Mar 2011 21:04 1895 4
  • Poziom 13  
    Przyszedł i mnie czas sięgnąć po STM32.
    Dla miękkiego startu skorzystałem z tutoriala Chopina. Działa ok. Przykład ten korzysta jednak z gotowego make'a a ja potrzebuję docelowo generowanego automatycznie. Zrobiłem więc w eclipsie nowy projekt bazujący na tych samych źródłach ale z make'iem generowanym w eclipsie. No i prawie sukces. Nie całkiem bo na komputerze z Vistą działa wszystko ok natomiast pod XP dziwny problem po uruchomieniu builda.

    cs-make all
    Building file: ../main.c
    Invoking: GCC C Compiler
    arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -O0 -ffunction-sections -fdata-sections -g -ggdb3 -Wall -Wstrict-prototypes -Wextra -fverbose-asm -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c"
    cs-make: *** [main.o] Error 1

    Uruchamiając dokładnie takie samo polecenie na piechotę z wiersza poleceń kompiluje bez zająknięcia. Spróbowałem więc próbnie uruchomić kompilację pliku main.c z zakładki BuildSteps/Pre-build steps. Ten sam problem. Dopiero gdy usunąłem znaki cudzysłowia czyli wywołałem tak:
    arm-none-eabi-gcc -c -mcpu=cortex-m3 -mthumb -O0 -ffunction-sections -fdata-sections -g -ggdb3 -Wall -Wstrict-prototypes -Wextra -fverbose-asm -MMD -MP -MFmain.d -MTmain.d -omain.o ../main.c
    to polecenie wykonało sie prawidłowo. Fajnie tylko że make mi buduje te komendy z cudzysłowiami. Dokładnie ten sam projekt uruchomiony na tej samej wersji eclipsa z tą samą wersją gcc Sourcery G++ Lite na komputrze z Vistą bangla bez żadnych problemów. Nadmienię że na tym z XP mam też projekty dla STR9 kompilowanych gcc Sarm i tam cudzysłowia też nie przeszkadzają.

    Jak to rozgryźć?
  • PCBway
  • PCBway
  • Poziom 13  
    Hmm. Dodatkowej wtyczki nie instalowałem czyli korzystam chyba z tych które były od razu w Eclipsie Helios CDT 7.02 SR2. W toolchain editor wybrany builder jest GNU Make Builder. W instalation details/plug-ins jest tam jakiś C\C++ Standard make build UI. No nie jestem biegły w tych zawiłościach eclipsa i wtyczek.
  • Poziom 30  
    wszim napisał:
    Hmm. Dodatkowej wtyczki nie instalowałem czyli korzystam chyba z tych które były od razu w Eclipsie Helios CDT 7.02 SR2. W toolchain editor wybrany builder jest GNU Make Builder. W instalation details/plug-ins jest tam jakiś C\C++ Standard make build UI. No nie jestem biegły w tych zawiłościach eclipsa i wtyczek.

    Zainstaluj, warto... Potem New C Project i wybierz Swój toolchain. Opcje dla make (wybór rdzenia, optymalizację itp.) ustawiasz w graficznym menu Properties -> C/C++ Build -> Settings (jak na obrazku).

    Code:
    This plug-in allows to build embedded ARM applications, using the managed project features of Eclipse CDT, i.e. there is no need to manually create and maintain a makefile.
  • Poziom 13  
    Właśnie o tym piszę że generuję make'a, nie korzystam z gotowego , czyli ustawiam sobie opcje kompilacji itp w graficznym menu. I generalnie działa tylko nie zawsze.

    Dodano po 1 [godziny] 14 [minuty]:

    tymon_x napisał:

    Zainstaluj, warto...


    Zainstalowałem. Efekt ten sam. Tzn po zainstalowaniu w opcji Proprties/CC++Build/Tool Chain Editor/Current builder pojawiło się wiele opcji(przedtem były tylko dwie GNU Make Builder i CDT Internal Builder). Wybierałem ARM Soucery GNU Make Builder lub ARM Soucery Windows GNU Make Builder i za każdym razem mam ten sam efekt błędu. Dodatkowo upierdliwe jest że po przestawieniu na inny make builder przestawia się samoczynnie opcja "Use default build command" i próbuje wykonywać make zamiast cs-make. Trzeba za każdym razem ją zmieniać. Mniejsza o to. Spróbowałem jeszcze jednej opcji która mi wcześniej nie działała ale pewnie z powodu innych błedów jakie wtedy miałem , a mianowicie załączyłem CDT Internal Builder.. i w mordę zadziałało :D Zrobiło make'a i skompilowało cały projekt. Czyżby to było wyjście? Znając życie będzie jakaś zasadzka jak projekt się rozrośnie.