Gast
#345914
Hallo zusammen, ich setze einen ST10F269 uC mit 256KB internen Flash und 12 KB internen RAM ein. Mein Problem ist nun, dass ich eine zeitkritische Regelung erstellen muss. Aufgrund des komplexen Regelalgorithmus ist der ST10 nicht schnell genug um den Algorithmus in Echtzeit abarbeiten zu können. Daher möchte ich eine Look-Up-Tabelle einsetzen. Leider muss auch die Look-Up-Tabelle sehr umfangreich sein, weshalb sie nicht in den RAM passt. Daher möchte ich die Lookup-Tabelle direkt im Flash speichern. In Keil (Programmierung in C) könnte ich zwar die Werte als Konstanten hinterlegen, jedoch muss ich dann eine gewisse Logik haben, die mir die passenden Werte ausgibt. Und diese switch-Anweisungen oder irgendwelche Schleifen haben je nach Eingabewert unterschiedliche Laufzeiten. Das ist ungünstig. Daher möchte ich mir aus den Eingabewerten eine Speicheradresse berechnen (diese Berechnung hat immer feste Laufzeit) und anschließend den Wert direkt aus dem Flash-Speicher auslesen. Und genau hier ist mein Problem: Wie kann ich (am besten mit einer kleinen C-Routine oder mit embedded Assembler) auf den Flash-Speicher an einer bestimmten Adresse zugreifen um einen Wert auszulesen? Das nächste Problem ist, wie ich Keil mitteilen kann, dass es genau in dem entsprechenden Speicherbereich meine konstanten Werte hinlegen soll? Hat hier jemand Erfahrungen und kann mit weiterhelfen? Vielen Dank und viele Grüße... Alexander