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!
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
1 | void GalpatTransparent(void) |
2 | {
|
3 | PSW = 8; |
4 | blabla
|
5 | PSW = 0; |
6 | }
|
Peter
Klasse Idee aber der Compiler verwendet immer noch den virtuellen Speicher
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.