MEGA128-USB AvrBooter

rangar

Neues Mitglied
16. Sep. 2008
49
0
0
Voerde
Sprachen
  1. ANSI C
  2. Assembler
Hallo,

ich möchte kurz das Kommandozeilen Tool AvrBooter vorstellen und würde mich freuen, wenn jemand das Proggi mal antesten würde.

Kurzbeschreibung
AvrBooter ist ein Kommandozeilen Tool für die Programmierung des MEGA128-USB Boards.
Über die USB Schnittstelle kann auf das Flash und EEPROM des Microcontrollers zugegriffen werden.

AvrBooter.exe -> PC Kommandozeilen Programm
AvrBooterFw.hex -> Bootloader Firmware für den AtMega128

Main Features:
- Flash Schreiben / Lesen / Löschen / Verify
- Eeprom Schreiben / Lesen / Löschen / Verify
- Anbindung über USB Schnitstelle

Kommandozeilen Parameter:
Code:
  --flash-read [Datei]        Flash auslesen und in Datei speichern, *.bin Datei
  --flash-write [Datei]       Flash programmieren, *.bin oder *.hex Datei
  --flash-erase               Flash löschen, nur Applikations Bereich
  --flash-verify              Verifizieren der Flash Daten nach der Programmierung
  --eeprom-read [Datei]       Eeprom auslesen und in Datei speichern, *.bin Datei
  --eeprom-write [Datei]      Eeprom programmieren, *.bin oder *.hex Datei
  --eeprom-erase              Eeprom löschen
  --eeprom-verify             Verifizieren der Eeprom Daten nach der Programmierung
  --start-app                 Starten der Appliaktion (jmp 0x0000), nach dem Aufträge abgearbeitet sind
  --usb-info                  USB Device Daten ausgeben
  --verbose                   mehr Meldungen Ausgaben
  -?                          diese Hilfe anzeigen

Programm Laufzeiten:

Flash 128kb Lesen : 8,06s
Flash 124kB Schreiben : 15,82s
Flash 124kB Löschen : 1,06s

EEPROM 4kb Lesen : 0,31s
EEPROM 4kb Schreiben : 34,89s
EEPROM 4kb Löschen : 33,67s

Bootloader Firmware
Für den Bootloader ist eine Größe von 4 kByte reserviert.
Die Einstellungen der Fuse Bits im Auslieferungszustand des Boards passen hierzu NICHT, d.h. die Fuses müssen umprogrammiert werden.

Fuse Einstellung für 1024 Words Bootloader (Auslieferungszustand):
BOOTSZ1 = 1
BOOTSZ0 = 0

Fuse Einstellung für 2048 Words Bootloader:
BOOTSZ1 = 0
BOOTSZ0 = 1

Daraus resultieren folgende Einstellungen für AvrBooter:
Fuse Byte High 0x0C (Auslieferungszustand = 0x0A)
Fuse Byte Low 0xFF (Auslieferungszustand = 0xFF)
Extended Fuse Byte 0xFF (Auslieferungszustand = 0x0FF)


Die Umprogrammierung der Fuse Bytes kann z.B. via JTAG mit der "jtagice.exe" von Atmel vorgenommen werden
C:\Program Files\Atmel\AVR Tools\JTAGICE\jtagice.exe -f0AFF -EFF

Aktivierung des Bootloaders
über Bootpin (von aussen)
Wird der EnforceBootloaderPin (EB-Pin) bei Reset auf LOW (=Masse) gelegt, startet der Bootloader.

über Applikationsprogramm (durch AVR Programm)
Der Bootloader kann direkt gestartet werden, in dem zu der Adresse BOOTLOADER_START_ADR gesprungen wird.
Es ist keine Initialisierung des AVR UART notwendig.
Der EB-Pin wird hier nicht ausgewertet, der Bootloader startet dann sofort!

GCC Beispiel Code
Code:
// Function Pointer anlegen
void (*StartBootloader)(void)=(void*)(BOOTLOADER_START_ADR);
// Funktion aufrufen
StartBootloader()

PC Programm
Die Programmierung erfolgt über die Auswertung der entsprechenden Programmparameter.
Eine Hilfe Ausgabe in der Konsole wird bei Übergabeparameter "-?" angezeigt (AvrBooter -?)

Beispiele

# Flash löschen, dann Flash schreiben, dann die Daten verifizieren und anschließend das AVR Programm starten
Code:
avrbooter --flash-erase --flash-write C:\MeineProjekte\Roboter\robbi.hex --flash-verify --start-app
# Eeprom löschen, dann Eeprom schreiben,und anschließend die Daten verifizieren
Code:
avrbooter --eeprom-erase --eeprom-write C:\MeineProjekte\Roboter\robbi_eeprom.hex --eeprom-verify

Die Beispiele können auch kombiniert werden, d.h. Flash und Eeprom Handling können in einem Aufruf erledigt werden

History
AvrBooter_Release_001 beeinhaltet
AvrBooter.exe - v1.1.0 22.11.2008 - erste öffentliche Version
AvrBooterFw.hex - v1.01 22.11.2008 - erste öffentliche Version
BOOTLOADER_START_ADR = 0xF83B, EB-Pin= PORTG.BIT4 (PG4)
 

Anhänge

  • avrbooter_release_001.zip
    66,6 KB · Aufrufe: 38
Hallo Rangar (Burkhard),

danke für deinen Bootloader und die Programmiersoftware. Nun läßt sich auch das EEPROM programmieren, dies hat bei meiner Lösung ja noch gefehlt. Die Programmierzeiten hören sich auch gut an!

Ich werden am Wochenende den Bootloader gleich austesten und hier berichten.

Schönen Abend noch,
Dirk
:ciao:
 
Hallo,

hier die neue Version v1.1.1 vom AvrBooter.

Bugfixes:

  • AVR Applikation auch nach Verify starten (--app-start nach --flash-verify)

Infos zum Programm und Download gibt es jetzt auch hier: AvrBooter Homepage

Gruß
rangar
 

Anhänge

  • avrbooter_v1.1.1.zip
    66 KB · Aufrufe: 35

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)