Gast
#1700072
Hallo, für ein Projekt benötige ich ein Programm, das im Prinzip aus zwei Teilen besteht: Teil 1: Über eine Schnittstelle (RS232?) oder per Taster werden verschiedene Werte in den internen Ram des Controllers geschrieben. Dieser Teil ist vollkommen zeitunkritisch und soll (zwecks besserer Lesbarkeit) in C entstehen. Teil 2: Ein leider sehr zeitkritischer Programmteil liest die vorher gespeicherten Daten aus dem Ram und gibt sie auf einem I/O-Port aus. Der Teil soll in ASM geschrieben werden, da es hier auf jeden Takt ankommt. Mein Ansatz wäre: Statt den Stack-Pointer zu Beginn auf das Ende des Rams zu setzen, würde ich den sagen wir einfach mal auf 25% setzen (muss ich noch genau nachrechnen). Somit könnte ich die unteren 25% des Rams normal für Stack und Heap nutzen unter C. Die auszugebenden Daten muss ich "per Hand" in die oberen 75% schreiben. Vom Compiler selbst dürfte dieser Speicherbereich ja nicht "angefasst" werden können, oder? Im Ausgabeteil in ASM würde ich dann den Ram mithilfe der X/Y/Z-Register lesen und auf den Port schreiben. Der Ausgabe-Teil würde einmal durchlaufen. Die Anzahl der auszugebenden Bytes ist konstant. Kann das so funktionieren? Gibt es sinnvollere oder elegantere Lösungen? Grüße Christian