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: Thu, 18 Nov 2021 20:26:23 +0100
    Organization: A noiseless patient Spider
    Lines: 127
    Message-ID: <sn69d4$mc5$1@dont-email.me>
    References: <smreh5$3aj$1@dont-email.me> <61920df0$0$544$65785112@news.neostrada.pl>
    <smu2sg$nns$2@dont-email.me> <619365f0$0$552$65785112@news.neostrada.pl>
    <61938d47$0$518$65785112@news.neostrada.pl>
    <a...@n...neostrada.pl>
    <619508e5$0$552$65785112@news.neostrada.pl>
    <a...@n...neostrada.pl>
    <sn3drv$13k$2@dont-email.me>
    <a...@n...neostrada.pl>
    <sn3h62$qna$1@dont-email.me>
    <a...@n...neostrada.pl>
    <sn3lbt$q5v$1@dont-email.me>
    <0...@g...com>
    <sn5ul0$2vi$1@dont-email.me>
    <3...@g...com>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Thu, 18 Nov 2021 19:26:28 -0000 (UTC)
    Injection-Info: reader02.eternal-september.org;
    posting-host="f8f74dab200a8f3596099db019172991";
    logging-data="22917";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX1+HlCs/8Nmolh9WARBfLX3F"
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
    Thunderbird/91.3.1
    Cancel-Lock: sha1:HJlEe/f/Qr9NYfiWf/gu2kyXNEw=
    In-Reply-To: <3...@g...com>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:768480
    [ ukryj nagłówki ]

    On 18/11/2021 19:55, Dawid Rutkowski wrote:
    >> Robiłem to dziesitki razy, na tej grupie, trzeba było uważać.
    > To dość dawno, p.m.e. wnikliwie czytam pewnie z rok czy dwa.

    Tak, od ~10 lat minimum.

    >> Np taki:
    >>
    >> foo()
    >> {
    >> DisableInterruptsInThisScope guard;
    >>
    >> [...]
    >> return;
    >> [...]
    >> return;
    >> [...]
    >> return;
    >> }
    > Hmm, podałeś piękny przykład socjalizmu - ustroju dzielnie i skutecznie (chyba
    jednak nie) zwalczającego problemy, które nie występują w kapitaliźmie.

    Ten przykałd rozwiązuje problem powszechnie występujacy w programach C w
    embedded, czyli tansapcyjności flag. Przerwań, bo łatwe, ale masy innych
    tez łatwo tym osiągnać.

    > Mechanizm RAII stosowany po to, by "usunąć kategorię bugów", która pojawia się w
    wyniku kodowania, które nie jest nawet strukturalne.

    Mechanizm RAII jest używany tam, gdzie jest przydatny. Tu jest przydatny.

    > Wiem że BASIC ryje beret nieodwracalnie...

    Tak, dlatego eliminujemy go z C i pojawia się potrzeba użycia czegoś
    lepszego. C++ jest za darmo.

    > I wiem też, że w C można pisać programy FORTRANowe.
    > Sztuka i nauka w tym, by tego nie robić.

    Wiec wyjasnij to embedowcom, u których goto jest podstawą wzroców
    programowania.

    > Zaś takie cli() na początku i sei() na końcu funkcji można sobie zrobić za pomocą
    __attribute__.

    A takie "enableDisplay()" i "disableDisplay()" też?

    Przyczepiłeś się użycia w przypadku 1, ale nie widzisz pozostałych N-1
    przypadków, gdzie wzorzec projektowy ...scoped... jest znacznie
    wygodniejszy i bezpieczniejszy niż debilizmy z goto.

    > Tylko co, jeśli przerwania musisz włączyć w połowie funkcji?

    To masz dodatkowy scope w połowie funkcji.

    Jesli przerwania musisz wyłączyć pomiędzy scopeami funkcji, to
    prawdopodobnie masz coś mocno spieprzone we flow algorytmu i niewiele tu
    można pomóc, musi wystarczyć modlitwa.

    > Np. w ISR w programie bardziej skomplikowanym niż miganie diodą?

    scope stosuje się własnie w programach znacznie bardziej skomplikowanych
    niż miganie diodą. Aby w ogóle dało się je utrzymać dalej, niż etap
    migania diodą.

    > Pewnie dałoby się to zrobić lepiej - ale urządzenie musi iść na obiekt jutro, bo za
    pół roku to takie oprogramowanie zrobi też Hindus, a może i Chińczyk.

    Mówisz o pisaniu na odpierdol? Łopanie, to oczywiscie goto i nastepny.

    Poważne oprogramowanie przeszło by review, testy automatyczne, statyczną
    analizę, analizę formalną, linting, akceptację SQA. Ale na odpierdol
    nie, ja w ogole nie mówie o takiej kategorii oprogramowania. Być może to
    miganie diodą było by w respiratorze, więc wtedy też.

    Choć nawet w tym na odpierdol wolałbym RAII, niż 30 goto.

    >>> Dla ustalenia uwagi w porównaniu do C, żeby nie wynajdywać koła.
    >> No to masz RIIA.
    > Słabe. Jeszcze bym chciał coś lepszego.

    To proponuj.

    >> Drugi. Kompiluje się g++. Pierwszy też, ale drugi jest *niewątpliwie*.
    > To może odwrotnie - czy drugi nie skompiluje się gcc?
    > Przecież nie było tam nawet:
    > for(int i = 0 ; i < 100 ; ++i )
    > Czym one się w ogóle różnią?

    Niczym istotnym. Właśnie odkryłeś że przejście na C++ jest za darmo. A
    mimo to dev 60+ broni się rękami i nogami, wymyślając co chwile nowe
    debilizmy do obrony epoki kamienia goto-wanego.

    > Pewnie tym, co zwróci
    > $ echo $_
    > Ciekawe co będzie w tym drugim przypadku.
    > Nie powinno być:
    > void main() {}
    > ?

    Nie. Nie powinno. Będzie zero. Gwarantowane. ISO 9899:201x 5.1.2.2.3

    > Rozwiązywałe kiedyś test 50 pytań z Javy i C++ u takiej jednej fajnej "rekruterki"
    (rozpraszała, podobnie jak taka jedna fajna z zakładu metod matematycznych
    informatyki na egzaminie z prawdopodobieństwa ;)
    > Java była OK, za co ją uwielbiam (ciekawe czy jest gcj na AVR?)

    Jak sobie wyobrażasz heap na AVR? Java jest językiem, w którym cieżko
    się piszę bez allokacji na heapie. Innymi słowy nie jest możliwa do
    użycia na AVR w sposób pełny. Co innego C++ - w nim używania heapu nie
    ma obowiązku.

    Istnieją podzbiory Javy np. na karty SIM, ale nie chciałbyś w tym pisać,
    to jest żenujące i przypomnia tortury.

    >, C++ koszmarne - ale to Twoje jest jeszcze trudniejsze.

    To są podstawy C++. Nie ma nic prostszego niż RAII.

    >> Dlatego postulatem nie jest uzywanie g++ tylko pisanie w C++.
    > Tak samo albo nie.
    > Jakoś to mocno "akademickie" - czy dobrze odbieram "grupę" i "review"?

    "grupa" i "review" nie mają nic wspólnego z "akademickością". Są
    normalnymi narzędziami używanymi przez prawie wszystkie firmy zajmujące
    się pisaniem programów, a nie dicking around.

    Bywają "akademickości" gdzie o nich nie słyszano i dalej uczą Delphi,
    dajac na koniec magistry.

    > I to jeszcze akademickie młodego pokolenia, co pierwszy komputer miało z windows
    95...

    Myślę, że przeoczyłeś jakieś ~40 lat rozwoju informatyki.

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: