- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 25

Thema: UART-Bootloader in Bascom AVR

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.01.2010
    Ort
    Deutschland
    Beiträge
    739
    Warum besitz der den schon einen Bootloader??

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Nein. Frische Chips besitzen noch keinen Bootloader. Den Bootloader musst du erst per ISP oder JTAG aufspielen und anschließend sitzt er dann im Chip und dann kannst du diesen Bootloader zum flashen verwenden.
    Wenn du keinen Bootloader im Chip drin hast kannst du auch keine Verbindung zu diesem aufbauen

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.01.2010
    Ort
    Deutschland
    Beiträge
    739
    Aber ich habe den von Bascom AVR drauf gespielt und die Fusebits eingestellt und als Programmer in Bascom AVR den "MCS Bootloader" ausgewählt und dann kommt da immer dieses Fenster.
    Kann man den Bootloader auch wieder löschen??

    Mfg
    bnitram

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Kann man den Bootloader auch wieder löschen??
    Ja!

    Fuses zurückstellen, neues Programm drauf, fertig!

    MfG
    Rone

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.01.2010
    Ort
    Deutschland
    Beiträge
    739
    Ah,
    Danke Rone.
    Dann werde ich das mal machen und es nochmal versuchen. Vieleicht klapps ja irrgentwann.....

    Mfg
    bnitram

    Edit:
    Heißt brennen= übertragen oder gibs es da eine andere Methode??

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Ja brennen heißt übertragen oder flashen

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    50
    Beiträge
    381
    hi,

    wenn Du den Bootloader von Bascom nehmen willst so musst Du bei den Fusebit für die Bootloadergröße 1024 (Fusebit High FE) einstellen. Mit dieser Einstellung sagst Du dem ATmega zu welcher Adresser er nach einem Reset springen soll und den Code, der darin steht, ausführen soll. Dann musst Du noch mit den Fusebit High D sagen, dass er nach dem Reset nicht an der Adresse $0000 beginnen soll sonder bei nem Mega 8 bei $c00.
    Danach musst Du den Bootloader per ISP auf den Mega übertragen. Der Bootloader sitzt am Ende vom FlashRom und hier liegen die Gefahren! Dein Programm darf jetzt nicht mehr 8k groß sein sonder 8k minus den 1024byte vom Bootloader. Ist Dein Programm größer, überschreibst Du den Bootloader. Das Programm wird nach dem Brennen laufen aber Dein Bootloader wird nicht mehr funktionieren!!!
    Wenn Du den Bootloader nicht mehr benötigst, dann kannst Du Deine Einstellungen der Fusebits so lassen und immer noch per ISP flashen.
    Wie funktioniert der Bootloader....:

    1. nach einem Reset springt der Programmzeiger zu dem Bootloader
    2. der Bootloader wartete nun auf ein Zeichen=====>>>>> 123 von der seriellen schnittstelle
    3. in einer Schleife fragt er nun 5 mal ab, ob etwas ankommt, kommt nichts dann springt er nach $0000 und beginnt mit dem Programmablauf
    4. bekommt er nun ein 123 dann wird der Bootloadercode geflasht


    nun kannst Du in Deinem Code auch den Interrupt der Seriellen Schnittstelle dazu nutzen, um ohne ein Reset den Programmcode zu flashen:

    Code:
    'Interrupt declarieren
    Enable  Urxc                                                                                                                                            'urxc1 für com2
    On Urxc Rxd_isr
    Dim Rx_data As Byte
    
    'Interruptroutine
    Rxd_isr:                                                                                                                                               '
    Rx_data =  Udr0                                                                                                                                         'Zeichen aus UART1 holen; udr1 = UART2
    If Rx_data = 123  Then                                                                                                                                  'vom MCS-Programmer geschickte "123" empfangen?
       Goto &H1800
    End If
    Aktivierst Du jetzt über Bascom den Upload des Programms über die Serielle Schnittstelle so springt Dein Programm nach dem Empfang des Rx-data "123" an die Speicherstelle wo der Bootloader liegt und das Programm was darin steht übernimmt alles weitere.

    Noch ein kleiner Tipp von mir:

    in dem Bootloadercode in Bascom musst Du folgendes einstellen:
    * dein verwendeter Quarz
    * die Baudrate mit der Du die Schnittstelle betreiben willst
    ==>> die baudeinstellungen musst Du dann auch in Deinem Programmcode so nutzen und natürlich auch als Parameter in den Einstellungen vom Programmierfenster!

    Danach den Code compelieren und dann per ISP flashen...

    Viel Spassssss

    MAT

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von bnitram Beitrag anzeigen
    Ah,
    Danke Rone.
    Dann werde ich das mal machen und es nochmal versuchen. Vieleicht klapps ja irrgentwann.....

    Mfg
    bnitram

    Edit:
    Heißt brennen= übertragen oder gibs es da eine andere Methode??
    "Brennen" stammt noch aus alten Zeiten als tatsächlich kleine "Sicherungen" beim Proggen durchgebrannt wurden um die nötige Logik Funktion zu erstellen.

    Das muss natürlich auch irgendwie in den Chip übertragen werden. Je nach Programmier Adapter giebt es verschiedene Möglichkeiten. Um einen Bootloader zu nutzen, muss dieser halt erst einmal klassisch = per ISP in den Chip. erst danach regelt der im Chip gespeicherte Bootloader das Laden über RS232.

    Gruß Richard

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.01.2010
    Ort
    Deutschland
    Beiträge
    739
    Danke mat-sche für deine ausführliche Erklärung, aber wenn ich da in irrgendeiner Bootloader Datei von Bascom herrumschreibe gibt es immer Fehler.
    Hat vielleicht irrgendwer einen Funktionierenden Bootloader im Bascom für den ATmega8???
    (8Mhz/9600Baud/Com4)

    Danke!

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von bnitram Beitrag anzeigen
    Aber ich habe den von Bascom AVR drauf gespielt und die Fusebits eingestellt und als Programmer in Bascom AVR den "MCS Bootloader" ausgewählt und dann kommt da immer dieses Fenster.
    Kann man den Bootloader auch wieder löschen??

    Mfg
    bnitram
    Den ersten Bootloader MUSS man per ISP R
    Programmer in den Chip "brennn". Erst danach kann man diee Bootöoader benutzen. Sch.....warum ist allesunterstrichen?????

    Gruß Richard

Ähnliche Themen

  1. Bascom Bootloader
    Von fiatx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 21.03.2011, 10:12
  2. BASCOM 2te UART oder software UART
    Von Snecx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 18.02.2009, 23:25
  3. bascom bootloader problem
    Von Rasieel im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 20.10.2008, 19:56
  4. bascom bootloader installiern
    Von aphex-world im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 21.09.2008, 17:24
  5. BASCOM-Bootloader M8 AN#141
    Von stupsi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 17.12.2005, 17:53

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests