Forum: Compiler & IDEs doppelt gelinkte liste ins flash? nicht moeglich mit avrgcc?


von Stef S. (kraeuterfreund)


Lesenswert?

Hi Forum,

wollte nur kurz fragen ob es eine Moeglichkeit gibt, eine doppelt
verkette Liste mittels progmem ins Flash zu befoerdern? Bzw. dass
malloc() fuer so eine Sache noetig ist? Hab das Forum/Netz schon
abgegrast und nichts gefunden.

Wenn man eine Liste anlegt, muss man ja die Adressen der vorherigen und
nachfolgenden angeben, dh. duerfte nicht compilierbar sein.

Im Butterfly-Beispiel von Martin Thomas wird das im Flash abgelegte
Menue auch nicht mit Pointern gemacht, sondern mit Stati.

Gibt es vielleicht doch eine Moeglichkeit, die ich uebersehen habe?

Danke fuer Eure Antworten.

Gruss Stef

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> wollte nur kurz fragen ob es eine Moeglichkeit gibt, eine doppelt
> verkette Liste mittels progmem ins Flash zu befoerdern?

Sicher möglich, aber wird nicht ganz trivial sein (mit forward-
Deklarationen).

Was aber soll das denn für 'nen Sinn haben?  Doppelt verkettete
Listen
baut man für dynamische Datenstrukturen, was im Flash ist, kann
schlechterdings wirklich dynamisch sein.  Da kann man auch gleich ein
Array nehmen und den Platz für die Verkettungszeiger einsparen.

von Rolf Magnus (Gast)


Lesenswert?

Der große Vorteil der verktetteten Listen ist, daß man sehr schnell
Elemente an beliebigen Stellen einfügen oder löschen kann. Das tut man
aber eher nicht, wenn die Daten im Flash liegen, daher ist mir auch
nicht ganz klar, wozu man da eine verkettete Liste wollen könnte. Warum
nicht einfach ein Array?

von Stef S. (kraeuterfreund)


Lesenswert?

Hallo Jörg und Rolf,

>[...]  Doppelt verketteteListen
>baut man für dynamische Datenstrukturen, was im Flash ist, kann
>schlechterdings wirklich dynamisch sein.  Da kann man auch gleich ein
>Array nehmen [...]
Danke, wieder was dazugelernt =)

ich beschaeftige mich im Moment mit Listen und wollte deshalb ein
derart aufgebautes Menue in meinen AVR pflanzen. Das schien mir eine
einfach Loesung fuer das Problem. Zugegeben, wohl doch nicht so doll
...werde es dann mit nem Array probieren.

Danke Jörg und Rolf fuer Eure antworten.

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.