Reentrant functions w KEIL-C 51: Jak poprawnie wywoływać z przerwania i pętli?

Uwaga z Keil-C 51 - wolanie funkcji z przerwania i z idla.





Poprzedni Następny
Wiadomość
Spis treści
From: Pawel Sklarow <p.sklarow_at_nospam_mikrotel.pl>
Subject: Uwaga z Keil-C 51 - wolanie funkcji z przerwania i z idla.
Date: Sat, 19 Aug 2000 10:57:09 GMT


Dotyczy:
kompilator KEIL-C, na procesor 8051

Wlasnie znalazlem:
Jesli masz funkcje, ktora moze byc wolana z przerwania i z petli glownej
i nie uzywasz NOREGPARMS musisz zadeklarowac ja ze slowem kluczowym
reentrant!
Prototyp tez.

np:
void foo(int param) reentrant;
a nie:
void foo(int param);


Jesli nie - przy wywolaniu funkcji z przerwania dostanie ona nieprawidlowy
parametr np. dla parametr char w petli glownej jest przekazywany przez R6
(nb wg dokumentacji nieprawidlowo), w przerwaniu - przez R7 .

PS Wlasciwie jest to ladnie opisane w dokumentacji,
ale ja glupi nie zauwazylem...

--
pozdrawiam, Paweł Sklarow