www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie Versionsstring an feste Adresse legen?


Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es eine Möglichkeit, in C einen string an eine feste Adresse 
(flash) zu legen?
Geht um den Mega8, Compiler CodeVision.
Ein PC-Programm soll den Versionsstand einer Hex-Datei einlesen können, 
um zu ermitteln, ob ein update des angeschlossenen Controllers nötig 
ist.
Also Controller meldet auf Anfrage seine derzeitige Softwareversion, 
Vergleich mit einer Datei, dann evtl. update.
Würde mir die Sache sehr erleichtern, wenn die Version in der Hex-Datei 
auf einer festen Adresse steht.
Ab 0x0c00 beginnt der bootloader, ideal wäre also als Startadresse 
0x0bf8

flash char version[]="V1.02";

geht das irgendwie?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es eine Möglichkeit, in C einen string an eine feste Adresse
>(flash) zu legen?

Mit Krampf geht sowas immer. Ist aber nicht sinnvoll.

>Ein PC-Programm soll den Versionsstand einer Hex-Datei einlesen können,
>um zu ermitteln, ob ein update des angeschlossenen Controllers nötig
>ist.
>flash char version[]="V1.02";

Leg den String doch an den Anfang vom EEProm.
Dann liest du ihn aus der *.eep Datei aus.
Das ist mit Sicherheit einfacher.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Direkt nach den Interrupt-Vektoren kann doch auch ohne Krampf etwas 
untergebracht werden. Bei gleichem Controller ist das dann auch immer 
die gleiche Adresse.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ansonsten versehe doch deinen Versions-String mit einer eindeutigen 
Präambel und greppe in deinem PC-Programm danach.

FWVERSION=1.03

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tja, das hilft mir nicht unbedingt weiter.
EEprom fällt aus, da nur 1 file im update-Fall verschickt werden soll.
Direkt nach den Vektoren gefällt mir auch nicht so richtig, da ich es 
schon erlebt habe, dass nach Compilerupdates da durchaus Änderungen 
eintreten können (nicht benötigte Vektoren werden komplett weggelassen, 
ein reti hingesetzt oder auch ein jmp0), das mag heute kein Problem sein 
- in einem Jahr denkt da keiner mehr dran :-)
Mit Präambel geht es sicher ausreichend sicher, aber wie sähe die 
"Krampf"Lösung einer festen Adresse aus?

Autor: Remo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht denn dagegen einfach die HEX Datei um eine Zeile zu 
erweitern?
Wenn das Programm feststellt, dass ein Update sinnvoll ist, dann kannst 
du die  ergänzte Zeile ja vom PC Programm vor dem Brennen wieder 
entfernen lassen.
Evtl stört sich die "einlesende" SW ja auch nicht dran. wenn du ganz 
hinten an die Datei was anhängst, dann must du es nichtmal entfernen. 
Musst'e halt mal ausprobieren.

Und dann gibts da noch den guten alten Dateinamen.
Also die Version in den Dateinamen der hexdatei verschlüsseln und ab 
damit.

Viel Glück
Remo

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, Dateiname - das ist auch ne Möglichkeit. Muss aber auch händisch 
gepflegt werden...
Werde es erst mal damit machen.

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.