Forum: Mikrocontroller und Digitale Elektronik Flash ein Paar Bytes lesen


von Zepp (Gast)


Lesenswert?

Hallo,
ich programmiere gerade für ein AVR einen Bootloader.
Jetzt gibt es halt das Problem mit den ersten starten nach der 
Programmierung, wo halt noch kein Programm da ist.
Ich würde jetzt gerne Testen ob ein Programm bei der Adresse 0000 
vorhanden ist oder nicht.
Dazu habe ich mir gedacht ich lese ein Paar Bytes ab der Adresse 0x0000,
und prüfe ob diese alle 0xFF sind. Wenn alle FF sind, dann ist kein 
Programm da.

Meine Frage dazu ist, wie lese ich ein Paar Bytes aus dem Flash ab der 
Adreese 0x000?

von Amateur (Gast)


Lesenswert?

Wer liest hier?

Du, mittels Auslesens z.B. via ISP? Oder der Bootloader?

von Zepp (Gast)


Lesenswert?

@Amateur
Im Bootloader zur Laufzeit.
Da der AVR beim Starten via Spannung aus/an immer erst im Bootloader 
startet.
Benötige ich das um zu bestimmen, ob sofort zum eigendlichen Programm 
gesprungen werden soll oder ob im Bootloader Modus verblieben werden 
soll.


Ich hatte auch noch vergessen zu schreiben ich Programmiere in C.
Und ich habe mich bei meinem Bootloader an folgenden Artikel Orientiert
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung

von nga (Gast)


Lesenswert?

Du willst also, wenn es ein Programm gibt, direkt dorthinspringen. Und 
wann willst du flashen? Also wenn schon ein prog drauf ist.

von Karl H. (kbuchegg)


Lesenswert?

Zepp schrieb:

> Meine Frage dazu ist, wie lese ich ein Paar Bytes aus dem Flash ab der
> Adreese 0x000?


pgm_read_byte funktioniert nicht?

AVR-GCC-Tutorial (Abschnitt 14.2)

von Zepp (Gast)


Lesenswert?

@nga
Ich habe zusätzlich noch im EEPROM ein Flag, welches angibt ob im 
Bootloder Modus verblieben werden soll. Dieses wird im normalen Programm 
gesetzt. Nur beim ersten Programmieren ist halt noch nichts im EEPROM 
drin.

Ich habe also Folgende Bedinnung um im Bootloader Modus zu verbleinen

Wenn
kein Programm bei der Adresse 0000 vorhanden ist
oder
das Bootloader Flag (EEPROM) gesetzt ist

von Zepp (Gast)


Lesenswert?

@Karl Heinz
Das könnste genau das sein was ich gesucht habe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.