-
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.
Następne wpisy z tego wątku
- 18.11.21 20:35 Mateusz Viste
- 18.11.21 20:47 heby
- 18.11.21 20:56 J.F
- 18.11.21 21:02 heby
- 18.11.21 21:25 a...@m...uni.wroc.pl
- 18.11.21 21:43 Mirek
- 18.11.21 21:47 Mateusz Viste
- 18.11.21 22:06 heby
- 19.11.21 08:57 Mateusz Viste
- 19.11.21 09:33 Mateusz Viste
- 19.11.21 09:43 J.F
- 19.11.21 09:44 heby
- 19.11.21 10:01 Mateusz Viste
- 19.11.21 10:18 heby
- 19.11.21 10:53 J.F
Najnowsze wątki z tej grupy
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
Najnowsze wątki
- 2025-02-03 Awaria BNP Paribas
- 2025-02-03 kryminalni i dochodzeniowcy
- 2025-02-03 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-03 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-02-03 jaki zasilacz laboratoryjny
- 2025-02-03 jaki zasilacz laboratoryjny
- 2025-02-03 Puszka w ziemię
- 2025-02-03 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2025-02-03 Kraków => Programista Full Stack .Net <=
- 2025-02-03 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-03 Bez żadnego trybu
- 2025-02-03 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-02-03 Lublin => Delphi Programmer <=
- 2025-02-03 Lublin => Programista Delphi <=