eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR po latachRe: AVR po latach
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!eternal-september.org!reader02.eternal-september.org!.POS
    TED!not-for-mail
    From: heby <h...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: AVR po latach
    Date: Mon, 15 Nov 2021 20:22:11 +0100
    Organization: A noiseless patient Spider
    Lines: 75
    Message-ID: <smuc18$2qb$1@dont-email.me>
    References: <618f7a0a$0$23913$65785112@news.neostrada.pl>
    <smreh5$3aj$1@dont-email.me> <6191856f$0$551$65785112@news.neostrada.pl>
    <smu2ot$nns$1@dont-email.me> <6192991e$0$543$65785112@news.neostrada.pl>
    <smu61k$jqk$1@dont-email.me> <61929f95$0$539$65785112@news.neostrada.pl>
    <smu7m3$kaf$1@dont-email.me> <6192a4bc$0$552$65785112@news.neostrada.pl>
    <smu97g$bau$1@dont-email.me> <6192adb1$0$518$65785112@news.neostrada.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Mon, 15 Nov 2021 19:22:16 -0000 (UTC)
    Injection-Info: reader02.eternal-september.org;
    posting-host="fa6edf8215f72c2aeeada2545663a409"; logging-data="2891";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX1/6Omb1DmoM758mWdGsgYI7"
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
    Thunderbird/91.3.0
    Cancel-Lock: sha1:8naoe02H0ySEUNrLpovXdy+g5ng=
    In-Reply-To: <6192adb1$0$518$65785112@news.neostrada.pl>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:768302
    [ ukryj nagłówki ]

    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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: