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

- STM32 ARM na polskich uczelniach

moonshadow3 02 Gru 2016 12:22 6186 164
  • #1 02 Gru 2016 12:22
    moonshadow3
    Poziom 9  

    Witam wszystkich,
    Mam pytanie ogólne do studentów bądź absolwentów politechnik dotyczące edukacji w zakresie mikrokontrolerów na uczelniach.
    Jestem zainteresowany studiami, ale dochodzą mnie sygnały, że na wielu wciąż jest wałkowany temat mikrokontrolera seri 8051, który jak wiemy ma już swoje lata i systematycznie wypierany jest m.in. przez architekturę ARM. Chciałbym otworzyć dyskusję na ten temat.

    a. Czy architektura ARM jest przedmiotem programu?

    if(a ==true)
    {
    /* Czy są ćwiczenia praktyczne z tego zakresu?
    Jakie procesory są przedmiotem ćwiczeń?
    Czy są wykorzystywane jakieś zestawy uruchomieniowe (jakie?)
    Czy laboratoria są wyposażone w stanowiska do tworzenia różnych aplikacji na procesorach ARM
    Jak są zorganizowane zajęcia? Ilość godzin w tygodniu.
    */

    0 29
  • Technik Elektryk - Faber CK
  • #2 02 Gru 2016 12:28
    2675900
    Użytkownik usunął konto  
  • #3 02 Gru 2016 12:38
    moonshadow3
    Poziom 9  

    Assembler wydaje się być obecnie trochę masochistycznym podejściem do programowania mikrokontrolerów. Niemniej jednak, zakładam że ma to służyć poznaniu architektury procesorów, bo docelowo raczej w tym bym nie chciał pisać. Kiedyś tak podchodzono właśnie do 8051 i często na tym poprzestawano. W razie konieczności zawsze można wstawić .asm w kod C...

    0
  • #4 02 Gru 2016 13:11
    krzysssztof
    Poziom 20  

    U mnie na wydziale uczy się assemblera 8051 na symulatorze, żywego układu studenci na oczy nie widzą ...

    0
  • Technik Elektryk - Faber CK
  • #5 02 Gru 2016 13:20
    2675900
    Użytkownik usunął konto  
  • #6 02 Gru 2016 13:50
    simon71
    Poziom 19  

    Rozmawiałem niedawno z siostrzeńcem i mówił, że na AGH ma zajęcia w oparciu o Kinetis KL46, więc może nie wszędzie króluje 8051.

    0
  • #7 02 Gru 2016 13:56
    Freddie Chopin
    Specjalista - Mikrokontrolery

    W sumie to niezbyt wiem o co chodzi - język C, który jest OK do nauki na uczelniach, jest 8 lat starszy niż 8051, które już jest prehistorią i nie jest OK do nauki na uczelniach. [;

    Uczelnia niczego nikogo nie nauczy - każdy się może nauczyć sam, a podstawy są identyczne dla 8051, AVR, ARM, MSP430 itd. Jak świetnie idzie nauka na ARMach na uczelniach to można tu na forum zobaczyć, ostatnio chyba gdzieś było zaliczenie, bo były ze 4 tematy w których się ludzie wprost pytali o pomoc z projektem na zaliczenie na ARMach i mówili bez żadnej "krępacji", że nic nie rozumieją (nawet treści zadania)...

    0
  • #8 02 Gru 2016 14:48
    grko
    Poziom 33  

    Na uczelni na której studiowałem były takie tematy z MCU:
    - Z80, 8051, M68k na przedmiocie z mikroprocesorów, na wykładach raczej teoretyczne rozważania, laborki z lat 80, końcowy projekt nawet fajny na Motoroli HC08
    - DSP na motorolach oraz na dsPIC
    - magisterka na ARM7

    Nie było tak źle biorąc pod uwagę to, że kończyłem studia parę lat temu. Z tego co wiem, to obecnie program jest nowszy i nie ma już Z80 i podobnych antyków. Na DSP również progress w postaci SHARC. Pozostałe przedmioty związane z MCU to raczej już ARM.

    0
  • #9 02 Gru 2016 15:09
    bartek 8118
    Poziom 17  

    Na SiMR PW kierunkach mechatronika i IPEiH uczymy się podstaw programowania STM. Robimy to na STM32F3 Discovery. Ale jest to bardzo powierzchniowo robione.

    0
  • #10 02 Gru 2016 16:27
    piotrva
    Moderator na urlopie...

    Rozwinę temat AGH:
    W ramach przedmiotu obowiązkowego jest (w kolejności jak podano)
    1. Assembler na AVR (większość zajęć)
    2. Kilka zajęć z C dla AVR - zasadniczo 1 i 2 to miganie diodą na 100 sposobów
    http://www.fpga.agh.edu.pl/tm/?Laboratoria:Instrukcje
    3. Semestr z KL46 (i masa nerwów, bo zestawy wciąż i ciągle mają jakieś wady, a to się procek zablokuje, a to spali)
    http://www.fpga.agh.edu.pl/tm2/?Laboratoria:Instrukcje
    Niestety po tych 2 semestrach ludzie nadal mają problem z podłączeniem klawiatury matrycowej, czy zwykłego HD44780, o ile sami się tego na nauczą.

    Potem w ramach przedmiotu dodatkowego (tzw. przedmioty obieralne):
    STM32F429 (na płytkach discovery + autorskie płyty rozszerzeń z interfejsem ETH, kart SD, wzmacniaczami audio, enkoderami etc.)
    Tu zajęcia są bardzo sensowne, oprócz suchej wiedzy jest sporo informacji o samym podejściu do programowania uC, wprowadzane są elementy korzystania z RTOS (FreeRTOS).

    Moim skromnym zdaniem problem leży w filozofii nauczania - zamiast iść od ogółu do szczegółu - studenci zaczynają od ASM, a brakuje im szerszego spojrzenia jak zrobić jakąś praktyczną aplikację. (oczywiście czasem taki a nie inny stan rzeczy wynika z braku zaangażowania studenta, albo zbyt dużej liczby studentów na zajęciach, gdzie prowadzący nie może poświecić każdemu dostatecznie dużo czasu, mimo szczerych chęci...)

    0
  • #11 02 Gru 2016 17:14
    michalko12
    Specjalista - Mikrokontrolery

    Jak ktoś chce to nauczy się i bez studiów. Rozpoczęcie nauczania o technice mikroprocesorowaej od ARMów to nie jest najlepsze rozwiązanie - brak łopatologicznej literatury. Im prostsza architektura tym lepiej. Teoretyzowanie, że nie ma znaczenia czy ARM czy 51, ma znaczenie tylko przy programowaniu w języku wysokiego poziomu. Najpierw trzeba zrozumieć dobrze hardware, a potem dopiero brać się za software, bo w przeciwnym wypadku szczyt to Arduino.

    0
  • #12 02 Gru 2016 17:39
    grko
    Poziom 33  

    @michalko12 Mam trochę inne zdanie na ten temat. Warto uderzać najpierw w software: algorytmy i struktury danych, współbieżność, systemy operacyjne oraz inżynieria oprogramowania. Przyzwoite firmy i tak zatrudniają ludzi od HW oraz SW. W razie czego idzie się do gościa od HW, który projektował i wspólnie się rozwiązuje problemy. Na oferty pracy gdzie szukają Programisty Firmware z umiejętnością projektowania PCB to szkoda nawet patrzeć i marnować czas. Bo ani w jednym ani w drugim nigdy nie będziesz naprawdę dobry.

    2
  • #13 02 Gru 2016 18:50
    piotrva
    Moderator na urlopie...

    michalko12 napisał:
    Jak ktoś chce to nauczy się i bez studiów.

    Tak. Tylko czasem programem studiów można kogoś zachęcić do samodzielnej nauki i promować ją, a czasem taki a nie inny program studiów/przedmiotu zniechęca ludzi na wejściu i stwarza wokół tematu otoczkę teorii nie do przebicia...

    0
  • #14 02 Gru 2016 19:14
    2675900
    Użytkownik usunął konto  
  • #15 02 Gru 2016 21:18
    moonshadow3
    Poziom 9  

    michalko12 napisał:
    Jak ktoś chce to nauczy się i bez studiów. Rozpoczęcie nauczania o technice mikroprocesorowaej od ARMów to nie jest najlepsze rozwiązanie - brak łopatologicznej literatury. Im prostsza architektura tym lepiej. Teoretyzowanie, że nie ma znaczenia czy ARM czy 51, ma znaczenie tylko przy programowaniu w języku wysokiego poziomu. Najpierw trzeba zrozumieć dobrze hardware, a potem dopiero brać się za software, bo w przeciwnym wypadku szczyt to Arduino.


    No nie jestem przekonany... Od czego należy zacząć od 8051? od AVR? A jaka to różnica...??? Co do łopatologicznego wyjaśniania to większość publikacji typu "... for dummies" kończy na miganiu diodą i to najlepiej w jakieś bibliotece, która czytelnikowi tylko tak naprawdę zaciemnia istotę rzeczy... czyli MCU, a i często sam autor nie do końca wie o czym pisze.... Zatem zgadzam się, że trzeba zrozumieć hardware więc należy przestudiować jakąś dobrą książkę od architektury np typu "The Definitive Guide To The ARM CORTEX M3" i czytać REFERENCE MANUAL do procka...
    Myślę, że można spokojnie zacząć od ARM. Różnica jednak w tym, że w przypadku wyboru 8051 wydłuży to czas do poznania tego na czym współczesny świat rzeczywiście taktuje. A zakuwanie szczegółów rejestrów i innych takich ze starych architektur jest już trochę bez sensu. Z drugiej strony są aplikacje gdzie cały czas stosuje się 8051 a nawet są modernizowane do ... nowszych 8051 :) i wymagają głębokiej znajomości w przypadku update'u. Zatem nie zawsze wszystko jest czarno-białe.

    1
  • #16 02 Gru 2016 22:22
    RitterX
    Poziom 36  

    Zdecydowanie ARM lub coś podobnego. Nie ma sensu uczyć na uczelni super dokładnie architektur i specyfiki układów poszczególnych producentów. Celem jest nauczenie możliwie uniwersalnych zasad poprawnego tworzenia oprogramowania np. wymogi MISRA C. Można się z nimi nie zgadzać ale trzeba rozumieć dlaczego?
    Dlatego jest sens uczyć jak zaimplementować np. transformatę falkową albo SVD w C albo C++ lub innym języku. Robienie tego w asemblerze to karkołomna sztuka dla sztuki.
    Ważna jest też umiejętność wyboru sprzętu pod określone zadanie gdyż nie ma się co tłuc z wstawkami asemblerowymi by nieco zaoszczędzić czasu i miejsca w zasobach skoro można wziąć nieco droższy za to znacznie zasobniejszy oraz wydajniejszy procesor i pozamiatać problem. Tak, nie do wszystkiego nadaje się np. STM32. Trafne określenie minimum potrzeb to konkretna umiejętność. Kolejna sprawa to umejętność wyboru systemu operacyjnego lub obejście się bez niego.
    Jest czego się uczyć poza studiowaniem konkretnej architektury.
    8051 nie tak łatwo skreślić, w niektórych zastosowaniach ale nie są to zastosowania powszechne dlatego na początek nie koniecznie jest on wskazany. Jeżeli ktoś chce i lubi programować w asemblerze by zrozumieć jak to wszystko działa w środku to krótka wprawka nie będzie stratą czasu ale krótka!

    0
  • #17 02 Gru 2016 22:33
    Freddie Chopin
    Specjalista - Mikrokontrolery

    RitterX napisał:
    Celem jest nauczenie możliwie uniwersalnych zasad poprawnego tworzenia oprogramowania np. wymogi MISRA C. Można się z nimi nie zgadzać ale trzeba rozumieć dlaczego?

    Bo jakaś banda "dziadków" sobie je wymyśliła, licząc na to, że nikt nie będzie kwestionował mądrości takich "expertów"?

    0
  • #18 03 Gru 2016 00:11
    piotrva
    Moderator na urlopie...

    RitterX napisał:
    Jeżeli ktoś chce i lubi programować w asemblerze by zrozumieć jak to wszystko działa w środku to krótka wprawka nie będzie stratą czasu ale krótka!

    Z tym, że moim zdaniem taka wprawka przydaje się (i to bardzo) ale już po C czy C++.
    Pracując w C czy C++ można poznać architekturę, czy ogólną filozofię tworzenia programów.
    Potem warto zajrzeć pod maskę i dopiero wtedy poznać jak to a to zrobić w ASM.

    0
  • #19 03 Gru 2016 11:35
    tronics
    Poziom 36  

    moonshadow3 napisał:
    Witam wszystkich,
    Mam pytanie ogólne do studentów bądź absolwentów politechnik dotyczące edukacji w zakresie mikrokontrolerów na uczelniach.
    */

    Gdy ja kończyłem nadal dominowały 8051 jako baza do nauki samych mikrokontrolerów. Co nie znaczy że było tylko to, były też nieco egzotyczne Renesasy H8, bardzo przyjemne do programowania w ASM. Były DSP Texas Instruments. ARM akurat co prawda nie było, ale to mniej ważne. Technika mikroprocesorowa to było mocne podejście do przetwarzania danych w MCU, interfejsów, peryferiów i... działania narzędzi do programowania. Rozumiem nieco czemu uważano za konieczne poznanie mechanizmu kompilacji, konsolidacji, linkowania etc. Z drugiej strony nie sądzę by było to bardzo przydatne do projektowania urządzeń IoT, tu po prostu trzeba znać inne rzeczy, a nie trzeba znać jak dokładnie działają narzędzia, tylko jak nimi się posługiwać.
    Biorąc pod uwagę, że uczelnie mają zazwyczaj bogate zestawy ewaluacyjne udostępniane "po kosztach" to dziw bierze jak rzadko uczelnie decydują się na krok w przyszłość (a w zasadzie teraźniejszość). No... ale kto nowe skrypty i podręczniki napisze, przecież nie profesorowie od lat poza obiegiem :)

    0
  • #20 03 Gru 2016 15:06
    moonshadow3
    Poziom 9  

    No i w zasadzie jest tak jak podejrzewałem... Na moich studiach też królował 8051 i właśnie myślałem o jakichś podyplomowych, które dadzą mi nowe światło na zmiany jakie zaszły w tym co obecnie jest używane, bo ostatnie lata nie miałem z tym zawodowo do czynienia. Jedynie co robiłem ostatnio to sam dużo czytałem o ARM, bawiłem się eclipse i rozkminiałem zestawy ewaluacyjne STM. Wszystko w okrojonym wolnym czasie. I dochodzę do przekonania, że sam więcej zrobiłem niż na niejednych studiach. Młodsi znajomi też twierdzą, że 8051 nadal jest wałkowany i to na symulatorach. Gdzie zatem jest ta nasza mityczna edukacja, która rzekomo jest na wysokim poziomie? Nic się nie zmieniło przez 15 lat ! I jak tutaj absolwenci mają wkraczać na rynek nowoczesnych technologii ze znajomością 8051?

    0
  • #21 03 Gru 2016 15:30
    piotrva
    Moderator na urlopie...

    @moonshadow3, dokładnie mam podobne odczucia - więcej byłem w stanie zrobić w czasie wolnym od zajęć (wakacje, ferie zimowe) niż w przeciągu kilku semestrów, gdzie musiałem robić pełno bezsensownych rzeczy sztuka dla sztuki (a to sprawozdanie na N stron z opracowanymi na milion sposobów wynikami pomiarów wzmacniacza na tranzystorze NPN i tak dalej.)

    0
  • #22 03 Gru 2016 15:44
    2675900
    Użytkownik usunął konto  
  • #23 03 Gru 2016 16:06
    moonshadow3
    Poziom 9  

    8051 - R.I.P.
    Gadanie, że nie ma pieniędzy można między bajki włożyć, bo wyposażenie jednego laboratorium w zestawy ewaluacyjne to koszt maksimum 5 tys. zł. Reszta zależy już od chęci poświęcenia czasu na przygotowanie zajęć i pasji do tego. Nic więcej.

    0
  • #24 03 Gru 2016 16:07
    grko
    Poziom 33  

    @moonshadow3 Przyznaję, że laboratoria mogłyby być prowadzone na nowszym sprzęcie. Czy naprawdę uważasz, że jakość studiów jest uzależniona od procesorów na których prowadzone są laborki? Bo mnie się wydaje, że studia powinny uczyć koncepcji i teorii, które pozwalają takiemu inżynierowi wdrożyć się w każdy temat relatywnie szybko. Jak chcesz się nauczyć szczegółów typu: programowanie STM32 to idź sobie na kurs.

    0
  • #25 03 Gru 2016 16:11
    piotrva
    Moderator na urlopie...

    grko napisał:
    Czy naprawdę uważasz, że jakość studiów jest uzależniona od procesorów na których prowadzone są laborki?

    Moim zdaniem nie, ale to jakiś wierzchołek góry lodowej. Prowadzącej do wniosku, że sporo wiedzy pamięta się tylko do egzaminu/zaliczenia.

    0
  • #26 03 Gru 2016 16:18
    Freddie Chopin
    Specjalista - Mikrokontrolery

    No właśnie - studia to studia, a nie kurs. Wg waszego podejścia nauka STM32 też jest bezcelowa, bo za 5 czy 10 lat te STM32 będą tak samo przestarzałe (chyba nikt nie liczy na to, że STM32 będą "na topie" przez całą jego karierę zawodową?). Gdyby u kogoś na studiach 10 lat temu wałkowali ARM7TDMI, który obecnie jest "dead", ale wtedy był całkiem OK, to niby co?

    Jak grko powyżej, uważam że na studiach powinny być podstawy które pozwolą się wdrożyć tym którzy są tematem zainteresowani. Bo przecież studia (czy to elektronika, czy informatyka, czy coś jeszcze innego), to nie będzie nigdy 5 lat programowania mikrokontrolerów. Mozę faktycznie używanie 8051 jest ograniczające, ale z drugiej strony - jakie to ma znaczenie na czym ktoś pozna podstawy? Czy na 8051 znacząco inaczej miga się diodą, obsługuje UART albo SPI niż na takim STM32? Na owym STM32 pewnie można zrobić więcej niż na 8051, ale czego dokładnie oczekujecie? Że na pierwszych zajęciach na pierwszym roku prowadzący zacznie od "dziś postawimy serwer FTP z kartą SD"?

    Najeżdżanie na kadrę uważam za co najmniej częściowo nieuzasadnione. Świat technologii zmienia się tak szybko, że uczelnia nigdy nie nauczy tego co będzie "na topie" jak absolwent skończy studia. Jest to po prostu fizycznie niemożliwe, choćby dlatego, że świat elektroniki jest tak szeroki, że nie da się przedstawić wszystkiego - jedni wolą małe i proste 8-bitowce, inni FPGA, jeszcze inni 32-bitowe ARMy, będzie grupka ludzi którzy wybiorą procesory aplikacyjne, potem miłośnicy procesorów sygnałowych, ... . Tymczasem "teoria oprogramowania", budowa mikrokontrolerów czy interfejsy komunikacyjne zasadniczo nie zmieniły się od wielu lat.

    2
  • #27 03 Gru 2016 16:20
    moonshadow3
    Poziom 9  

    grko napisał:
    @moonshadow3 Czy naprawdę uważasz, że jakość studiów jest uzależniona od procesorów na których prowadzone są laborki?


    Nie, wcale tak nie uważam. Uważam tylko, że klepanie starych technologii jest bez sensu. Nawet rzeczony 8051 daje dobre podstawy do kontynuacji nawet we własnym zakresie. No ale moi drodzy, czy uczenie przedmiotu bez żadnych modyfikacji przez 20 lat, publikacja jednego skryptu do tego to szczyt tego co można zaoferować studentom ? Nie chodzi o chciejstwo, bo akurat komuś bardziej podoba się STM niż inny procesor. Ale jaka jest jakość edukacji na symulatorach '51?

    0
  • #28 03 Gru 2016 16:23
    2675900
    Użytkownik usunął konto  
  • #29 03 Gru 2016 16:32
    moonshadow3
    Poziom 9  

    Freddie Chopin napisał:
    No właśnie - studia to studia, a nie kurs. Wg waszego podejścia nauka STM32 też jest bezcelowa, bo za 5 czy 10 lat te STM32 będą tak samo przestarzałe (chyba nikt nie liczy na to, że STM32 będą "na topie" przez całą jego karierę zawodową?). Gdyby u kogoś na studiach 10 lat temu wałkowali ARM7TDMI, który obecnie jest "dead", ale wtedy był całkiem OK, to niby co?
    .


    Akurat ARM7TDMI może jest już przestarzały, ale nie aż tak jak '51 no i przecież on był ogromnym sukcesem ARM'a i w zasadzie od tego zaczeło się to co dzieje się teraz. 10 lat temu to byłoby całkiem nie najgorzej na ten procesor. Ale Freddie, jeśli po 15 latach idę na studia podyplomowe licząc że się czegoś nauczę a tu deja vu to chyba coś jednak nie do końca jest dobrze. Nie najeżdzając na kadrę akademicką zakładam, że mają masę innych ważniejszych zajęć popychających polską naukę do przodu.

    0
  • #30 03 Gru 2016 21:38
    tzok
    Moderator Samochody

    Na UŚ na informatyce na WIiNoM w programie nie ma nic o ARM, ale jak chcesz robić pracę/projekt to nikt Ci nie zabroni. W programie jest architektura 8080, 8086 i 8051. Assemblera uczy się głównie 8051, dlatego że jest bardzo prosty (a i tak mało kto coś z tego rozumie), później jest trochę assemblera dla 8086. Tu bardziej chodzi o pokazanie idei, niż nauczenie czegoś praktycznego. Choć po prawdzie i z tym jest słabo, bo niby są podstawy elektroniki cyfrowej, architektura komputerów i mikrokomputery jednoukładowe, a jednak nie "klei" się to w całość, zupełnie brak przejścia między układami cyfrowymi, a kodem maszynowym do asemblera. PTC niby kończy się na automatach sekwencyjnych, ale nie ma rejestrów, nie ma JAL (co najwyżej sumator), nie ma pamięci, zaś następne w kolejności AK to architektura wewnętrzna 8051/80/86 i assembler ale w ogóle nie mówi się o kodzie maszynowym. Są też AVRy, ale wyłącznie w C++, a konkretnie ATMega328/Arduino UNO.

    0