ARM: Readonly Daten von Datei direkt in Flash?

Gast #537841
Lesenswert?

Hallo,

nach langem vergeblichem Suchen, hier folgende Frage:

Gibt es eine Moeglichkeit, eine grosse Datei (120kB) so mit einzulinken, 
dass deren Inhalt:
a) im Flash eines AT91SAM7x256 abgelegt wird und
b) ein Zugriff vom Programm aus moeglich ist, z.B. mit:
    extern const unsigned char caldata[];
?
Danke allen Helfern vielmals im voraus!

More Info:
Die Datei liegt als hex-file vor. Ihre Groesse ist bekannt und fixed.
Benutzte Tools : gnu-arm-elf;

Danke!

Stefan
Gast #538083
Lesenswert?

Ja es geht;

zu a:

Leg im Linkerfile einen Adressbereich an in dem das Hexfile abgelegt 
werden soll. zb. Hexfile start: 0x01234 size:0x100

Im Hexfile ist die Adresse enthalten bei der die Daten geflasht werden.
Dazu musst du dir das Hexformat ansehen, dann lassen sich diese Adressen 
auslesen und bei Bedarf modifizieren.
Die im Hexfile enthaltenen Adressen müssen allerding mit der Adresse im 
Linkerfile identisch sein.

zu b:

Leg eine Variable, Array,..... entsprechend der Daten an, und weiß 
dieser Variablen die Adresse zu, an die das Hexfile im Linkerfile 
eingetragen ist.

zb:  pointer  auf die Variable = 0x01234


Wie du das in Praxis mit dem von dir genutzen Compiler , Linker , 
Maketool machen kannst, kann ich dir allerdings nicht erklären.

Gast #538791
Lesenswert?

Also,

danke an Euch beide.

Es funktioniert grossartig.
Holger's Methode besticht durch einfache Eleganz. Bin2C ist grossartig.
Es gab keinerlei Probleme!!

Ursprueglich dachte ich genau wie Du, Ralf, habe auch versucht zu 
verstehen, wie ich dies mit meinem Linker hinbiegen koennte, kam aber zu 
keiner Loesung. Ich denke auch, dass es gehen muss, habe aber leider 
keine Zeit dem weiter nachzugehen.

Nochmals Danke!

Beste Gruesse,

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren