eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › AVR po latach
Ilość wypowiedzi w tym wątku: 106

  • 21. Data: 2021-11-15 20:22:11
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 15/11/2021 19:57, Grzegorz Niemirowski wrote:
    >> Jest śladowo prawdopodobne, abyś dał radę znaleźć nowy bug w AVR.
    >> Miliony programistów Arduino raczej by go znalazły.
    > Oczywiście nie mówię o bugach w AVR. Chodzi o to, że urządzenie nie
    > składa się z samego MCU. Masz też różne inne układy, które mogą się
    > zachowywać inaczej niż myślałeś lub mieć błędy. Przykładowo UART w
    > Raspberry Pi wysyłał na początku transmisji dodatkową szpilkę, która
    > mogła być traktowana jako bit startu. Nie było to nigdzie opisane.
    > Pracując w embedded takie i inne kwiatki spotyka się cały czas.

    Zgadza się. Dlatego psu na budę debugger softwareowy w roli debuger
    hardwareowego. To najzwyczajneij zupełnie inne zagadnienie.

    >> Debuggery hardwareowe to ostatecznośc. Jesli podczas pisania kodu
    >> musisz ich używać, to masz kiepsko napisany kod.
    > To jest akademicka teoria. Powiedz twórcom GDB, że zmarnowali swój czas

    Obserwacja z pola bitwy: prawidłowe pisanie kodu minimalizuje potrzebę
    używania debuggera. Do zera? Nie. Blisko zera? Tak. Mówiąc "pisanie
    kodu" mam na myśli testowanie go a dopiero potem pisanie. Zwyczajowo
    waga unit testów znaczaco przekracza wagę kodu produkcyjnego.

    Obserwacja z innego pola: debuggery softwareowe nie nadają się do
    *rzeczywistych* systemów hardwareowych gdzie istnieją zalezności
    czasowe. Do tego bezpieczniej jest stosować symulatory logiczne z
    emulacją cpu i peryferiów. Tylko wtedy nie wiadomo czy bug jest u mnie
    czy w emulacji. I takie symulatory za darmo się nie rozdają.

    Ja ten problem rozwiązywałem kiedyś kradnąć rdzeń AVR z projektu MAME i
    dorabiając ręcznie napisany emulator pewnego peryferium, dzięki czemu
    udało się namierzyć buga, ale to jednorazowy wyskok, raczej desperacja.

    > :) Debuger jest normalnym narzędziem i sięganie po niego nie musi wcale
    > źle świadczyć o programiście. Jego brak jest ograniczeniem środowiska.

    Nie o tym mowa.

    W środowisku softwareowym, debugger to normalne narzędzie z łatwo
    (zazwyczaj) powtarzalnymi przypadkami.

    W środowisku hardwareowym jest to narzędzie skrajnie trudne do użycia.
    Wyobraź sobie debugowanie przez JTAG procesora, który ma wysyłać co
    milisekundę heartbeat do watchdoga zewnątrznego. Zatrzymujesz go na
    breakpoincie i jesteś umarty.

    Albo symulujesz całość *systemu* hardwareowego i tam debugujesz w
    komfortowych warunkach, albo masz na głowie niezliczone ilosci problemów
    z faktem że czas mimo zatrzymania programu pędzi dalej, przerwania się
    nie obsługują, bufory się przepełniają, ciekłe kryształy się elektrolizują.

    gdb to nie jest narzędzie do debugowania w hardware, poza śmiesznie
    prostymi przypadkami debugowania kodu wysokopoziomowego. Co akurat robi
    się prawie zawsze na maszynei dev, a nie w hardware.

    >> Nie bez powodu. Dzięki temu, że ma gotowe bibliteki, taki debug jest
    >> mało potrzebny.
    > Piszesz o nich jak o bibliotekach libc. Tymczasem mają one nieraz błędy
    > i słabą dokumentację.

    Zupełnie jak wiele kawałków hardware, używanych codziennie. Ogólnie
    świat hardware to nic specjalnie pewnego. Więc niejako karę za hobby
    embedded niech będzie czujnośc, że wszędzie czają się bugi, a te
    hardwareowe są najweselsze.

    >> Ale nie jestem przekonany, czy środowiska do embedded są znakomite.
    >> Jak na razie po kontakcie z kilkoma na przestrzeni 20 lat, uciekam na
    >> same słowa "embedded IDE".
    > No właśnie :) Tym bardziej Arduino IDE :)

    Od Arduino jak najdalej. Nie miej wrażenia, że jesli zapytałem o
    religijnośc poglądów na Arduion, to jestem fanem. To Qpa. Ale pozwole
    sobie na jeden komplement: mimo wymachiwania pięściami przez 60latków z
    embedded, wprowadził tylnymi drzwiami C++ do świata uC. Podziękowania
    się należą, nowe pokolenie programistów embedded będzie dzieki temu
    bardziej ateistyczne.


  • 22. Data: 2021-11-16 09:03:59
    Temat: Re: AVR po latach
    Od: Atlantis <m...@w...pl>

    On 15.11.2021 17:46, heby wrote:

    > Pod spodem jest ten sam kompilator gcc, używany w projektach komercyjnych.

    Co więcej, Arduino zrobiło jedną, bardzo ważną rzecz - wprowadziło na
    większą skalę obiektowość do świata mikrokontrolerów. Właściwie
    wszystkie biblioteki dla tego ekosystemu są pisane jako klasy C++, ze
    wszystkimi zaletami wynikającymi z dziedziczenia. Na przykład biblioteki
    graficzne są definiowane jako warstwa abstrakcji, z interfejsem do
    operacji I/O w formie metod czysto wirtualnych. Te metody potem
    implementuje autor sterownika wyświetlacza, który dziedziczy po
    bibliotece graficznej.
    I nie żebym miał cokolwiek przeciwko tradycyjnemu C - sam piszę kod do
    większości swoich projektów w ten sposób. Jednak mamy XXI wiek, w MCU
    nie trzeba już liczyć bajtów i cykli, a dzieciakom dzisiaj zaczynającym
    zabawę z programowaniem w przyszłości prędzej przyda się umiejętność
    sprawnego pisania obiektowego kodu.


  • 23. Data: 2021-11-16 11:26:18
    Temat: Re: AVR po latach
    Od: "Grzegorz Niemirowski" <g...@g...net>

    heby <h...@p...onet.pl> napisał(a):
    > Zgadza się. Dlatego psu na budę debugger softwareowy w roli debuger
    > hardwareowego. To najzwyczajneij zupełnie inne zagadnienie.

    Zgadza się. Ja tylko piszę, że debugger jest przydatny i wolę środowisko,
    które go ma od środowiska, którego go nie ma. Czy się pisze na AVR czy jakiś
    Threadripper od czasu do czasu trzeba sprawdzić jaki jest stan zmiennych,
    rejestrów czy też je zmodyfikować. Z wielu różnych powodów, nie dlategto, że
    ktoś użył za mało abstrakcji.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 24. Data: 2021-11-16 11:51:53
    Temat: Re: AVR po latach
    Od: "Grzegorz Niemirowski" <g...@g...net>

    Atlantis <m...@w...pl> napisał(a):
    > Co więcej, Arduino zrobiło jedną, bardzo ważną rzecz - wprowadziło na
    > większą skalę obiektowość do świata mikrokontrolerów. Właściwie wszystkie
    > biblioteki dla tego ekosystemu są pisane jako klasy C++, ze wszystkimi
    > zaletami wynikającymi z dziedziczenia. Na przykład biblioteki graficzne są
    > definiowane jako warstwa abstrakcji, z interfejsem do operacji I/O w
    > formie metod czysto wirtualnych. Te metody potem implementuje autor
    > sterownika wyświetlacza, który dziedziczy po bibliotece graficznej.
    > I nie żebym miał cokolwiek przeciwko tradycyjnemu C - sam piszę kod do
    > większości swoich projektów w ten sposób. Jednak mamy XXI wiek, w MCU nie
    > trzeba już liczyć bajtów i cykli, a dzieciakom dzisiaj zaczynającym zabawę
    > z programowaniem w przyszłości prędzej przyda się umiejętność sprawnego
    > pisania obiektowego kodu.

    Podpisuję się pod wszystkim :)
    Przy okazji polecam obejrzeć bardzo ciekawą prezentację pokazującą, że C++
    może dać mniejszy kod niż C.
    https://www.youtube.com/watch?v=PDSvjwJ2M80

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 25. Data: 2021-11-16 18:18:58
    Temat: Re: AVR po latach
    Od: heby <h...@p...onet.pl>

    On 16/11/2021 11:26, Grzegorz Niemirowski wrote:
    >> Zgadza się. Dlatego psu na budę debugger softwareowy w roli debuger
    >> hardwareowego. To najzwyczajneij zupełnie inne zagadnienie.
    > Zgadza się. Ja tylko piszę, że debugger jest przydatny i wolę
    > środowisko, które go ma od środowiska, którego go nie ma.

    Owszem, czasem się przydaje. Przydawał by się 100x bardziej, gdyby
    zawierał symulator SoC. A tak, to tylko zabawka powodująca więcej
    problemów niż rozwiązująca.

    Tak czy inaczej, utracenie mozliwosci debugowania w małym programiku na
    AtTiny, jest w zasadzie niczym cennym. Ot, gadżet, mało użyteczny w
    praktyce.


  • 26. Data: 2021-11-16 18:22:41
    Temat: Re: AVR po latach
    Od: Pcimol <...@...com>

    On 2021-11-14 17:46, heby wrote:
    > On 13/11/2021 09:40, Bool wrote:
    >> Dodam tylko że Arduino mnie kompletnie nie interesuje.
    >
    > To jakiś pogląd religijny?

    Nie, ale nazwa Arduino to taki fake.
    Fajne powstają rozszerzenia harwarowe łatwo je obsłuzyć, ale nie
    używałem nigdy narzędzi zapisujących ext .ino.
    Może kwestia przyzwyczajenia.
    A gdy ktoś mówi/pisze: "procesor Arduino", nie brzmi poważnie.


  • 27. Data: 2021-11-16 18:30:20
    Temat: Re: AVR po latach
    Od: Pcimol <...@...com>

    To prawda, jednak w 20MHz ATMega (czy 32MHz XMega) trochę niekorzystnie
    wypada overhead zasobów. To są sterowniki do najprostszych zadań. Prosta
    maszynę stanów łatwiej napisać w C (włącznie z nauką tegoż pisania).


  • 28. Data: 2021-11-16 19:30:42
    Temat: Re: AVR po latach
    Od: Atlantis <m...@w...pl>

    On 16.11.2021 18:30, Pcimol wrote:

    > To prawda, jednak w 20MHz ATMega (czy 32MHz XMega) trochę niekorzystnie
    > wypada overhead zasobów. To są sterowniki do najprostszych zadań. Prosta
    > maszynę stanów łatwiej napisać w C (włącznie z nauką tegoż pisania).

    To oczywiste, przy czym dzisiaj coraz rzadziej zaczynając nowy projekt
    sięga się po ośmiobitowe MCU (pomijając obecne problemy na rynku
    półprzewodników) dużo łatwiej kupić jakiś układ STM32, który w tej samej
    cenie zaoferuje co najmniej dziesięć razy tyle pamięci, szybsze
    taktowanie i bogatszy zestaw peryferiów. W takiej sytuacji dodatkowy
    narzut wynikający z użycia C++ nie jest wielkim problemem.

    I jasne - kod pod MCU pisze się inaczej, bo cały czas trzeba uważać ze
    stosowaniem kontenerów i algorytmów z STD, które dość intensywnie
    korzystają z dynamicznej alokacji pamięci, jednak sama przejrzystość
    obiektowego kodu jest sporą zaletą.

    No i poza tym gdy ktoś już porządnie opanuje C++, to potem zrozumienie
    "czystego C" przychodzi raczej łatwo.


  • 29. Data: 2021-11-17 10:53:53
    Temat: Re: AVR po latach
    Od: "Grzegorz Niemirowski" <g...@g...net>

    Pcimol <...@...com> napisał(a):
    > A gdy ktoś mówi/pisze: "procesor Arduino", nie brzmi poważnie.

    Niektórzy używają nazw Arduino i AVR zamiennie.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 30. Data: 2021-11-17 11:45:15
    Temat: Re: AVR po latach
    Od: Marek <f...@f...com>

    On Mon, 15 Nov 2021 20:22:11 +0100, heby <h...@p...onet.pl> wrote:
    > sobie na jeden komplement: mimo wymachiwania pięściami przez
    > 60latków z
    > embedded, wprowadził tylnymi drzwiami C++ do świata uC.
    > Podziękowania
    > się należą, nowe pokolenie programistów embedded będzie dzieki temu
    > bardziej ateistyczne.

    Szczerze mówiąc nie wiem co chciałeś powyższym przekazać. Moje
    doświadczenia z udostępnienia Arduino (i C++) znajomej osobie 60+
    (prawie 70) jest takie, że kod jaki ona pisze to nie ma nic wspólnego
    C++ a wygląda jak rzutowanie Pascala na C.

    --
    Marek

strony : 1 . 2 . [ 3 ] . 4 ... 10 ... 11


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: