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

ST-Link + Eclipse + co jeszcze ?

rpal 04 Gru 2009 10:54 4832 23
  • #1 04 Gru 2009 10:54
    rpal
    Poziom 27  

    W zasadzie kieruję się do kol. Frediego bo wziałem sobie do serca jego rady i "wszedlem" w STM32 :) A na poważnie to chodzi o to że jakoś nie wiedzie mi się w środowisku Eclipse. Jesli kolega byłby uprzejmy to prosilbym jeszcze raz o łopatologiczne wyłuskanie jak zmusić Eclipse do obsługi JTAG-a. W uVision jakoś już sobie radzę (nieszczęsne ograniczenie do 32kB) jednak Eclipse cały czas jest zagadką. W podobnym tj. Atolic Studio podczas przejścia do debugowania nie mogę pokonać zaś błedu związanego z jakąś biblioteką :) PZDR

    0 23
  • #3 04 Gru 2009 12:38
    rpal
    Poziom 27  

    albo ja czegos nie rozumiem albo kolega markosik. Moje środowisko nie widzi oprogramowania dla SMT32 co z tego ze moge sobie strorzyć projekt i go skompilować jesli nie mogę go wgrac za pomocą ST-LINK-a. Chodzi mi o wtyczkę którą mógłbym wgrać w środowisko. Strona którą poleca kolega o ile się nie mylę współpracuje z innymi programatorami/deburgerami niż ST-LINK.Poza tym kolejne pytanie oprogramowanie od deburgera odpala się z Eclipse czy jako oddzielny proces? Myslę o analogiach do uVision w którym mam generalnie gdzieś co i jak z deburgerem ważne abym sobie go wskazał w ustawieniach projektu.Szczerze mówiąc te darmowe środowiska zaczynają mnie mocno irytować bo konfiguracja do poprawnej pracy wymaga karkołomnych czynności. Z mojego punktu widzenia to powinienem się skupić na samym kodzie a nie walczyć ciągle z tym jak ustawić środowisko do poprawnej pracy. To wgrać, tamto gdzieś wpisać, dziesiątki plików konfiguracyjnych, ciarki przechodzą po plechach. Widać tu jednak wyższość uVision bo wszystko jest w jednym oprogramowaniu i człowiek nie musi duperelami sobie głowy zawracać :(

    0
  • #4 04 Gru 2009 13:55
    markosik20
    Poziom 33  

    Cytat:
    Moje środowisko nie widzi oprogramowania dla SMT32


    Chyba raczej "nie widzi" STM'a....zresztą eclipse samo z siebie nie "zobaczy", do tego potrzebny jest np: Open OCD.

    Cytat:
    Chodzi mi o wtyczkę którą mógłbym wgrać w środowisko


    Z tego co widzę Open OCD jeszcze nie obsługuje ST-Link'a.
    Lista
    Sam ST-link współpracuje z IAR ,Keil i Atolic.

    Cytat:
    Poza tym kolejne pytanie oprogramowanie od deburgera odpala się z Eclipse czy jako oddzielny proces?


    Z poziomu eclipse lub z lini komend jako oddzielny proces.

    Cytat:
    Szczerze mówiąc te darmowe środowiska zaczynają mnie mocno irytować bo konfiguracja do poprawnej pracy wymaga karkołomnych czynności. Z mojego punktu widzenia to powinienem się skupić na samym kodzie a nie walczyć ciągle z tym jak ustawić środowisko do poprawnej pracy. To wgrać, tamto gdzieś wpisać, dziesiątki plików konfiguracyjnych, ciarki przechodzą po plechach. Widać tu jednak wyższość uVision bo wszystko jest w jednym oprogramowaniu i człowiek nie musi duperelami sobie głowy zawracać :(


    No przecież nikt Cię nie zmusza do pracy z eclipse :wink:.

    0
  • #5 04 Gru 2009 14:13
    rpal
    Poziom 27  

    oj kolego markosik nikt nie zmusza z wyjątkiem $$$ :) ktory z deburgerow jtag chodzi pod eclipse ? a atolicem zaś ma problem bo nie moge go zmusić aby zobaczył jtaga mimo że st-link jest w nim jedyna opcją. nie wiem czy serwer poprawnie ustawilem :) jakby nie patrzeć zawsze d... z tyłu :(

    0
  • #6 04 Gru 2009 14:22
    flapo213
    Poziom 21  

    Witaj Kolego

    Małe porównanie IDE Eclipse i środowiska RIDE

    Eclipse to tylko zaawansowane środowisko graficzne , samo w sobie nie ma kompilatorów, należy je dosinstalować osobno. RIDE podobnie nie ma kompilatora ale ma obsługę symulatora softwarowego mikrokontrolerów ST i obsługę ich programatorów. W obu przypadkach należy doinstalować jakiś kompilator np od Code Sourcery. Jeśli chodzi o możliwości jakie oferuje Eclipse to są one niebotycznie lepsze niż Ride (dlatego np Avr32 studio bazuje na Eclipse). Czekam z nieciepliowścią aż ktoś z ST postara się i dorzuci plugin do Eclipse zamiast inwestować w Ride. Odnośnie programowania to St-link chyba póki co nie jest obsługiwany przez openocd (myślę że to kwestia kilku miesięcy i będzie), ale np RLink już jest więc zainwestuj w Rlinka np. A odnośnie robienia wszystkiego na piechotę zamiast tylko kliknąc flash i idzie programowanie to kiedyś ktoś powiedział cyt: "Wszystko nim stanie się łatwe jest trudne" więc to pewnie kwestia wytrwałości ;). Ale spójrz na to z drugiej strony w Ride może programować tylko mikrokontrolery ST, a Eclipse masz ogólnie wszystko więc dodajesz swojego makefile i skrypty i masz świetne narzędzie do programowania szerszej gamy mikrokontrolerów. Niestety narzędzia takie jak Keil, Iar, czy np Rowley - ? rozleniwiają niesamowicie bo mają wszystko w sobie, ale z drugiej strony jak będziesz chciał komuś napisać program i wziąć za to pieniądze to co powiesz mu żeby Ci kupił licencję na któregoś z nich ;). Warto pomyśleć o darmowych programach gdyż kompilatory komercyjne są niezłe ale też i kosztowne i bynajmniej nie są to koszty Systemów operacyjnych ;)

    Pozdraiwam.

    PS. Napisz bardziej szczegółowe pytanie czego nie rozumiesz dokładnie no chyba że wszystkiego ;).

    0
  • #7 04 Gru 2009 14:24
    markosik20
    Poziom 33  

    Listę obsługiwanych JTAG'ów masz wyżej ->link.
    Jeżeli ST-Link jest oparty na FT2232 to może dałoby się rady skomunikować z OpenOCD.
    Sam kiedyś zaczynałem od Keil'a ale praca w Eclipse nad kodem jest o wiele bardziej komfortowa.

    0
  • #8 04 Gru 2009 14:37
    rpal
    Poziom 27  

    kol. flapo z pewnością napiszę tylko juz nei dziś. W każdym razie przysiądę się jeszcze raz do atolica bo to w zasadzie Eclipse i wymacam o co mu biega w zakresie błedow z ST-Linkiem.. Czy wersja Lite ma jakieś ograniczenia bo w sumie robię wszystko jak jest w pogladowej instrukcji a błedy cały czas wyskakują. Komplacja, linkowanie przebiega prawidłowo a przy odpaleniu Jtaga sypie się to wszystko. co do eclipse to istotnie widze jego plusy tak samo jak uP jest krotko mowiac "zajebisty" w porownaniu z AVR. Jednak te początkowe problemy irytują strasznie. Niestety dokumentacja stworzona przez ST jest strasznym syfem bałagan tam straszny porownując choćby z Atmelem. A i literatura u nas w szczątkowa a ta która jest pisana przez jakiegoś Tomka cośtam moim zdaniem niczego nie wyjasnia a tylko komplikuje. Brak mi opisów rejestrów, koleś z założenia przyjmuje że symboliką rejestrów nie trzeba się zajmować bo to gmatwa sprawę i od razu trzeba się przesiąść na bibliotekę od ST co wcale tak na mój gust nie jest prawdą, No i takie tam inne sprawy :) powalczę z Atolicem i napiszę w czym jest kłopot może ktoś kto już go rozgryzł co nieco pomoże :) A póki co poszukam jakiegoś innego JTAG-a.

    - pierwszy podstawowy problem z Atolicem kiedy we wlasciwosciach projektu chce zmienic w Tool Settings obiekt Target czyli rodzaj uP pole jest zablokowane przed zmianami podobnie jak wiele innych do ktorych nie mam dostępu. Czy to urok wersji lite ?
    Rozumiem że jak zrobię sobie Wrigley'a to zaskoczy mi w Eclipse ? :)

    0
  • #9 04 Gru 2009 15:08
    markosik20
    Poziom 33  

    rpal napisał:
    Rozumiem że jak zrobię sobie Wrigley'a to zaskoczy mi w Eclipse ? :)


    Oczywiście..wystarczy nieco przerobić STK200 z AVR'a.

    0
  • #10 04 Gru 2009 15:20
    rpal
    Poziom 27  

    OK, kol markosik . Które pluginy nalezy zainstalować dla Eclipse aby z tym promatorem on chodził ?
    czy "http://download.eclipse.org/tools/cdt/releases/ganymede > CDT Optional Features > Eclipse C/C++ GDB Hardware Debugging " o ktorym kol. fredek pisał ?
    Ten akurat zainstalowalem ale zylin jest niedostepny. Poza tym w opcjach projektu nie moge nigdzie odszukać definicji uP ?

    0
  • #11 04 Gru 2009 16:37
    markosik20
    Poziom 33  

    rpal napisał:
    Ten akurat zainstalowalem ale zylin jest niedostepny. Poza tym w opcjach projektu nie moge nigdzie odszukać definicji uP ?


    To nie tak, eclipse to tylko IDE, do połączenia z JTAG potrzebny jest OpenOCD, do debugowania GDB (znajduje się razem z kompilatorem np: Codesourcery, Yagarto).
    Tutaj masz opisane jak to wszystko konfigurować (akurat na inny procek ale zasada ta sama).
    http://gnuarm.alexthegeek.com/atmel/Using_Ope...or_AT91SAM7S_Cross_Development_revision_C.pdf

    0
  • #12 04 Gru 2009 17:11
    rpal
    Poziom 27  

    markosik20 napisał:
    rpal napisał:
    Ten akurat zainstalowalem ale zylin jest niedostepny. Poza tym w opcjach projektu nie moge nigdzie odszukać definicji uP ?


    To nie tak, eclipse to tylko IDE, do połączenia z JTAG potrzebny jest OpenOCD, do debugowania GDB (znajduje się razem z kompilatorem np: Codesourcery, Yagarto).
    Tutaj masz opisane jak to wszystko konfigurować (akurat na inny procek ale zasada ta sama).
    http://gnuarm.alexthegeek.com/atmel/Using_Ope...or_AT91SAM7S_Cross_Development_revision_C.pdf

    doskonale to rozumiem że to tylko nakładka która spina kolejne programy jednak kol.Freddie pisał o zylinie ze trzeba sciagnac wtyczkę. Akurat wszystko co trzeba ma zainstalowane z wyjatkiem Zylina. Poza tym czemu w Eclipsie w ogole nie mogę definiować rodzaju procka a w Attolicu dla odmiany mam tę opcję zablokowaną. No i co z tym Zyline ? :) Domniemam że brak mi toolchaina ? Czy to własnie ten cały zylin ?

    0
  • #13 04 Gru 2009 17:41
    markosik20
    Poziom 33  

    rpal napisał:
    Poza tym czemu w Eclipsie w ogole nie mogę definiować rodzaju procka


    Nie potrzeba definiować rodzaju procka (gdyż tych rodzai jest baaardzo dużo), jest w sumie plugin który to umożliwia ale ponoć nie działa do końca poprawnie.
    Zylin to plugin potrzebny do debugowania, pod nim tworzy się konfigurację do debugowania.

    0
  • #14 04 Gru 2009 18:39
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Bynajmniej - debuggować można (i wg mnie należałoby) przez GDB Hardware Debugging, ale bez Zylina nie działa dezassemblacja w debuggerze - dla większości osób i tak zbędna.

    @rpal: wszystko o co pytasz jest wyjaśnione setki razy w dwóch tematach i artykule, zamiast pytać po raz sto-pierwszy przeczytaj je po prostu całe. Jeśli jeszcze nie będziesz wiedział co i jak, to przeczytaj raz jeszcze. W razie kolejnej porażki - goto @rpal

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

    4\/3!!

    0
  • #15 04 Gru 2009 21:04
    rpal
    Poziom 27  

    kol. Freddie kto pyta nie bładzi a jak czegoś nie kumam to kogo zapytam jak nie ciebie ? W koncu dalem sie tobie przekonać aby zająć się tym STM32 więc odpowiadaj :) Udało mi się samemdu rozgryźć uVision ale 32 kB to trochę za mało, co nieco połapałem się funkcjach bibliotecznych od STM więc i tak nie jest tak źle :) Niestety nie leżą mi do końca te ich wypociny bo chciałbym co nieco pogrzebać w rejestrach. Noty od ST są lakoniczne więc przygotuj się na kolejną serię pytań ale to juz nie dziś. Omówiono gdzieś poza notami ST sensownie assembler ? to tak tytułem wstępu :) Na razie już nic nie napiszę aby kolegów nie irytować jednak jakby co jestem na nasluchu :)

    0
  • #16 04 Gru 2009 22:00
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Po co ST miałoby omawiać assembler, skoro assembler, rdzeń, magistrale, niektóre peryferia (SysTick, NVIC, ...), etc. są własnością firmy ARM i to na jej stronie są wieluset stronicowe dokumenty na ten temat?

    No i po co komu znajomość assemblera na początku zabawy z ARMami? Powtarzam to zawsze i powtórzę jeszcze raz - assembler procesorów ARM jest nie-ludzki - czas wykonania instrukcji zależy chyba od wszystkiego co się tylko da - od operandów, od operandów poprzednich instrukcji, od samych poprzednich instrukcji itd. Wątpię czy ktokolwiek bez kilkuletniego doświadczenia w ARMach jest w stanie napisać lepszy kod niż kompilator.

    Pytać możesz o co chcesz, ale pytanie mnie o rzeczy na które już odpowiedziałem (i to nie raz, ani nie dwa razy) wywołuje u mnie agresję [;

    I nie licz na to, że z ARMami można zacząć "z dnia na dzień" - nie można. Po prostu jest to niewykonalne...

    4\/3!!

    0
  • #17 05 Gru 2009 00:19
    rpal
    Poziom 27  

    pocieszył mnie kolega freddie niesamowicie :) OK, chcieć to móc, to tyle dobranoc :)

    0
  • #18 05 Gru 2009 15:47
    rpal
    Poziom 27  

    Doczekał się kol.Freddie konkretnego pytania :) W ogóle to udało mi się jakoś pokonać Attolic-a więc problem z Eclipse w zasadzie uważam za rozwiązany :) Niestety posługuję się książką niejakiego Paprockiego i z przykrościa uważam że to najgorzej wydane pieniądze ostatnich kilku tygodni. Uważam tak z powodu przykładów które zamieszcza niestety zapomniało mu się w swoich listingach załączać informacji o plikach nagłówkowych :( Większość czasu tracę więc na przeszukiwanie deklaracji.
    chodzi mi o przerwanie SysTick_Handler, czy dobrze rozumiem ze na skutek obecności rejestru kalibracyjnego z tego przerwania nie da się wydusić okresu mniejszego od 1 ms?
    Bzdury tu napisałem :( Mozna uzyskać mniejsze okresy.

    0
  • #19 05 Gru 2009 16:57
    mkaczor
    Poziom 15  

    W "Elektronice Praktycznej CD+FTP" 12/2009 na CD sa pelniejsze programy zrodlowe z ksiazki Krzysztofa Paprockiego "Mikrokontrolery STM32 w praktyce".

    0
  • #20 05 Gru 2009 21:29
    rpal
    Poziom 27  

    No niestetety nie jest prenumeratorem a sciaganie z ftp za pomocą kodów sms-owych zawsze skutkowalo pomniejszeniem mojego salda i nic nie znaczącymi kodami dostepu. Takie pytanie odnośnie przerwań od liczników. Czy elementy struktury inicjującej timery t.j. TIM_Period,TIM_Prescaler mam traktować jako kolejne dzielniki czestotliwosci wzorcowej timera, ktora to z kolei taktuje kanały licznika ? Jeśli tak, a tak sądzę to z kolei przerwania od kanałów rozumiem że są określane poprzez pole struktury TIM_Pulse ? Na koniec pytanie może nieco durne, jaka jest praktyczna graniczna wartość taktowania kanałów tak aby uzyskać maksymalnie szybką obsługę przerwania bez wykrzaczania się programu. Doskonale wiem że to zależy od tego co znajduje się w obsłudze przerwania ale przyjmując np. że sprowadza się to do zmiany poziomów na pinach wyjściowych to z jaką wartość można przyjąć za graniczną ?

    0
  • #21 05 Gru 2009 23:04
    Bruum
    Poziom 23  

    Cytat:

    W "Elektronice Praktycznej CD+FTP" 12/2009 na CD sa pelniejsze programy zrodlowe z ksiazki Krzysztofa Paprockiego "Mikrokontrolery STM32 w praktyce

    Witam! Pod jaką nazwą lub w jakim folderze na tej płytce to znalazłeś bo jakoś tego nie widzę?

    0
  • #22 06 Gru 2009 15:08
    rpal
    Poziom 27  

    Odnośnie inicjowania liczników, pole struktury TIM_Period w jakim związku pozostaje z okresem wykonywania przerwania powstającego od kanałów licznika. Zauważyłem że wartośc tego pola nie zawsze ma wpływ na okres wyzwalania przerwań. Chyba że coś pochrzaniłem.

    0
  • #23 07 Gru 2009 12:24
    mkaczor
    Poziom 15  

    W "Elektronice Praktycznej CD+FTP" 12/2009 na CD w katalogu \Dodatkowe_materialy_do_artykulow\STM32Butterfly\Przykladowe_projekty_z_ksiazki_STM32 sa pelniejsze programy zrodlowe z ksiazki Krzysztofa Paprockiego "Mikrokontrolery STM32 w praktyce".

    Wydawca "BTC" takze umiescil na stronie http://btc.pl/?id_prod=10296000 programy zrodlowe z ksiazki.

    0
  • #24 08 Gru 2009 20:35
    rpal
    Poziom 27  

    Kol. Kaczor dziękuję za pomoc choć brak w książecce pełnych listingów nie był aż tak wielką preszkodą. Na początek interesują mnie pola struktury inicjującej licznik, dla przykładu :

    Code:

      TIM_TimeBaseStructure.TIM_Period = 65535;
      TIM_OCInitStructure.TIM_Pulse = 10000;

    Takie zainicjowanie licznka i kanału w jaki sposob będzie skutkowało dla generowania przerwania porównywania?
    Wartość licznika =10000 wywoła przerwanie to kumam bo sprawa jest oczywista ale czy to znaczy że licznik w dalszym ciągu będzie liczył od 10001 do 65535 i dopiero kolejne osiągnięcie jego stanu = 10000 wywoła następne przerwanie ? Czy też fakt przekroczenia 65535 i przeniesienie wywoła kolejne wyzwolenie przerwania kompletnie niezależne od wartości 10000 ustawionej dla kanalu. Czy też mam to pojmować w tak że liczba 10000 dla kanału jest w istocie ilością przerwań wywołanych przeniesieniem (inicjowanie TIM_TimeBaseStructure.TIM_Period = 65535). Przyznam że pogubiłem się tutaj kompletnie.

    0