Hallo, folgendes Problem: Ich möchte mit meinem MSP430(F1232 == 8kb Flash) eine Tabelle im Flash-Speicher anlegen, die als Look-Up-Table für den ADC verwendet werden soll. Die Tabelle hat 160 Integer-Werte. Ich programmiere in C - doch wenn ich einfach eine Test-Schleife [ int tabelle[]; ... for (i=0;i<161;i++) { tabelle[i]=i*5; } ] erstelle, beginnt er die Werte ab Adresse 0x200 ins RAM zu schreiben, das (bei 256 Byte Größe) natürlich bald voll ist. Er soll die Daten aber in den 8kb Flash-Speicher schreiben. Frage: Wie sgae ich ich, wo die Daten im Speicher genau hin sollen - oder hat jemand einen anderen Vorschlag für die Realisierung einer Look-Up-Table? Danke im Vorraus, Martin
Du wirst so ohne weiteres keine Schreibzugriffe auf Deine Tabelle ausführen können. Die soll schließlich im Flash-ROM liegen. Bei der Deklaration der (konstanten) Variable tabelle wirst Du einen der im Handbuch Deines C-Compilers dokumentierten "storage class specifiers" verwenden müssen, der besagt, daß diese Variable im Flas-ROM abgelegt wird. Desweiteren musst Du die Variable initialisieren, das aber geht nur duch eine konstante Initialisierung; mit Deiner "Testschleife" kann das nicht funktionieren. Da ich Deinen Compiler nicht kenne, kann ich nur mutmaßen: const int tabelle[] = {1, 2, 3, 4, 5, 6}; Eventuell ist Dein Compiler in diesem Falle bereits so schlau, die Variable im ROM abzulegen, ansonsten musst Du eben herausfinden, welcher "storage class specifier" dafür zuständig ist, der dann zusätzlich zum const int anzugeben ist. Immerhin kannst Du Lesezugriffe auf diese Variable ohne die bei AVRs erforderlichen Klimmzüge durchführen; MSP430 verwendet keine Harvard-Architektur.
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.