MSP430 / IAR Kickstart: wie Code-Adresse zur Laufzeit ermitteln ?

Gast #2733826
Lesenswert?
• ▲
▼
Hallo,

ich habe die Aufgabe, eine CRC-Prüfung für einen MSP430F2013 mit
IAR Kickstart zu proggen.

Dafür benötigt man bekanntlich die Start- und Endadresse des zu 
prüfenden Speicherbereiches. Ich kann zwar das .map-File nehmen, die 
Adressen ablesen und dann händisch in den C-Code eintragen, aber bei 
einer Änderung muss ich das jedesmal machen.

Geht das nicht auch eleganter ?

Danke schon mal für jede kompetente Antwort !

Gruß

Newbee
#2735030
Lesenswert?
• ▲
▼
Wenn es darum geht, Fehler im Flash festzustellen, dann prüft man den 
kompletten Speicher. Denn jede sich verändernde Zelle ist wichtig.

Wenn es darum geht die Übertragung abzusichern

> Ich kann zwar das .map-File nehmen, die Adressen ablesen und
> dann händisch in den C-Code eintragen, aber bei einer Änderung
> muss ich das jedesmal machen.

Händisch?
Ich denke du bist Programmierer.
Das kann doch nicht so schwer sein, sich ein Programm zu schreiben, 
welches diesen Vorgang automatisiert.

Das einzige was wir Programmierer händisch machen ist, wir holen uns 
eigenhändig einen Kaffee. Das kann man keiner Maschine überlassen.
Gast #2735334
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:

> Wenn es darum geht, Fehler im Flash festzustellen, dann prüft man den
> kompletten Speicher. Denn jede sich verändernde Zelle ist wichtig.
>

Das ist u.U. der falsche Ansatz:
Wenn Teile des Programmspeichers geprüft werden, in dem gar kein
Programmcode vorhanden ist, dann würde ja ein Fehler bei der CRC-Prüfung 
in diesem (leeren) Bereich das System außer Betrieb setzen, obwohl das 
Programm völlig in Ordnung ist.

> Ich denke du bist Programmierer.

Woher willst DU das wissen - ich habe das nicht behauptet.

> Das kann doch nicht so schwer sein, sich ein Programm zu schreiben,
> welches diesen Vorgang automatisiert.

Wenn das so einfach ist, warum offenbarst Du dann Dein wissen nicht ?

Dein Ansatz ist übrigens falsch: das hat weniger mit dem Programm
zu tun, sondern mit den Möglichkeiten, die der Compiler bietet, seine
interne Symboltabelle im Programm zu nutzen.

Gruß

Newbee
#2735530
Lesenswert?
• ▲
▼
Man könnte per Linker Script einen kleinen Bereich definieren (2-Bytes 
doer so), welcher sich ganz am Schluss des Programmes befindet.
Im C-Code braucht man dann nur noch eine const Variable dort 
hineinzuplatzieren und kann dann mit & den Pointer darauf bzw. die 
Speicheradresse ermitteln.
Wahrscheinlich gibt es auch noch elegantere Wege, aber es sollte so 
zumindest funktionieren...
Gast #2736600
Lesenswert?
• ▲
▼
Johnny B. schrieb:

> Man könnte per Linker Script einen kleinen Bereich definieren (2-Bytes
> doer so), welcher sich ganz am Schluss des Programmes befindet.
> Im C-Code braucht man dann nur noch eine const Variable dort
> hineinzuplatzieren und kann dann mit & den Pointer darauf bzw. die
> Speicheradresse ermitteln.
> Wahrscheinlich gibt es auch noch elegantere Wege, aber es sollte so
> zumindest funktionieren...

Hallo Johnny,

endlich eine vernünftige Antwort auf meine Frage !

Deinen Vorschlag werde ich auf jeden Fall mal genauer untersuchen.

Danke !

Gruß

Newbee
Gast #2739988
Lesenswert?
• ▲
▼
spontan schrieb:
> Und auf diese Lösung kommst Du nicht selbst? Das mach ich seit locker 20
> Jahren so. Brauchst nicht prüfen, geht.

> Und auf diese Lösung kommst Du nicht selbst?

Wie mein Nickname schon sagt: "Newbie". Das bedeutet auf deutsch: 
Anfänger.

Wenn nur eine const-Variable definiert ist, habe ich die im besten Fall
die Anfangsadresse des const-Segments - den könnte man natürlich mit 
prüfen.
Aber die Endadresse des Code-Segments habe ich dann immer noch nicht.
Ich muss also immer noch das ganze Code-Segment prüfen - was ich aus den
weiter oben genannten Gründen nicht will.

Ist denn keiner hier im Forum, der IAR als Compiler für den MSP430 
einsetzt ???

Gruß

Newbee

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.