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!
8051 IAR C/C++ Compiler Reference Guide S.80: Register banks Peter
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 | |
2 | |
3 | |
4 | |
5 | |
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
Vielen Dank für die Hilfe dann eben in Assembler!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.