Forum: Mikrocontroller und Digitale Elektronik Missing lines in Hex-File for Bootloader UC3


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Boot_Prog (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich programmiere momentan eine Bootloaderanwendung für einen 
AT32UC3C0512C (auf der Arbeit als Werkstudent, daher darf ich keinen 
Code teilen). Der Bootloader erhält an sich ein Hex-File und schreibt 
dieses in den Flash. Das funktioniert soweit auch ohne Probleme. Das 
Hex-File entnehme ich direkt aus Atmel Studio 7. Innerhalb des Hex-Files 
ist mir aber ein Addresssprung aufgefallen:

:085B400091260E9CCC7ED822B8
:105C0000C0080000C0080000C0080000C008000074

Wenn ich das Programm also über den Bootloader (mit dem Hex-File) in den 
Flash schreibe fehlen an dieser Stelle Zeilen und im Flash stehen dann 
nur 0xF's (Grundzustand des Flashs). Programmiere ich den Flash aber 
mittels JTAG (also komplett ohne Bootloader) wird in den Zeilen Code 
eingefügt.
Programmiere ich den Flash nun wieder über den Bootloader und füge die 
Zeilen manuell ein, funktioniert das Programm ohne Probleme (ansonsten 
natürlich nicht).
Ich Frage mich jetzt woher der Code kommt. Ich finde in keinem 
Output-File Informationen über diese Zeilen, nur das die darauf 
folgenden Zeilen (ab Adresse 0x5C00) die Exceptions enthalten.

(Linker benutze ich keine in meinem Programm)
Daher meine Fragen:
1) Woher könnte der Code kommen?
2) Darf ich zur Programmierung mit dem Bootloader evtl. nicht das 
Hex-File verwenden?
3) Wie kann ich meinen Bootloader so anpassen, dass der Code 
miteingefügt wird? (Dafür müsste ich natürlich wissen woher er kommt)

Ich hoffe ihr könnt mir helfen, ich komme dabei nicht weiter.

Mit freundlichen Grüßen

Boot_Prog

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
0 lesenswert
nicht lesenswert
Boot_Prog schrieb:
>... Innerhalb des Hex-Files
> ist mir aber ein Addresssprung aufgefallen:
>
> :085B400091260E9CCC7ED822B8
> :105C0000C0080000C0080000C0080000C008000074
>
> Wenn ich das Programm also über den Bootloader (mit dem Hex-File) in den
> Flash schreibe fehlen an dieser Stelle Zeilen und im Flash stehen dann
> nur 0xF's (Grundzustand des Flashs). Programmiere ich den Flash aber
> mittels JTAG (also komplett ohne Bootloader) wird in den Zeilen Code
> eingefügt.

Wo sollen den diese Daten, die Du nach dem Flashen via JTAG siehst 
herkommen? Wenn Du das selbe hex file nimmst, zum flashen via JTAG, dann 
müsste da nach den flashen auch eine Lücke sein, es seiden, die Daten in 
der Lücke stehen an einer anderen Stelle in der Datei.

> Ich Frage mich jetzt woher der Code kommt. Ich finde in keinem
> Output-File Informationen über diese Zeilen, nur das die darauf
> folgenden Zeilen (ab Adresse 0x5C00) die Exceptions enthalten.

Hast Du mal die Checksummen der Datei überprüft? Womit guckst Du Dir das 
Hex-File an? Hast Du mal das Hex-File in ein Bin-File konvertiert und 
Dir das angeguckt?

> (Linker benutze ich keine in meinem Programm)
> Daher meine Fragen:
> 1) Woher könnte der Code kommen?

Der könnte ggf. schon vorher da gestanden haben. Ist das evtl. irgend 
ein spezieller Konfigurationsbereich? Schon mal im Datenblatt 
nachgeguckt?

> 2) Darf ich zur Programmierung mit dem Bootloader evtl. nicht das
> Hex-File verwenden?

Doch, dazu ist es da.

> 3) Wie kann ich meinen Bootloader so anpassen, dass der Code
> miteingefügt wird? (Dafür müsste ich natürlich wissen woher er kommt)

Heraus bekommen, woher diese Zauberdaten kommen.

mfg Torsten

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]
  • [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.