-
Data: 2021-11-18 20:26:23
Temat: Re: AVR po latach
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek