Schlüßelwort using

Gast #312704
Lesenswert?
• ▲
▼
Hallo, habe einen AT89C51CC03 und ein Beispielprogramm. Hier gibt es das
Schlüßelwort "using". Das Schlüßelwort steht hinter manchen
Funktionen. Das sieht dann etwa so aus:

void _Init(int number) using 3
{...}

Was ich auch schon gesehen habe ist etwa sowas:
void _Init1(int count) reentrant
{...}
Was macht using, was reentrant?

Für Eure Mühe vielen Dank im voraus

Grüße pontonfrog
#312706
Lesenswert?
• ▲
▼
"using" kenne ich von SDCC und besagt, welche Prioritätsebene ein
Interrupt bekommen soll (siehe dazu in nem C51 Datenblatt)

"...) using 3" besagt also, daß der INT in die Ebene 3 gesetzt werden
soll.

Zu reentrant weiß ich auch nix, ausser daß ich das auch schonmal
irgendwo gesehen habe ... mal den goockel dazu befragt?
#312707
Lesenswert?
• ▲
▼
"using" ist nur was für Profis und kann manchmal Interrupts etwas
beschleunigen.

"using 3" bedeutet, daß die gesamte Registerbank 3 für Interrutps
reserviert wird und nicht mehr als SRAM zur Verfügung steht. Blöd also,
wenn der Interrupt nur 3 Register von den 8 benutzt.

"using 3" bedeutet aber auch, daß sich der Compiler nicht länger um
die Registersicherung kümmert.

Schreibt man also "using 3" in 2 Interrupthandler mit verschiedener
Priorität und die treten dann gleichzeitig auf, krachts gewaltig. Der
eine zieht dem anderen die Register unterm Hintern weg.

Also "using" unbedingt weglassen, wenn man nicht genau weiß, was man
damit anrichtet.


"reentrant" bedeutet, daß mehrere Instanzen einer Funktion laufen
können, z.B. als rekursive Funktion.
Natürlich ist dadurch eine reentrante Funktion langsamer und benötigt
mehr Stack.


Peter

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.