Bootloader-Test; großes Hex-File erzeugen

OP #4827388
Hallo,

ich habe für ein Projekt den Atmel-Bootloader,
Link:
www.atmel.com/images/Atmel-8242-XMEGA-Boot-Loader-Quick-Start-Guide_Appl 
icationNote_AVR1605.pdf

angepasst und eine eigene PC-Software zum Flashen geschrieben. Um das 
ganze für Controller mit Flash > 64k zu testen muss ich irgendwie ein 
Hex-File erzeugen, das etwas Sinnvolles macht (UART-Ausgabe, Blinken 
oder was auch immer) und das auch noch groß genug ist, damit im Hex-File 
ein Record mit Typ 2 auftaucht, also mehr als 64k Programmspeicher 
belegt. Gibt es ein probates Mittel, mit wenig Aufwand viel Speicher zu 
verbrauchen, ohne tausend mal

1
uart_puts(PSTR("kjhkjhkjhkhkjh"));

zuschreiben?

Grüße, Alex
Gast
Hallo,

schau dir doch mal http://srecord.sourceforge.net an. Damit solltest du 
hoffentlich erreichen können, was du willst.

Ich würde vorschlagen mit -random-fill Daten nach den eigentlich 
Instruktionen erzeugen und mit deinem Bootloader hochladen. 
Anschliessend kannst du den Speicher wieder über den Programmer auslesen 
und miteinander vergleichen.

CU,
Jay
Gast
Einfach ein großes Array anlegen:
1
#include <stdio.h>
2

3
#define A B B B B B B B B B B B B B B B
4
#define B C C C C C C C C C C C C C C C
5
#define C D D D D D D D D D D D D D D D
6
#define D E E E E E E E E E E E E E E E
7
#define E F F F F F F F F F F F F F F F
8
#define F G G G G G G G G G G G G G G G
9
#define G 0xabcd,
10

11
int main()
12
{
13
    int foo[] = {A 0};
14
    /* ... */
15
}
Gast
Alexander H. schrieb:
> danke für den Hinweis. Allerdings hab ich das noch nie eingebunden.
> Kannst Du mit einen Tipp bzw. Link nennen, wie das funktioniert?

Unter Linux oder Cygwin gibt es dafür das Tool "xxd". Mit xxd -i kann 
man C-include-Files aus Binärdaten erzeugen, die man einfach mit 
#include in den Source einbindet.

Damit kann man außerdem (konstante) Dateien einbinden, ohne ein 
Dateisystem zu brauchen. Die spricht man ganz einfach als char-Array an. 
xxd legt außerdem eine weitere Variable mit der Länge des Arrays an, so 
daß man die Datei auch aktualisieren kann (zur Compilierzeit), ohne daß 
man den Rest des Sourcecodes ändern muß, wenn man die Arraylänge über 
diese Variable abfragt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.