Forum Linux.pl

Programowanie => C/C++ => Wątek zaczęty przez: P3kWl w 2016-04-04, 17:59:47

Tytuł: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: P3kWl w 2016-04-04, 17:59:47
Dobry
Mam pytanie: jak zainstalować kompilator GNU GCC ARM?
Konkretnie - https://launchpad.net/gcc-arm-embedded/+download
Po prostu jak w CB chce stworzyć nowy projekt i wybieram ARM projekt to nie wykrywa żadnego kompilatora.
Co zrobić, jak zainstalować kompilator powyżej, by CB go wykrył?
Używam Ubuntu 14.04 LTS.
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: Paweł Kraszewski w 2016-04-04, 21:14:03
Rozpakowujesz archiwum do katalogu /home (prywatne) albo /opt (dla wszystkich użytkowników) i dodajesz do zmiennej PATH odpowiednio /home/gcc-arm-none-eabi-5_3-2016q1/bin albo /opt/gcc-arm-none-eabi-5_3-2016q1/bin. Po zamknięciu i ponownym otworzeniu konsoli powinno zadziałać polecenie arm-none-eabi-gcc -v
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: P3kWl w 2016-04-04, 23:28:25
Dziękuje za odpowiedź.
Wolałbym używać CB (graficznie).
Zrobiłem jak mówiłeś i działa.
Problemem w samym sobie jest to że
muszę skompilować projekt ARM. Używam CB. Na początku stworzyłem pusty projekt, wskazałem ścieżki kompilatora, ustawiłem flagi kompilatora i definicje, wszytko działa aż wyskakuje:
Cytuj
/home/kacper/Dokumenty/CodeBlocks/Projekty/gcc-arm-none-eabi-5_2-2015q4/lib/libcc1.so: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Podejrzewam że problemem jest to że gdy zacząłem od "pustego projektu" to jest tam gdzieś wewnętrznie ustawione by kompilować do pliku wykonywalnego a nie hex. Po prostu myślałem ze tworząc ARM projekt to tego błędu nie będzie. Jak by rozwiązać ten problem z linkerem to było by fajnie :).

Jutro spróbuje kompilacji w konsoli.
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: Paweł Kraszewski w 2016-04-05, 07:07:50
Cytuj
Wolałbym używać CB (graficznie).
Ale ja ci nie bronię. Polecenie z klawiatury było dla sprawdzenia, czy kompilator się zgłasza. Jak się zgłosi, powinno dać się go wykorzystać z CB. Jednak z mojego doświadczenia dodam, że na kontrolery najlepsze wsparcie pod Linuksem ma Eclipse-CDT, łącznie z tym, że (co najmniej) STMicroelectronics daje za darmo pluginy do obsługi ich procków. Co do Eclipse'a, polecam ściągnąć najnowszą wersję z ich strony, bo ta w repozytoriach już lekko mchem porasta.

Cytuj
gdy zacząłem od "pustego projektu" to jest tam gdzieś wewnętrznie ustawione by kompilować do pliku wykonywalnego a nie hex.

Mam podskórne wrażenie, że nigdy nie pisałeś nic pod platformę arm-none-eabi? Bo "pusty projekt" to ostatnie, czego potrzebujesz (potrzebujesz pliki nagłówkowe i procedurę inicjalizacji na konkretny procesor, potrzebujesz mapy pamięci dla linkera i dużo, dużo innych technicznych plików). I w mojej karierze z ARMami serii M nigdy nie generowałem HEX-a. Za czasów zabawy z 51-kami i AVR-kami - a i owszem. Ale programatory pracujące po Linuksem obsługują (w zależności od programu) surowe pliki binarne albo odpowiednio przygotowane obrazy ELF. No ostatecznie HEXy też, ale w projektach z którymi miałęm styczność nie były one używane.

To może tak: na jaki sprzęt (konkretnie, model mikrokontrolera i model płytki prototypowej) generujesz aplikację, jakim interfejsem/programatorem programujesz i jakiego programu do obsługi tego programatora chcesz użyć?

Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: P3kWl w 2016-04-05, 16:45:40
To ja opowiem całą historie od początku :)

Musze skompilować program pod mikroprocesor STM32F103RBT6 z rodziny ARM Cortex-M3.
Jedyne co dostaje to paczka z libami i projekt pod Cocox'a, chciałbym to przerobić pod CB albo Eclipse.
http://roboty.utp.edu.pl/?page_id=80
Jeśli chodzi o CB to mam tak:
definicje:
STM32F103RB
STM32F10X_MD
i "inne"
-mcpu=cortex-m3 -mthumb
Kompilator pobrałem i wskazałem ścieżkę w projekcie - kompiluje.
A jeśli chodzi o to co linkuje to jest biblioteka w:
gcc-arm-none-eabi-5_2-2015q4/lib/libcc1.so
Jedyne co teraz dostaje to ten błąd niżej - wszystkie pliki są znalezione tylko problem z linkerem mam.

A jeśli chodzi o Eclipse to na razie je zainstalowałem i pobrałem -> http://gnuarmeclipse.github.io/
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: Paweł Kraszewski w 2016-04-05, 18:23:03
Z tego co widzę, to Cocox to przystrzyżony Eclipse ze zmienionym formatem pliku projektu (standaryzacja jast taka mainstreamowa...)

Popatrzę co i jak i dam znać.
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: P3kWl w 2016-04-09, 11:40:03
Próbowałem walczyć z Eclipse ale dostaje błąd:

cannot find -l/home/kacper/workspace/gcc-arm-none-eabi-5_2-2015q4/lib/libcc.so   Test          C/C++ Problem

Może tobie udało się skonfigurować Eclipse?
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: P3kWl w 2016-04-10, 22:47:19
Chciałem się tylko przypomnieć.
Naprawdę nie mogę sobie z tym poradzić....

Dlaczego eclipse nie widzi biblioteki?
Tytuł: Odp: Konfiguracja projektu ARM w Code::Block pod Ubuntu.
Wiadomość wysłana przez: 1709 w 2016-04-11, 01:20:13
1. Możesz spytać na forum danego narzędzia którego chcesz użyć.
      translator do pomocy
                   https://translate.google.pl/
2. Może faktycznie najpierw sprawdz czy się skompiluje z terminala.
- zależności arm chyba powinny być skompilowane i zainstalowane jako pierwsze, czasami nie darady inaczej
- do wiekszosci pakietów masz dokumentacje jak budowac na arm
   https://how-to-build-for-arm.wikispaces.com/expat
http://jk.ozlabs.org/docs/arm64-toolchain/
http://www.torriefamily.org/~torriem/wiki/computer_stuff:crosscompiler
http://wiki.beyondlogic.org/index.php?title=Cross_Compiling_BlueZ_Bluetooth_tools_for_ARM
     jesli nie ma to pytaj developerów pakietu.

Znalezione pomoce, które nie wiem czy przegladales
http://www.linuxquestions.org/questions/programming-9/how-to-configuring-code-blocks-ide-for-arm-linux-gcc-775276/
https://www.raspberrypi.org/forums/viewtopic.php?t=37673&p=375591
http://www.valvers.com/embedded-linux/beaglebone/step06-cross-compiling/
http://www.hackvandedam.nl/blog/?p=707
https://www.youtube.com/watch?v=B-obRp3x22g

Edytowane:
To tez jest ciekawe:
http://www.codeproject.com/Tips/601093/Creating-STM-Microcontroller-Project-in-Code-Blo

Edytowane:
To jest jeszcze lepsze, może to Ci się przyda ?
https://forum.pjrc.com/threads/27286-teensyduino-in-Code-Blocks-how-to-set-up-ARM-NONE-EABI-GCC

I jeszcze coś, czy masz biblioteke, możesz sprawdzić w terminalu
ld -ldrm --verbose
Przy czym drm to szukana nazwa mojej biblioteki i na koncu komenda powina pokazać
       gdzie takie biblioteki mi znajduje,
a która jest jest zgodna z arm to juz sam musisz dojsc. (wywali odpowiedni blad przy kompilacji).
Powodzenia.

PS:   Za spam ... , rozumiem że użytkownik oczekuje profesjonalnej
           pomocy,  ale chciałem się przypomnieć jemu,
                  że nie tylko tu można szukać informacji, czy pomocy,
                     a szukać, spróbować nie zaszkodzi jak się nie ma wyjscia.