-
Data: 2013-10-10 18:43:17
Temat: Re: PICowanie
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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?
> 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.
> 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ę.
> 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.
> A tak poza tym to niezbyt rozumiem zwracanie jakiejś wartości z funkcji
> typu void.
Pomyłka.
> 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.
Następne wpisy z tego wątku
- 10.10.13 20:00 Sylwester Łazar
- 10.10.13 20:07 JDX
- 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
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- 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...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=