www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM: Readonly Daten von Datei direkt in Flash?


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frag google nach einem hex2bin Programm.
Also aus Hex-Datei erstmal eine Bin-Datei machen.
Dann nach bin2c suchen. Macht aus der Bin-Datei
ein C-Array. Oder gleich hex2c ?

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.


Autor: swoo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke fuer Euere Hilfe!

Werde morgen alles ausgiebig testen!

Beste Gruesse & Danke!

Autor: Stefan (swoo) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.