-
X-Received: by 2002:a05:6214:c28:: with SMTP id a8mr66236235qvd.24.1637261735048;
Thu, 18 Nov 2021 10:55:35 -0800 (PST)
X-Received: by 2002:a05:6214:c28:: with SMTP id a8mr66236235qvd.24.1637261735048;
Thu, 18 Nov 2021 10:55:35 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2
.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnew
s.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.misc.elektronika
Date: Thu, 18 Nov 2021 10:55:34 -0800 (PST)
In-Reply-To: <sn5ul0$2vi$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=5.172.255.174;
posting-account=fcN60AoAAACGnErMsW3A8rTO2UKkGJEn
NNTP-Posting-Host: 5.172.255.174
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>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3...@g...com>
Subject: Re: AVR po latach
From: Dawid Rutkowski <d...@w...pl>
Injection-Date: Thu, 18 Nov 2021 18:55:35 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.misc.elektronika:768476
[ ukryj nagłówki ]czwartek, 18 listopada 2021 o 17:22:57 UTC+1 heby napisał(a):
> On 18/11/2021 15:52, Dawid Rutkowski wrote:
> >> Tymczasem to bardzo dużo małych, drobnych detali które czynią ten język
> >> *bardzo* przydatnym w embedded, bez narzutu wydajności.
> > Napisz choć kilka przykładów.
> 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.
> 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.
Mechanizm RAII stosowany po to, by "usunąć kategorię bugów", która pojawia się w
wyniku kodowania, które nie jest nawet strukturalne.
Wiem że BASIC ryje beret nieodwracalnie...
I wiem też, że w C można pisać programy FORTRANowe.
Sztuka i nauka w tym, by tego nie robić.
Zaś takie cli() na początku i sei() na końcu funkcji można sobie zrobić za pomocą
__attribute__.
Tylko co, jeśli przerwania musisz włączyć w połowie funkcji?
Np. w ISR w programie bardziej skomplikowanym niż miganie 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.
> > Dla ustalenia uwagi w porównaniu do C, żeby nie wynajdywać koła.
> No to masz RIIA.
Słabe. Jeszcze bym chciał coś lepszego.
> >>> Przykład zły,
> >>> bo oba kody skracają się do tej samej abstrakcji wspólnej dla obu
> >>> języków.
> >> To dalej oznacza, że jeden z nich na pewno jest w C++.
> > Który? I dlaczego?
> 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ą?
Pewnie tym, co zwróci
$ echo $_
Ciekawe co będzie w tym drugim przypadku.
Nie powinno być:
void main() {}
?
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?), C++ koszmarne - ale
to Twoje jest jeszcze trudniejsze.
> >> Ale ale ... zmartwię Cię. Niektóre porządnie napisane przykłady z
> >> *klasami* kompilują się do wydajnijszego kodu, niż goła pętla w C... to
> >> dlatego że C++ zawiera więcej konstrukcji pozwalajacej wyrazić cel, a
> >> nie tylko metodę jego osiągnięcia, wiążac kompilatorowi ręce.
> > No to którym kompilatorem "lepiej" się skompiluje program napisany w C -
kompilatorem C czy C++?
> Oba skompilują tak samo.
>
> Dlatego postulatem nie jest uzywanie g++ tylko pisanie w C++.
Tak samo albo nie.
Jakoś to mocno "akademickie" - czy dobrze odbieram "grupę" i "review"?
I to jeszcze akademickie młodego pokolenia, co pierwszy komputer miało z windows
95...
Następne wpisy z tego wątku
- 18.11.21 20:03 Piotrek
- 18.11.21 20:26 heby
- 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
Najnowsze wątki z tej grupy
- 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
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
Najnowsze wątki
- 2025-01-26 Brak bolca ochronnego ładowarki oznacza pożar
- 2025-01-24 Elektryfikacja w ODWROCIE
- 2025-01-25 AMS spalony szybkim zasilaczem USB
- 2025-01-24 stalowe bezpieczniki
- 2025-01-23 Zenek Kapelinder - ?
- 2025-01-25 Błonie => Sales Specialist <=
- 2025-01-25 Lublin => iOS Developer (Swift) <=
- 2025-01-24 Warszawa => Java Developer <=
- 2025-01-24 Białystok => iOS Developer (Swift experience) <=
- 2025-01-24 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-24 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-24 Lublin => Delphi Programmer <=
- 2025-01-24 Kraków => Key Account Manager <=
- 2025-01-24 Lublin => Programista Delphi <=
- 2025-01-24 Wróblewo => Specjalista ds. Analiz Finansowych <=