Bootloader für mega2560

Gast #347909
Lesenswert?
• ▲
▼
Guten Abend!

Hat jemand von euch schonmal den Bootloader aus der AppNote 109 von
Atmel für den 2560 probiert? Dort in der Zip-Datei ist ein Verzeichnis
IAR für den 2560.. Läuft das zusammen mit dem in AppNote  911
vorgestellten OpenSource Programmer?

Kann mir da jemand speziell zum 2560 weiterhelfen? Werde das ganze
morgen wohl mal testen, allerdings muss ich es morgen erstmal in
Codevision portieren.

Schönen Abend

Daniel
Gast #347911
Lesenswert?
• ▲
▼
Habe mir den Code mal genauer angesehn, allerdings sind mir diese Dinge
hier schleiderhaft.

Wo kommen beim IAR oder GCC die Dinge wie __AddrToZByteToSPMCR_LPM,
__DataToR0ByteToSPMCR_SPM, __load_program_memory,
__extended_load_program_memory, her?

Habe leider kein GCC oder IAR,um das alles mal nachvollziehen zu
können.

Hat jemand schon mal einen Bootloader in Codevision geschrieben?


#define _GET_LOCK_BITS() __AddrToZByteToSPMCR_LPM( (void __flash *)
0x0001, 0x09 )
#define _GET_LOW_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash *)
0x0000, 0x09 )
#define _GET_HIGH_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash *)
0x0003, 0x09 )
#define _GET_EXTENDED_FUSES() __AddrToZByteToSPMCR_LPM( (void __flash
*) 0x0002, 0x09 )
#define _SET_LOCK_BITS(data) __DataToR0ByteToSPMCR_SPM( data, 0x09 )
#define _ENABLE_RWW_SECTION() __DataToR0ByteToSPMCR_SPM( 0x00, 0x11 )

#define _WAIT_FOR_SPM() while( SPMCR_REG & (1<<SPMEN) );

#ifndef LARGE_MEMORY
  #define _LOAD_PROGRAM_MEMORY(addr) __load_program_memory( (const
unsigned char __flash *) (addr) )
  #define _FILL_TEMP_WORD(addr,data)
__AddrToZWordToR1R0ByteToSPMCR_SPM( (void __flash *) (addr), data, 0x01
)
  #define _PAGE_ERASE(addr) __AddrToZByteToSPMCR_SPM( (void __flash *)
(addr), 0x03 )
  #define _PAGE_WRITE(addr) __AddrToZByteToSPMCR_SPM( (void __flash *)
(addr), 0x05 )
#else
  #define _LOAD_PROGRAM_MEMORY(addr) __extended_load_program_memory(
(const unsigned char __farflash *) (addr) )
  #define _FILL_TEMP_WORD(addr,data)
__AddrToZ24WordToR1R0ByteToSPMCR_SPM( (void __farflash *) (addr), data,
0x01 )
  #define _PAGE_ERASE(addr) __AddrToZ24ByteToSPMCR_SPM( (void
__farflash *) (addr), 0x03 )
  #define _PAGE_WRITE(addr) __AddrToZ24ByteToSPMCR_SPM( (void
__farflash *) (addr), 0x05 )
#endif

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.