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 [C] Eclipse - Kurs dla początkujących bez SPL Czy potrzebny ?

03 Lis 2013 17:07 11880 37
  • Poziom 20  
    Hey

    Nie jestem specjalistą w tym temacie wiele rzeczy jest dla mnie jeszcze zagadką ale doświadczenia już troszkę złapałem i natchnęło mnie na zrobienie kursu. Takie podstawy które pozwalają początkującym znaleźć się w tym uC. Myślę zrobić to jako Videokurs i tutaj mam pytanko w domu mam 2 płytki discovery F0 i F4 która jest lepsza dla takiego kursu. Myślę o F0 gdyż jest to procesor dość prosty i był czas gdzie te płytki były rozdawane za darmo. Środowisko w którym myślę to zrobić to Eclipse. Wiem że zaraz znajdą się głosy że inne są lepsze ale te akurat już trochę znam i jest dość przyjemne. Jak myślicie przyda się kurs w tej konfiguracji ?? I czy znalazłby się ktoś kto mógłby trochę pomóc z obróbką audio-wideo ??
  • PCBway
  • Poziom 38  
    Jeśli juz to F4 ze względu na fakt ze M4 jeśli bliższe M3 a te rdzenie są popularniejsze. O eclipsie kursów ci co nie miara, nawet tu na forum.
    Więc w przypadku reszty wideo raczej traci sens.

    Kolega Freddie Chopin udostępnił przykłady, bez SPLa dla większości rodzajów stm32 i NXP, które są doskonałymi szablonami na start.

    Więc reszta kursu ograniczy się do kilku przykładów typu, jak skonfigurować timer czy inne peryferium.
  • Poziom 9  
    Ale jeśli się zdecydujesz ja mogę Ci pomóc przy obróbce audio-wideo.
  • Poziom 20  
    To czemu tutaj tyle ludzi marudzi że jak zaczynać to tylko AVRy bo do STM niema kursów.
  • PCBway
  • Poziom 22  
    Ciągle tylko kursy dla początkujących i początkujących , a kiedy będzie kurs dla bardziej zaawansowanych?
    Zawsze się kończy tylko na miganiu diodą ;-)
  • Poziom 20  
    Tak naprawdę jak dla mnie jedyna trudność jaką miałem to ogarnięcie środowiska i plików początkowych (startup ,linker, makefile, tablica vektrów) i nadal lekkie problemy mi one czasami nastręczają. No i wiadomo zrozumienie organizacji mikrokontrolera. Jak to się już zrozumie to obsługa konkretnego peryferia to żadem problem większość peryferii (timery uart, spi, adc, dac, i2c) to łatwizna (no czasami trafi się jakiś chochlik że potrzeba jest pomoc) Trochę gorzej jest jedynie z takimi standardami jak Ethernet czy USB czy też zabawa z grafiką lub RTOSami.
  • Poziom 38  
    Jado_one napisał:
    Ciągle tylko kursy dla początkujących i początkujących , a kiedy będzie kurs dla bardziej zaawansowanych?
    Zawsze się kończy tylko na miganiu diodą ;-)


    Jeśli masz na myśli np USB czy ETHERNET to tu potrzeba czegoś więcej niż wiedzy o kompilatorze dla ARM czy samej jego budowie. I to nie małej wiedzy.
  • Poziom 9  
    Moim zdaniem do F0 jest materiałów sporo i chyba właśnie z racji tego, że je rozdawali za darmo. Myślę, że wiele osób chętnie skorzysta z kursu na F4. Jak pisałem wyżej oferuję się ogarnąć tematy AV.
  • Poziom 38  
    SeerKaza napisał:
    Tak naprawdę jak dla mnie jedyna trudność jaką miałem to ogarnięcie środowiska i plików początkowych (startup ,linker, makefile, tablica vektrów) i nadal lekkie problemy mi one czasami nastręczają. No i wiadomo zrozumienie organizacji mikrokontrolera. Jak to się już zrozumie to obsługa konkretnego peryferia to żadem problem większość peryferii (timery uart, spi, adc, dac, i2c) to łatwizna (no czasami trafi się jakiś chochlik że potrzeba jest pomoc) Trochę gorzej jest jedynie z takimi standardami jak Ethernet czy USB czy też zabawa z grafiką lub RTOSami.


    Jw. STARTUP, LINKER WEKTORY? To z rzadka się w ogóle rusza.

    Ethernet USB RTOS to kwestie nie dotyczą jedynie cortexa.
  • Poziom 22  
    tadzik85 napisał:
    Jado_one napisał:
    Ciągle tylko kursy dla początkujących i początkujących , a kiedy będzie kurs dla bardziej zaawansowanych?
    Zawsze się kończy tylko na miganiu diodą ;-)


    Jeśli masz na myśli np USB czy ETHERNET to tu potrzeba czegoś więcej niż wiedzy o kompilatorze dla ARM czy samej jego budowie. I to nie małej wiedzy.

    No - w tym wypadku zakładamy oczywiście (tak ładnie zawsze piszą na początku książek, we wstępie), że czytający posiada wszelkie potrzebne podstawy i jest w stanie zmierzyć się z problemem.
    Bo czyż nie kręcimy się trochę w kółko pisząc tylko o podstawach i podstawach...
    Ileż to było książek w których lwią część książki zajmowało przepisanie datasheetu.
    I tak z każdym procesorem od nowa :-)
    Chyba po prostu bardziej opłaca się pisać artykuły i książki dla początkujących - większa rzesza potencjalnych klientów.

    No, ale to tylko taka mała dygresja przy okazji tematu.....
  • Poziom 38  
    Jado_one napisał:

    ...
    Chyba po prostu bardziej opłaca się pisać artykuły i książki dla początkujących - większa rzesza potencjalnych klientów.
    ...


    Bo jak ktoś już nabierze odpowiedni poziom wiedzy i doświadczenia, potrafi wykorzystać zasoby internetu czy dokumentacji dostarczonej w raz z uC czy biblioteką.

    A jeśli ktoś jako 1 cel obiera sobie uruchomienie USb ethernetu na jakimś uC którego w ogóle nie zna cóż, rzuca się z motyką na słońce.
  • Poziom 20  
    Datasheet i reference manual twoim najlepszym przyjacielem. Jak patrze na te STMu to tam krok po korku ciągną za rączkę jak coś uruchomić.
  • Specjalista - Mikrokontrolery
    Nic nie powstanie, na chęciach się skończy, pusty temat. Żeby coś konkretnego napisać trzeba więcej napisać niż jest w dostępnych materiałach, a jest teraz tego w sumie z kilka tys. stron. Napisanie czegokolwiek dotyczącego odnośnie jakiegoś peryferiala niesie za sobą potrzebę opisania tego do czego ten peryferial służy, np. weźmy taki peryferial do obsługi kart SD. Żeby przekazać jak go używać trzeba również przekazać od groma wiedzy o samym standardzie SD, w przeciwnym razie będzie to przedruk datasheeta, a to jest bez sensu. Jedyna korzyść jest taka, że będzie po polsku o ile da się wszystko przetłumaczyć z sensem. Posiadanie przetłumaczonego DS i tak w niczym nie pomoże bo reszta materiałów będzie już w języku ang. więc jak ktoś nie zna ang. i tak sobie nie poradzi. Kolejnym problemem będzie zerowy feedback. Jak ktoś jest sprytny to i tak sobie poradzi z pisaniem programów z pominięciem SPLa, inni niech go sobie używają. Producent dał SPLa dla tych co mają problemy z ogarnięciem operowania na rejestrach peryferiali i przykrył sporą część niuansów związanych z niskopoziomową obsługą bardziej skomplikowanych interfajsów ETH, USB itp.
    Dla tych co chcą pokozaczyć w opisywaniu peryferiali po polsku proponuję spróbować opisać timer SCT z najmniejszego CM0+ czyli LPC800, wtedy odechce mu się zabierania za poważniejsze peryferiale. Ktoś tutaj wspomniał o zaawansowanych kursach, nie ma takich i nie będzie. Osoby, które mają wiedzę żeby taki kurs napisać, nie mają na to czasu i wolą tą wiedze przekazać w komercyjny sposób bo niby dlaczego mieli by to robić za darmo.
  • Poziom 27  
    Też uważam, że to mija się z celem z prostego powodu - żeby zrobić coś naprawdę atrkacyjnego wykraczającego poza to co jest łatwo dostępne w internecie, to potrzeba naprawdę niesamowicie dużo czasu i wydaje mi się, że nikt o zdrowych zmysłach, kto posiada już taką wiedzę nie będzie czasu tracić na pisane tego , bo to sie nijak nie kalkuluje. A pisać coś co już jest z eng na polski to imho bezsens, bo nie da się pracować w tej branży bez znajomości angielskiego a datasheety i dostepne materialy nie są pisane jakimś kosmicznie trudnym angielskim.
  • Poziom 22  
    Ech zaraz tam w kilkutysięczne szczegóły się wdawać.
    To wszystko delikwent sobie znajdzie w datasheetach i internecie - jak już przebrnął przez podstawy obsługi procesora, peryferiów, kompilatorów, języka C, itd...
    Zarys tematu, kluczowe elementy którymi powinien się zainteresować, bardziej algorytmiczne omówienie problemu niż szczegółowe, itp...
    Jakieś niuanse, jakieś tips&tricks, dlaczego lubię używać kompilatora czy algorytmu X zamiast Y, itp..
    Jakbym miał coś takiego do poczytania - to czemu nie?
    Czemu nie może być taki tutorial? :-) (czy też może artykuł, newsletter, blog, whatever).
    Jak już ktoś chce pisać....
    A tak co jeden to indywidualista - do wszystkiego musiał sam dochodzić.
    Nic dziwnego, że potem nie chce się dzielić swoją ciężko zdobytą wiedzą z innymi ;-)
  • Poziom 12  
    Według mnie super pomysł, zrób na youtube z "lektorem" i będzie ekstra! Wg mnie dobrze by było przejść przez środowisko np. eclipse, na szybko wytłumaczyć co to toolchain, gdb, openocd i jak konfigurować (przesiadając się z avrow to wszystko nowe). Później tworzenie projektów wg mnie dla SPL! - startup, tablica wektorów pliki linkera i inne tajemnicze śmierdzielstwa. Przelatywać po peryferiach wg mnie nie trzeba, bo jest miliard pińcet tutoriali i łatwiej się w ten sposób uczyć niż avrów. Teraz wg mnie spoko by było wskoczyć na m4 i pokazać np. konfiguracje fpu i zaprezentować różnice w performansie. Później fajnie by było jakbyś zaczął po kolei pisać biblioteki do każdego z peryferiów - już na rejestrach. A na koniec przesiadka na NXP i wszystko od nowa tylko szybciej :)
    Za coś takiego zapłacił bym duży hajsik ;)
    Serdeczne pozdrowienia!
  • Specjalista - Mikrokontrolery
    cwieek napisał:
    Później fajnie by było jakbyś zaczął po kolei pisać biblioteki do każdego z peryferiów - już na rejestrach.

    A SPL to na czym jest napisany, na stole czy może na płatkach śniadaniowych?
    cwieek napisał:
    Teraz wg mnie spoko by było wskoczyć na m4 i pokazać np. konfiguracje fpu i zaprezentować różnice w performansie.

    Masz na youtube.
    cwieek napisał:
    Według mnie super pomysł, zrób na youtube z "lektorem" i będzie ekstra!
    cwieek napisał:
    Za coś takiego zapłacił bym duży hajsik :wink:

    Jakby było na youtube to byś nic nie zapłacił.
  • Poziom 22  
    Dla mnie takie tematy jak ten (choć pisane z myślą o tych co zaczynają) to czarna magia. Wystarczy, że używacie skrótów które są dla mnie nowe i już nic nie wiem. Od kilku tygodni posiadając F4 i LPC812 staram sie liznąć C. Posiadam nawet dwie książki (dla AVR ale coś tam mają wspólnego). Potrafię migać diodą na każdej z płytek ale nie rozwinę się dalej jeżeli nie będę potrafił wyświetlić tego co robię by zrozumieć jak to działa. Środowiska do programowania są opisane marnie i dla kogoś nowego to totalny mętlik. Wszędzie pochylam łeb nisko zadając pytania ale jedyne co można to i tak dostać po głowie słysząc "wszystko jest na forum opisane". I szukaj sobie, błagam na forum nie ma tylko 20 tematów. Próbowałem wystartować z mikroC ale tam sam C jest inny niż reszta więc uczenie się go jest bez sensu. Wystartowałem z coocoxem i na zainstalowaniu się skończyło. Czytając sam doszedłem do wniosku, że eclipse jest najbardziej przyszłościowe. Tutorial wideo lub fotki ekran po ekranie z przemyślanym opisem i jeden czy dwa schematy z podłączeniem choćby ekranu 2x16 ułatwiłyby sprawę wielu osobom. A nawet jakaś biblioteka by połączyć się bezboleśnie z terminalem na PC.
  • Poziom 22  
    Te (step by step, click by click) tutoriale mają jedną wadę - bardzo krótko są aktualne, bo programy są żywe i wciąż uaktualniane.
    Musiałby by być robione regularne uaktualnienia - w przypadku zmian w programach, które opisują.
  • Poziom 22  
    To prawda ale do tutoriala można spakowac "aktulane" wersje, zamieścić gdzieś na chomiku i podać link. Łatwiej jest zacząć widząc to samo na własne oczy co w tutorialu a później z czasem przeskoczyć na najnowszą wersję.
  • Specjalista - Mikrokontrolery
    rekinisko napisał:
    Dla mnie takie tematy jak ten (choć pisane z myślą o tych co zaczynają) to czarna magia

    Widzisz, problem jest taki, że to Ty powinieneś pisać taki tutorial / kurs. Osoby które już coś wiedzą nie znają tego bólu, dla nich w pewnym momencie coś co wcześniej było czarną magią stało się oczywistą oczywistością i temat już dla nich nie istnieje. Ty wiesz czego Ci potrzeba, chcesz się tego dowiedzieć to musisz dość precyzyjnie określić się na czym się zatrzymałeś i po każdym kroku do przodu udokumentować to np. w postaci jakiegoś bloga.
    Inną kwestią jest dobranie sprzętu do nauki, CM4 na pewno nie jest do tego odpowiedni chociażby ze względu na złożoność peryferiali. Dokumentacje pisane są dla osób które już coś wiedzą w tym temacie i wiele niuansów musisz sam sobie dopowiedzieć i wyjaśnić, bez praktyki nie uda Ci się to. Masz LPC812 i jest już trochę łatwiej, ale całkiem łatwo nie jest.
    Jest pewna strona (link) na której autorzy czekają na informacje odnośnie problemów na jakie początkujący się natykają, to od Waszej aktywności zależy jakie informacje tam pojawią się.
  • Poziom 22  
    Chodziło mi o to , że to opis tutoriala się zdeaktualizuje, bo zamiast kliknąć tu i tu, trzeba będzie zrobić to już inaczej. Autor tutoriala, będzie go musiał co jakiś czas aktualizować (no chyba, że wypuści jedną wersję, a resztę oleje).
    Bo potem widać pytania typu: "Freddie, robię wszystko według Twojego tutoriala, ale nie działa".
    No i Freddie musi tłumaczyć, że się zmieniło i teraz to się robi tak i tak ;-)
    Trzeba by zatem podawać na początku tutoriala jakie wersje programów on opisuje.
  • Poziom 20  
    Opuściłem się trochę we własnym temacie jakoś tak wyszło że nie zauważyłem nowych postów. Co do platformy myślę jednak zacząć od F0 czemu ??. Prostota peryferii jak ktoś wcześniej napisał. Mniej jest rejestrów i ustawień trudniej o czymś zapomnieć. A potem przesiadka z F0 na F3 czy F4 to tak naprawdę chwila, Co do samego kursu. Nie chce robić typu step by step. Sam nie dawno wchodziłem w te uC i trochę pamiętam co mnie najbardziej bolało. Chce pokazać bardziej tok rozumowania którego musiałem się nauczyć przy wsiadaniu na STMy32. Przy AVRach o wielu rzeczach nie trzeba myśleć i pamiętać. Nie, trzeba przygotować zegara ani portów I/O dla każdego peryferia. A cały projekt w STMach to nie 2 pliki jak w AVRach (main i makefile) ale coś więcej. Co do step by step to one są właśnie w datasheetach. Przecież tam jest opisane który rejestr co wpisać by działało tak i tak wszystko okraszone wykresami i tabelami.
  • Specjalista - Mikrokontrolery
    Racja, cały projekt w STM - to aż trzy pliki - startup, main i header, plus makefile, o którego istnieniu użytkownik środowiska nie musi nawet wiedzieć. :) W AVR zresztą też jest startup, tylko środowisko go ukrywa.

    Nie przesadzajmy, główna różnica techniczna pomiędzy AVR i Cortex polega na tym, że na Cortexach trzeba przed użyciem włączyć peryferial. Znacznie większa jest różnica psychologiczna. Jak powszechnie wiadomo, Cortexy są bardzo trudne w użyciu, bo są 32-bitowe, a AVRy łatwe, bo 8-bitowe. Cortexy są też bardzo drogie - taki podobny do ATmega8 kosztuje ponad 3 złote, a taki z 64 KiB pamięci - aż 6 zł, podczas gdy podobne AVR zaledwie jakieś 5 i 10 zł.
    Cortexy są też bardzo trudne w lutowaniu - żeby przylutować układ w LQFP potrzeba najpierw złapać dwa punkty, a potem przejechać 4 razy grotem wzdłuż nóżek, tymczasem do przylutowania ATmega8 wystarczy zalać cyną 28 nóżek, po uprzednim trafieniu nimi w otwory. Potem kwestia programowania - do AVR kupujemy tani programator za 15..50 zł, a Cortexa zwykle programuje się przez RS232 albo USB lub używa programatora dostarczanego za darmo przez producenta jako część płytki demonstracyjnej. Najgorsze, że używając tego programatora można jeszcze uruchamiać oprogramowanie na docelowej płytce instrukcja po instrukcji, oglądając wartości zmiennych i rejestrów.
    ;)
  • Poziom 26  
    Natomiast fochy OpenOCD bywają upierdliwe, w ogóle nie ma darmowej pełnej obsługi SWD (ok, to problem głównie przy M0 i rzadko który z nich ma >32k pamięci, ale jednak). Ponadto jest duży wybór narzędzi i środowisk, można się w tym zwyczajnie pogubić, zwłaszcza gdy ktoś zaczyna. Na mnie to wrażenia nie robi, ale zwyczajnie mam świadomość, że na kimś może.
    Póki co jadę na Eclipse+template Freddiego+GNU ARM Plugin (jak ktoś chce to mogę swój szablon wrzucić), a z niecierpliwością czekam aż EmBlocks będzie mieć lepszy edytor.

    Ogólnie - nie jest bardzo trudno, ale diabeł tkwi czasem w szczegółach...
  • Poziom 34  
    O tyle to nie ma sensu, że programowanie mikroprocesorów nie opiera się na odpalaniu różnych rzeczy.

    Przydaje się natomiast biblioteczka konfiguracyjna. Mamy coś takiego na potrzeby wewnętrzne tzn wszystkie przykłady działające i opisane w jednym miejscu. Takie coś mógłbyś napisać.

    Nie chce też zaczynać burzy ale nie uważam biblioteki konfiguracyjnej za coś mega kiepskiego. Konfiguracje spokojnie można na niej przeprowadzać a późniejsze działania jeśli potrzeba mega wydajności to wtedy operować już na rejestrach.

    ARMy są mało popularne właśnie dlatego, że nie ma jednej spójnej biblioteki. A z kolei AVR za sprawą odmóżdżonego arduino są popularne.
  • Poziom 12  
    Szukając rozwiązania samemu uczysz się 10 razy więcej niż jak obejrzysz kurs gdzie wszystko jest podane na "tacy" , jak zaczynałem (w sumie nadal mało umiem :D )z arm przeczytałem dużo poradników i nic to w sumie nie dało , mając jakiś problem szukałem rozwiązania w internecie , po pewnym czasie jednak wziąłem do ręki RM i PM , no i problemy znikły :D , chcesz to pisz poradnik może czegoś się nauczę , pamiętaj że nikt cennej wiedzy nie sprzedaje za darmo :D
  • Poziom 27  
    Może np. przydałoby się zebrać w jednym miejscu przykłady podstawowych konfiguracji peryferiów bez SPL, z opisem rejestrów/bitów do czego służą itp. Przykłady krótkie - samych konfiguracji konkretnego peryferium w najbardziej popularnych ustawieniach. Od takich ustawień, działających, łatwiej byłoby już konfigurować swoją wersję. Dla początkujących byłoby super.
  • Poziom 34  
    Myślę, że każdy kurs jest potrzebny. Pewien człowiek zaczął taki pisać na forbot.pl. Ciekawie wyjaśnił zegary w STM32. Nigdzie indziej nie spotkałem takiego podejścia. Czekam na kolejny odcinek. Mam nadzieję, że ciąg dalszy nastąpi.