Forum: Mikrocontroller und Digitale Elektronik Keil -> IAR RAM Test 8051


von Hans D. (hans_dampf0_0)


Lesenswert?

Hallo zusammen
versuche gerade einen 8051 RAM Test den ich mit dem Keil Compiler schon 
im Einsatz hatte auf den IAR zu portieren. Nun war es bei Keil möglich 
dem Compiler mit "void GalpatTransparent() using 1" mitzuteilen, dass 
diese Funktion nur mit der Registerbank 1 also nur (R0 - R7) arbeitet. 
Wie kann ich dem IAR Compiler mitteilen dass ich nur die Registerbank1 
für diese Funktion verwenden möchte oder wie kann ich verhindern, dass 
der Compiler die virtuellen Register V0-V7 verwendet. Ich verwende das 
8051 Atmel AT89S8252 Derivat.

Danke für eure Hilfe!

von Peter D. (peda)


Lesenswert?

8051 IAR C/C++ Compiler Reference Guide

S.80: Register banks


Peter

von Hans D. (hans_dampf0_0)


Lesenswert?

Das hab ich schon probiert aber der Compiler benutzt weiterhin die 
Virtuellen Register im Disassembler.

code:

#pragma register_bank=1
void GalpatTransparent(void)
{
   blabla
}

auch #pragma register_bank=0 hab ich schon ausprobiert

von Peter D. (peda)


Lesenswert?

1
void GalpatTransparent(void)
2
{
3
  PSW = 8;
4
   blabla
5
  PSW = 0;
6
}


Peter

von Hans D. (hans_dampf0_0)


Lesenswert?

Klasse Idee aber der Compiler verwendet immer noch den virtuellen 
Speicher

von Peter D. (peda)


Lesenswert?

Compiler sind eigensinnig.
Wenn sie meinen, für etwas bestimmten Speicher benötigen zu müssen, 
kannst Du sie nicht davon abbringen.

Dann mußt Du es eben in Assembler schreiben.
So kompliziert kann ein RAM-Test ja nicht sein.


Peter

von Hans D. (hans_dampf0_0)


Lesenswert?

Vielen Dank für die Hilfe dann eben in Assembler!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.