Forum: Mikrocontroller und Digitale Elektronik AVR AT2560 DRAM und FLASH-Speicher


von Hobbyflieger (Gast)


Lesenswert?

Hallo.

Ich bin Physiker und habe sehr wenig Erfahrung mit MCs. für Kommutierung 
eines BLDC-Motors möchte ich auf MC-Speicher eine sinus-Tabelle 
speichern. Wenn ich die Tabelle als global definiere, dann habe ich auf 
mein DRAM kein Platz mehr. lokale Definition der Tabelle hilft auch 
nicht weiter. wie kann ich meine Sinus-Tabelle auf FLASH speichern, dass 
der DRAM-Speicher leer bleibt.  !!??

Danke

beim Hochladen bekomme diese Information:
Der Sketch verwendet 16.452 Bytes (6%) des Programmspeicherplatzes. Das 
Maximum sind 253.952 Bytes.
Globale Variablen verwenden 7.667 Bytes (93%) des dynamischen Speichers, 
525 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.
Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme 
auftreten.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hobbyflieger schrieb:
> der DRAM-Speicher
Du meinst vermutlich ein normales SRAM wie es in jedem µC im kB Bereich 
verbaut ist. Das ist dann das, was du "dynamischen Speicher" nennst.

> möchte ich auf MC-Speicher eine sinus-Tabelle speichern.
Dir ist klar, dass ein Viertelsinus auch reicht? Und dass der nicht auf 
1/1000° genau abgelegt werden muss, sondern das man da (für die 
Anwendung ausreichend) ganz problemlos interpolieren kann?

> wie kann ich meine Sinus-Tabelle auf FLASH speichern, dass der
> DRAM-Speicher leer bleibt.  !!??
Die einfachsten Frage zum Schluss: Welche Toolchain?
(Ich könnte das zwar raten, aber du könntest es auch sagen..)

Sieh dir bis dahin mal das da an:
https://www.arduino.cc/en/tutorial/memory

: Bearbeitet durch Moderator
von Hobbyflieger (Gast)


Lesenswert?

Vielen Dank. ich benutze die Arduino-umgebung für Hochladen. Ich benutze 
keine vordefinierte Funktionen von Arduino-Bib, sondern alles in C und 
mit den Registernamen. kann man Daten auf FLASH speichern, wenn ja, wie 
soll ich die Variablen definieren.


Danke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hobbyflieger schrieb:
> Ich benutze keine vordefinierte Funktionen von Arduino-Bib, sondern
> alles in C und mit den Registernamen.
Und welche Toolchain benutzt du dafür? Atmelstudio? GCC? Version?

von Falk B. (falk)


Lesenswert?

@Hobbyflieger (Gast)

>Vielen Dank. ich benutze die Arduino-umgebung für Hochladen. Ich benutze
>keine vordefinierte Funktionen von Arduino-Bib, sondern alles in C und
>mit den Registernamen. kann man Daten auf FLASH speichern, wenn ja, wie
>soll ich die Variablen definieren.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Flash_mit_flash_und_Embedded-C

von Christian M. (chrigi001)


Lesenswert?

Versuch mal deine Tabelle mit dem C Schlüsselwort const zu deklarieren. 
Eventuell lässt dann der Compiler die Daten im Flash liegen. 
Architekturbeding kann es aber auch sein, dass das nichts nützt.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.