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

[STM32]Konfiguracja Eclipse + ARM (zestaw STM32VLDISCOVERY) - TUTORIAL

Adaszeq 10 Sty 2012 19:20 18126 62
  • #31 10395773
    Kleczkoś
    Poziom 11  
    Posty: 59
    Pomógł: 4
    Freddie Chopin napisał:
    Adaszeq napisał:
    Może niedługo OpenOCD będzie wspierał STlink'a i rozwiąże ten problem ;p

    Już wspiera (; Patche zostały dodane do głównego repozytorium, na razie jest z mojej strony dostępna tylko taka "testowa binarka", a taka "normalna" jest w planach za jakieś 1.5 miesiąca (jakoś tak wyszło, że nową kompilację udostępniam co 2 miesiące). Jeśli jest zainteresowanie, to mogę się pospieszyć...

    O którym pliku tu mowa?
    O OpenOCD 0.5.0 z folderu Download\Programy\Open OCD,
    czy o OpenOCD 0.6.0 z folderu Download\Programy\Open OCD dev?
  • #33 11218640
    Konto nie istnieje
    Konto nie istnieje  
  • #34 11218923
    alagner
    Poziom 26  
    Posty: 768
    Pomógł: 85
    Ocena: 29
    Tzn. czego nie próbowałeś? Serwera z Atollica? Działa ok.

    Z tym, że uprawiać sztuki pt. wyciągać gdbserver z innego środowiska można na etapie nauki, ale docelowo (i zawodowo) nie chciałbym pracować na zamkniętym sofcie. A na pewno nie na nielegalnym ;)

    BTW - Freddie, to nowe OpenOCD ST Linka/V2 wspiera normalnie czy trzeba robić jakieś dzikie sztuki? Pytam , bo wersja 0.6 dev z Twojej stronki działa generalnie ok, ale od czasu do czasu errorami sypała. Jeśli jest lepiej to się pobawię ale nie chcę pchać się w nic nie mając pewności, bo dwa miechy temu stawiałem system po tym jak drivery libusb do innego jtaga położyły mi całe USB w kompie ;)
  • #35 11219097
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    No generalnie działa od jakiegoś czasu już - zarówno ST-Link/V2 jak i V1. Od wersji 0.6.0-rc1 w górę interfejsy te wymagają sterownika WinUSB (libusb-1.0).

    4\/3!!
  • #36 11219624
    Konto nie istnieje
    Konto nie istnieje  
  • #37 11219673
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Zrób to po prostu tak:

    https://www.elektroda.pl/rtvforum/topic1313509.html
    https://www.elektroda.pl/rtvforum/topic1339518-0.html

    W OpenOCD działa ST-Link więc będziesz miał wszystko. Wtyczkę do robienia strasznie skomplikowanej sprawy w postaci generowania Makefile sobie daruj i po prostu oprzyj całość na którymś z przykładów z mojej strony - importujesz do Eclipse i działa - nic nie trzeba konfigurować.

    4\/3!!
  • #38 11237593
    Konto nie istnieje
    Konto nie istnieje  
  • #39 11237673
    gaskoin
    Poziom 38  
    Posty: 4159
    Pomógł: 436
    Ocena: 102
    Do samego programowania JTAG nie jest potrzebny bo wszystkie układy STM32 mają fabrycznie wgrany, nienadpisywalny bootloader.
  • #40 11237741
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Czemu ty chcesz włączać konfig dla VSLINKa skoro masz ST-Linka? Przecież w OpenOCD jest nawet gotowy konfig dla płytki discovery, ale lepiej ponarzekać jak to wszystko jest beznadziejne bo nie działa tak jak Ty sobie to wymarzyłeś...

    4\/3!!
  • #41 11237932
    Konto nie istnieje
    Konto nie istnieje  
  • #42 11239547
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    e-mega napisał:
    Rozminęliśmy się w rozumowaniu, bo ja nie mam pojęcia co tam wpisać. Wszedłem w google i znalazłem "-f interface/vsllink-swd.cfg -f target/stm32f1x.cfg" nie wiem co powinno tam być wpisane by korzystać z ST-Link.

    Ciekawe tłumaczenie... W paczce z OpenOCD masz 3 foldery - board, interface, target. Czy to naprawdę tak dużo roboty, żeby przejrzeć co w którym jest i dojść do jakichś wniosków? Może nawet znalazłbyś plik, który ma bardzo tajemniczą nazwę stm32vldiscovery.cfg - kto wie?

    4\/3!!
  • #43 11241219
    Konto nie istnieje
    Konto nie istnieje  
  • #45 11241289
    Konto nie istnieje
    Konto nie istnieje  
  • #46 11242706
    willyvmm
    Poziom 31  
    Posty: 1754
    Pomógł: 164
    Ocena: 356
    Wczoraj skonfigurowałem całe środowisko,

    Sourcery CodeBench Lite 2012.03-56
    Eclipse Juno
    OpenOCD 0.6.0.RC1

    Wszystko ruszyło niemal od pierwszego odpalenie, po drobnych zmianach dostosowujących do posiadanego sprzętu. (STM32L-Discovery)

    Świetny tutorial :)

    Oops, pomyliłem wątki, korzystałem z tutoriala Freddiego Chopina.
  • #47 11307245
    tadeek2
    Poziom 11  
    Posty: 28
    Mam pytanie z innej beczki:)
    Co mam zrobić aby w Atollic TrueStudio pokazywało mi rozmiar wgrywanego programu?
  • #48 12645129
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Przeszedłem całą konfiguracje i wszystko ładnie pięknie sterta błędów która mi się udało wyeliminować importując odpowiedni pliki do projektu. mam jeden błąd, podobno linkera:
    undefined reference to `_sbrk'

    Drzewko katalogów:
    [STM32]Konfiguracja Eclipse + ARM (zestaw STM32VLDISCOVERY) - TUTORIAL
  • #49 12645141
    alagner
    Poziom 26  
    Posty: 768
    Pomógł: 85
    Ocena: 29
    Dołącz implementację syscalls.
  • #50 12645210
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Dzięki zaczęło się bildować niemniej jednak pojawił się kolejny problem. identyczny projekt skompilowany za pomocą TrueStudio działa po wgraniu natomiast tutaj nie. Jest również identyczna ilość warnings.
  • #51 12645225
    alagner
    Poziom 26  
    Posty: 768
    Pomógł: 85
    Ocena: 29
    Jaki masz skrypt linkera, syscallsy i rozbiegówkę?
  • #52 12645278
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Nie jestem w stanie odpowiedzieć na to pytanie, gdyż jestem laikiem. Postępowałem zgodnie z tutorialem, ewentualnie gdzie mogę uzyskać odpowiedz na pytanie które zadąłeś?
  • #53 12645673
    alagner
    Poziom 26  
    Posty: 768
    Pomógł: 85
    Ocena: 29
    Pliki .ld, startup.S/startup.c/startup.s [nie wiem jak się nazywają], syscalls.c albo podobny.

    I co konkretnie nie działa?
  • #54 12648894
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Mam skopiowany do głównego katalogu następujące pliki:
    stm32_flash.ld - jest skopiowany z TrueStudio, ale probowalem rownież na jakiejś konfiguracji z neta odpalić i również nic
    startup_stm32f10x_md.s oraz startup_stm32f10x_md_vl.s skopiowane z biblioteki dostarczanej przez ST
    syscalls.c - ściągnięte z neta dla STM32F103.

    Sprawdziłem w stm32_flash.ld i program teoretycznie powinien się ładować w odpowiednim sektorze pamięci.
    Niestety nie moge przedbagowac problemu bo korzystam z programatora RLink. Dodam że wygenerowany plik elf w TrueStudio jest nieporównywalnie mniejszy i po wgraniu działa bez zarzutów. Wygląda to tak jakby kontroler ogóle nie zaczynał pracy.
  • #55 12649017
    alagner
    Poziom 26  
    Posty: 768
    Pomógł: 85
    Ocena: 29
    wyeksportuj ten projekt do zipa i wrzuć go jako załącznik...
  • #56 12649181
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Ja stawiam na złe rozszerzenie plików assemblerowych (powinno być .S, a nie .s), bo jakby je w ogóle kompilował i linkował to byś miał błąd, że masz DWA startupy i DWIE tablice wektorów.

    Jak zwykle więc polecam oprzeć dalsze działania o mój przykładowy projekt, który - w przeciwieństwie do innych znalezionych "w necie" - działa (;

    https://www.elektroda.pl/rtvforum/topic1339518-0.html

    4\/3!!
  • #57 12649200
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Poniżej dołączony projekt
    Załączniki:
    • szablon.zip (3.53 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #58 12649368
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    To Ci nigdy nie zadziała - skrypt linkera zawiera tagi html, a startupy są dla Keila, a nie GCC. Sugestii z poprzedniego postu nie ma co powtarzać.

    4\/3!!
  • #59 12650513
    dzeniu
    Poziom 11  
    Posty: 26
    Ocena: 2
    Super przygotowany projekt dzięki Freddie. Mam teraz problem z komendą cs-make. Zainstalowałem ponownie Sourcery G++ Lite Edition w katalogu do którego ścieżka jest ścisła (bez żadnych spacji) i wyrzuca błąd podczas bildowania że nie może uruchomić cs-make.
  • #60 12650535
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Proponuję "do kompletu" zainstalować też CoreUtils (instalka na stronie) - koniecznie w ścieżce bez NAWIASÓW (spacje akurat tutaj mało przeszkadzają) i zmienić "cs-make" na "make" w opcjach projektu (albo skopiowac plik pod nazwą cs-make - też opcja). Generalnie sprawdź czy możesz uruchomić cs-make (lub make) z wiersza poleceń, z dowolnej lokalizacji, np. tak:
    > c:
    > cs-make --version // lub "make --version"

    Jeśli make/cs-make działa z linii komend, wywoływane z głównego folderu na C:, to w Eclipse też powinno zadziałać (ewentualny restart jeśli coś robiłeś "na żywo" - PATH nie zawsze się "propaguje" automatycznie).

    4\/3!!

Podsumowanie tematu

✨ Dyskusja dotyczy konfiguracji środowiska Eclipse dla programowania mikrokontrolerów STM32, szczególnie na zestawie STM32VLDISCOVERY. Użytkownicy dzielą się doświadczeniami związanymi z problemami kompilacji, błędami związanymi z plikami nagłówkowymi oraz konfiguracją narzędzi takich jak OpenOCD i Sourcery CodeBench. Wiele osób napotyka trudności z optymalizacją kodu, a także z debugowaniem przy użyciu ST-Link. Wskazówki obejmują m.in. ustawienia w Eclipse, sprawdzanie ścieżek do narzędzi oraz implementację syscalls. Użytkownicy podkreślają znaczenie poprawnej konfiguracji i dostosowania plików do specyfikacji projektu.
Wygenerowane przez model językowy.
REKLAMA