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.
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