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:
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
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
# Eeprom löschen, dann Eeprom schreiben,und anschließend die Daten verifizieren
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)
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
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)