-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!goblin3!goblin2!goblin.stu.neva.ru!feeder1.cambriumusenet.
nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshos
ting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.n
eostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Thu, 10 Oct 2013 20:07:37 +0200
From: JDX <j...@o...pl>
Organization: N/A
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.0
MIME-Version: 1.0
Newsgroups: pl.misc.elektronika
Subject: Re: PICowanie
References: <e...@g...com>
<5254fb82$0$21838$65785112@news.neostrada.pl>
<f...@g...com>
<l34br2$8d0$1@node1.news.atman.pl>
<a...@n...neostrada.pl>
<l35dk5$950$1@node1.news.atman.pl> <l35rdb$bid$1@mx1.internetia.pl>
<l36gv3$epe$1@node1.news.atman.pl>
<5256d47c$0$32693$65785112@news.neostrada.pl>
<l36lfa$fbj$1@node2.news.atman.pl>
In-Reply-To: <l36lfa$fbj$1@node2.news.atman.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lines: 62
Message-ID: <5256ecf3$0$14832$65785112@news.neostrada.pl>
NNTP-Posting-Host: ip-94-42-225-109.multimo.pl
X-Trace: 1381428467 unt-rea-a-01.news.neostrada.pl 14832 94.42.225.109:60903
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:653043
[ ukryj nagłówki ]On 2013-10-10 18:43, Sebastian Biały wrote:
> On 2013-10-10 18:23, JDX wrote:
>>> Na Microchipa nie. Na *dowolny* podam do znudzenia ten sam co zawsze:
>> Dowolny? To cli() i sei() to są standardowe funkcje C++ (i C)? :-D
>
> Odróżniasz idiom RAII od kodu natywnego, prawda?
Ale o co chodzi? Co ma RAII do kodu natywnego? W każdym razie chodziło
mi jedynie o to, że cli() i sei() to nie są funkcje standardowe C czy
też C++.
>> tak
>> zaimplementowanej sekcji krytycznej IMO *nie jest* lepsze.
>
> Zdefiniuj najlepsze.
>
>> IMO lepsza
>> jest "ręczna" kontrola nad CS ponieważ tak w ogólności to chcemy jak
>> najszybciej odblokować przerwania
>
> To nie jest prawda. Czasem chcemy mieć pewność że UART_D zostanie
> odczytany jeszcze w sekcji krytycznej. Efektem czego jest workaround z
> temp w C. Nie ma rozwiązań załatwiających wszystkie przypadki. To jest
> rozwiązujące pewna sporą grupę czestych sytuacji w przerwaniach.
No to przecież sam pokazałeś że w C obudowujemy czytanie w cli()/sei().
A jeśli z jakiegoś powodu w tej samej funkcji potrzebujemy przeczytać
zasób jeszcze raz, no to jeszcze raz obudujemy operację czytania. Zdaję
sobie sprawę, że kod się komplikuje i tym samym jest bardziej podatny na
błędy, ale w sam raz IMO w tak, nomen omen, krytycznych przypadkach jak
CS lepiej jest sterować ręcznie a nie zdawać się na automatykę.
>> a nie czekać do momentu wyjścia z
>> funkcji gdy zawołany zostanie destruktor.
>
> Destruktor nie "czeka" tylko wołany jest natychmiast po return.
> Dokładnie tak jak chcę.
Zakładając, że pomiędzy odczytaniem z chronionego zasoby a returnem nie
ma znaczącego (w sensie czasu wykonania) kodu.
>> No i IMO tak zaimplementowana
>> CS może prowadzić do jeszcze większych i trudniejszych do wykrycia
>> ooops-ów jeśli ktoś będzie tworzycł CS na początku jakiejś dużej funkcji.
>
> Taki idiom daje znacznie wieksze gwarancje w dobrze zrobionym kodzie. W
> kodzie napisanym byle jak czyli z wielkimi funkcjami - nic nie daje
> gwarancji poza modlitwą. Subiektywnie patrząc: RAII genaruje mniej
> błedów niż jego ręczna emulacja i miałem w życiu na to milion przykładów.
W każdym razie ja w podanym przykładzie jakoś nie widzę wyższości C++
nad C. Zyskujesz większą odporność na błędy ale płacisz za to mniej
precyzyjną kontrolą nad CS. Nie twierdzę, że C++ jest gorsze od C w
zastosowaniach embedded. Twierdzę jedynie, że przykład jest słaby.
>> No i przydało by sie też jakieś info na temat tego co to jest
>> UART_D - domyślam się, że jest to jakiś rejestr zmieniany
>> (asynchronicznie) przez moduł UART-ów.
>
> To jest coś chronione przez sekcję krytyczna. Nie ma znaczenia co to
> jest. Probolemem wielu programistów embedded jest wlasnie to że *musza*
> wiedzieć co to jest, choć wiedza taka zazwyczaj kończy się pisaniem
> nieprzenośnego kodu.
No nie wiem, mi w sam raz wystarczyłaby informacja, że to jest coś co ma
być chronione za pomocą CS. Tak, abym nie musiał snuć domysłów. :-)
Następne wpisy z tego wątku
- 10.10.13 20:33 Sebastian Biały
- 10.10.13 20:46 Sebastian Biały
- 10.10.13 20:57 Grzegorz Niemirowski
- 10.10.13 21:43 Marek Borowski
- 10.10.13 21:49 Sebastian Biały
- 10.10.13 22:05 JDX
- 10.10.13 22:05 JDX
- 10.10.13 22:11 Sebastian Biały
- 10.10.13 22:26 JDX
- 10.10.13 22:31 Sebastian Biały
- 10.10.13 22:49 Marek Borowski
- 11.10.13 00:11 Sylwester Łazar
- 11.10.13 00:19 Sebastian Biały
- 11.10.13 00:53 Sebastian Biały
- 11.10.13 07:53 Marek
Najnowsze wątki z tej grupy
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
Najnowsze wątki
- 2025-03-20 Grubość socketa AM4+procesor
- 2025-03-20 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-20 Warszawa => Senior Programmer C <=
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-20 Greenpeace została zobowiązana do zapłaty niemal 667 mln dolarów [USA,wyrok sądu]
- 2025-03-20 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Brak ograniczeń dla chińskiego kapitału - wam nie do rządu, tylko na zmywak do chińskiej knajpy!!!
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?