Bootloader-Test; großes Hex-File erzeugen

OP #4827388
Lesenswert?
• ▲
▼
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 #4827420
Lesenswert?
• ▲
▼
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 #4827434
Lesenswert?
• ▲
▼
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 #4827574
Lesenswert?
• ▲
▼
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

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.