🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310128

Re: Coroutines w (GNU) C

#310128
From: Piotr Gałka
Date: Sat, 01 Feb 2020 12:04
70 lines
5394 bytes
W dniu 2020-02-01 o 09:07, heby pisze:

> Przykład: firma robi sterowniki. Tak nie za trudne, jakieś wejścia, 
> jakieś sterowanie, ogólnie nic skomplikowanego. Wybrali PICa, pod koniec 
> lat 90. Nie był to zły wybór.

Jesteśmy malutką firmą.
Na początku lat 90-tych klient zamówił opracowanie urządzenia 
dostarczając nam narzędzia do PICa (programator produkcji Microchipa, 
rozmiaru prawie A4 z wymiennymi modułami do różnych obudów). Na potrzeby 
projektu mieliśmy 10 szt PICów. Pierwsze 5 spaliliśmy bo ten ich 
programator włączając VPP między stanem początkowym 5V a końcowym 21V 
przechodził po drodze przez 45V. Zwykłe blank-check zabijało scalak.
Po namierzeniu problemu i zmodyfikowaniu tego programatora natknęliśmy 
się następnie na 3 różne błędy w PICu. Dwa udało nam się obejść, ale 
trzeci nas rozłożył. Według naszych pomiarów procesor przegapiał mniej 
więcej jedno na 3000 zboczy które miały dawać przerwanie, a odbieranie 
tych przerwań to była kluczowa sprawa.
Wysyłaliśmy faxy do Microchipa - bez odpowiedzi. Jakiś rok później 
odbyło się pierwsze seminarium Microchipa w W-wie. Tam obiecali, że 
przyślą nam erratę. Półtora miesiąca później dostaliśmy faxem tę erratę 
- zawierała 6 błędów (w tym te 3 które sami odkryliśmy). Aby obejść ten, 
który nas rozłożył proponowali dołożenie zewnętrznego układu 
synchronizującego zbocza przerwań z zegarem procka.
Gdybyśmy to wiedzieli przed projektem płytki....

Nasza decyzja - nigdy więcej PICów.

> Rzeczywistośc wygląda tak że od kilkudziesięciu lat siedzą dalej na 
> PICach.

Siedzimy od wielu lat na Xmegach.

> W rzeczywistości mają  
> kolosalny dług technologiczny bo rozwijali soft w asemblerze....

> Pytam o powody tego asm do dzisiaj

Bootloader mamy w assemblerze.
Nigdy nie programowałem mikrokontrolerów i żaden z nas nie jest 
wykształconym programistą. Z tego co brat mi mówi to on nie widzi 
możliwości napisania efektywnego SHA256 na Xmega w C. O ile pamiętam 
(rozmowa była z 5 lat temu) to problem polega na tym, że C zabiera z 
definicji kilka rejestrów i brakuje dla przechowywania stanu SHA256. A 
ciągłe przerzucanie danych między rejestrami a RAMem kilkukrotnie 
spowalnia obliczenia.

> i dlaczego PICe.

Z mojego punktu widzenia (projektuję schematy/płytki) Xmegi są na prawdę 
fajne. 7 UARTów, 3 SPI, 2 I2C, 16 wejść analogowych, przerwania z każdej 
nogi pozwala mi zawsze tak podłączyć peryferia abym nie musiał korzystać 
z drugiej strony płytki dla ścieżek sygnałowych.

> Potwarzam, intelekt praktycznie nic nie ma wspólnego z mądrością 
> wyborów. Decydują czynniki pochodzące czysto z biologii. Mechanizmy, czy 
> to duże korpo czy mała firemka, podobne.

Sugerujesz jakoby decyzje były głównie na zasadzie 'przyzwyczajenie'.
Ja to widzę inaczej.
Prawie przy każdym kolejnym projekcie zastanawiamy się, czy stać nas 
przy tej okazji na skok technologiczny, co spowoduje opóźnienie go 
szacunkowo o pół roku. Nasze doświadczenie nam mówi, że jak się nam 
wydaje, że coś nam zajmie t to zazwyczaj zajmuje 3t.
No i dotychczas zawsze było, że oprócz tego mamy do zrobienia 'na 
wczoraj' jeszcze kilka rzeczy i na pewno teraz nie możemy opóźniać.
Takich zaplanowanych, różnych skoków technologicznych do wykonania mamy 
jeszcze kilka. Do niektórych powstał nawet hardware i czeka od 4 lat aż 
znajdziemy na to czas.
P.G.
Technical Details
Message-ID: <r13pgb$p54$1$PiotrGalka@news.chmurka.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.68!not-for-mail
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0kq6d$v6h$1@dont-email.me> <748c5d16-f4a8-43a0-8a56-bea0800e1e04@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <c9ada043-010e-41c1-8362-385fcab97fbb@googlegroups.com> <r0sm9p$r2m$1@dont-email.me> <35023603-9392-414e-9ad2-dfb5ddf4a850@googlegroups.com> <r0t1ne$3re$1@dont-email.me> <91b73c11-aadd-4e8f-9a1b-a3ea1da6adc3@googlegroups.com> <r0vipi$i8e$1@dont-email.me> <2c5f15fd-b0c0-466f-8961-a3e5b291657e@googlegroups.com> <r11uhf$6bf$1@dont-email.me> <a5b8d9cc-7cdf-467f-abc0-d91489d80a8e@googlegroups.com> <r13bkl$s0k$1@dont-email.me>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.68!not-for-mail
From: Piotr Gałka <piotr.galka@cutthismicromade.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Coroutines w (GNU) C
Date: Sat, 1 Feb 2020 13:04:34 +0100
Organization: news.chmurka.net
Message-ID: <r13pgb$p54$1$PiotrGalka@news.chmurka.net>
References: <4375b52d-ba21-462a-8844-9bd1a02e9ece@googlegroups.com> <r0kq6d$v6h$1@dont-email.me> <748c5d16-f4a8-43a0-8a56-bea0800e1e04@googlegroups.com> <r0n95e$35l$1@dont-email.me> <f3df206c-11d4-4b22-87ff-fc7aa00935f3@googlegroups.com> <r0nevq$9iq$1@dont-email.me> <ecae4ae1-0b06-4956-8df0-593fa0f1cd01@googlegroups.com> <r0njjv$740$1@dont-email.me> <0e0786af-7b58-4070-b8cd-81f1bda1f432@googlegroups.com> <r0q9iv$23b$1@dont-email.me> <20200128233003.4bf9d9eb@mateusz> <1a207604-09fa-43f2-8d0a-e3ff51b183f4@googlegroups.com> <r0sf4i$d46$1@dont-email.me> <c9ada043-010e-41c1-8362-385fcab97fbb@googlegroups.com> <r0sm9p$r2m$1@dont-email.me> <35023603-9392-414e-9ad2-dfb5ddf4a850@googlegroups.com> <r0t1ne$3re$1@dont-email.me> <91b73c11-aadd-4e8f-9a1b-a3ea1da6adc3@googlegroups.com> <r0vipi$i8e$1@dont-email.me> <2c5f15fd-b0c0-466f-8961-a3e5b291657e@googlegroups.com> <r11uhf$6bf$1@dont-email.me> <a5b8d9cc-7cdf-467f-abc0-d91489d80a8e@googlegroups.com> <r13bkl$s0k$1@dont-email.me>
NNTP-Posting-Host: 213.192.88.68
Mime-Version: 1.0
Injection-Date: Sat, 1 Feb 2020 12:04:27 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="PiotrGalka"; posting-host="213.192.88.68"; logging-data="25764"; mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2
In-Reply-To: <r13bkl$s0k$1@dont-email.me>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit