-
Data: 2014-05-30 18:01:39
Temat: Re: [Laik] C przerwanie dzia?ania funkcji.
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Szarym od mżawki świtem Fri, 30 May 2014 09:12:18 +0200, Andrzej W.
wyrzucił pustą ćwiartkę i oznajmił:
> W dniu 2014-05-30 04:35, A.L. pisze:
>> Procedyra obslugi pzrerwania mzoe zmienic wartosc jakiegos elementu
>> pamieci ktory moze byc testowany przez funkcje F. W zaleznosci of tego
>> elementu pamieci funkcja F mzoe po sobie "posprzatac' Jedyny problem
>> to taki, ze jak funkcja F sie wykonuje, to nei wladomo w ktorym
>> momemncie nastapi pzrerwanie. Wiec nei da sie procedury F pzrerwac
>> natychmniast i z neij wyjsc.
>
> To jest oczywiste i czyste podejście.
> Ja chciałbym mieć coś co pozbędzie się funkcji F bez jej wiedzy i zgody.
> Czyli z funkcji obsługi przerwania wrócimy nie w miejsce w którym główny
> program został zatrzymany ale do punktu B.
> Problemem jest posprzątanie po F.
Dokładnie: można w procedurze obsługi przerwania zamiast tak jak
zazwyczaj wraca się z przerwania po prostu robić co innego. Pytanie
jest faktycznie jak posprzątać, a tu brak danych. Zazwyczaj byłoby to:
- jeżeli return adress i rejestry F są na stosie: podmienić i iret
(instrukcja bodajże 8086).
- stos wypadałoby zresetować. Przed wykonaniem F wypadałoby zapisać
SP i jakąś magiczną trampoliną po przerwaniu przywrócić SP sprzed F,
albo lepiej: zapisać sobie w znajomym miejscu rejestry i SP sprzed
wykonania F i w procedurze obsługi przerwania a) sub sb, ile-trzeba,
b) przywrócić pozstałę rejestry, c) jakoś zakończyć obsługę przerwania
- hardware: wypadałoby posprzątać wszystko co F robiła z hardware,
ale jak rozumiem przerywa się F bo coś jej i tak ze sprzętem nie idzie,
może jakiś reset? reinicjalizacja?
No a potem jak dobrze pójdzie mamy stan taki jakby F nigdy nie była
wykonana...
Wszystko co napisałem powyżej zależy też od samego CPU, mechanizmu
przerwań, reguł obsługi rejestrów, zestawu instrukcji itp.
> Wygląda na to, że ten pomysł może przynieść więcej problemów niż ich
> rozwiązać.
> Zostanę chyba przy WDT...
Tak czy inaczej bez odrobiny assemblera się nie da, chyba że przez setjmp.
--
Edek
Następne wpisy z tego wątku
- 30.05.14 20:54 A.L.
- 30.05.14 22:23 Andrzej W.
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-15 Łódź => NodeJS Developer <=
- 2025-02-15 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-15 Warszawa => Developer .NET (mid) <=
- 2025-02-15 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-02-14 Zdalne załączanie grzałki bojlera elektrycznego
- 2025-02-14 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-02-14 Częstochowa => Product Manager - Systemy infrastruktury teleinformaty
- 2025-02-14 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-02-14 Warszawa => Data Engineer (Tech Leader) <=
- 2025-02-14 Czy ma sens grupa news:pl.soc.polityka-prawna ? :-)
- 2025-02-14 e-paper
- 2025-02-14 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-14 Warszawa => System Architect (Java background) <=
- 2025-02-14 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-14 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=