- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: BOOTLOADER - Größe ermitteln

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201

    BOOTLOADER - Größe ermitteln

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich möchte meinem Hauptprogramm die größe meines Bootloaders mitteilen.

    Code:
    $loadersize=????
    Wie kann ich diese ermitteln/ablesen?

    Vielen Dank

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von dj_cyborg Beitrag anzeigen
    Wie kann ich diese ermitteln/ablesen?
    Das sollte in der Dokumentation des von dir verwendeten Bootloaders stehen. Alleine schon, weil du ja auch die entsprechenden Fusebits setzen musst, damit der AVR nach einem Reset auch die Ausführung beim Bootloader (der ziemlich am Ende des Flashspeichers abgelegt wird) beginnt und nicht bei der regulären Startadresse 0x00.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo Markus,

    und Danke für deine Antwort.

    Ich benutze:
    -Atmega88
    -den MCS Bascom Bootloader
    -lt. Datenblatt Seite 281 sollte der Beginn des Bootbereichs bei 0xC00 liegen. Was auch im Bootloader steht und ich auch beim Software Reset verwende.

    Aber, wenn ich die Loadersize auf 1024 stelle, wird der Bootloader teilweise vom Hauptprogramm überschrieben. Bei 2048 erhalte ich die Meldung von Bascom das ich das Speicherlimit überschritten habe.

    Aber 2048 deckt sich doch nicht mit dem Datenblatt, oder sehe ich da was falsch?

    Vielen Dank

    mfG
    Mario
    Geändert von dj_cyborg (10.05.2014 um 14:13 Uhr)
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von dj_cyborg Beitrag anzeigen
    Aber, wenn ich die Loadersize auf 1024 stelle, wird der Bootloader teilweise vom Hauptprogramm überschrieben. Bei 2048 erhalte ich die Meldung von Bascom das ich das Speicherlimit überschritten habe.
    Laut der von dir verlinkten BASCOM-Doku (Direktlink) ist der Bootloader tatsächlich 1024 Words groß. Was die Doku aber nicht verrät: Wird loadersize in Bytes oder in Words angegeben? Wenn dein Programm den Bootloader überschreibt, gehe ich fast davon aus, dass es von sich aus zu viel Platz benötigt um zusammen mit dem Bootloader auf den AVR zu passen. Eigentlich sollte der Bootloader aber verhindern dass er selbst überschrieben wird ...

    Wie groß ist dein Programm denn ohne Bootloader?

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo Markus,

    und Danke für deine Antwort.

    Die Programmgröße kann ich gerade nicht nachschauen, mach ich aber nachher.

    In meinem Link in der Bascom-Hilfe steht unten im Code-Bsp.:

    Code:
    ...
    #if Loaderchip = 88                                         'Mega88
      $loader = $c00                                         'this address you can find in the datasheet
      'the loader address is the same as the boot vector address
      Const Maxwordbit = 5
      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    #endif
     
    #if Loaderchip = 168                                       'Mega168
      $loader = $1c00                                         'this address you can find in the datasheet
      'the loader address is the same as the boot vector address
      Const Maxwordbit = 6
      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    #endif
     
    #if Loaderchip = 32                                         ' Mega32
      $loader = $3c00                                         ' 1024 words
      Const Maxwordbit = 6                                   'Z6 is maximum bit                                   '
      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    #endif
    #if Loaderchip = 8                                         ' Mega8
      $loader = $c00                                         ' 1024 words
      Const Maxwordbit = 5                                   'Z5 is maximum bit                                   '
      Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    #endif
    ...
    zu sehen ist hierbei das beim Mega88 & 168 in der Bemerkung ein Verweis auf das Datenblatt steht. Bei allen anderen Chips steht gleich "1024 words" dahinter. Daher hatte ich die Vermutung das es beim M88 & 168er eine Besonderheit gibt. Aber für mich sagt das Datenblatt auch 1024 aus.

    Laut der von dir verlinkten BASCOM-Doku (Direktlink) ist der Bootloader tatsächlich 1024 Words groß. Was die Doku aber nicht verrät: Wird loadersize in Bytes oder in Words angegeben?...
    Die Angabe sollte (lt. anderen Foren) in WORD sein.

    Wenn dein Programm den Bootloader überschreibt, gehe ich fast davon aus, dass es von sich aus zu viel Platz benötigt um zusammen mit dem Bootloader auf den AVR zu passen. Eigentlich sollte der Bootloader aber verhindern dass er selbst überschrieben wird ...
    Meiner Meinung nach ist die Loadersize-Angabe für die Ermittlung der Gesamtgröße und Sicherung des Bootloaderbereichts da.

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

Ähnliche Themen

  1. Eagle Layout Größe
    Von hacker im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 6
    Letzter Beitrag: 26.05.2009, 16:03
  2. Größe von Int
    Von Nerb im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 07.04.2008, 02:30
  3. IR: Größe des Gegenstandes?
    Von frankne im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 10.06.2007, 11:48
  4. Größe eines Programmes unter MPLAB ermitteln
    Von SteffenJ im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 30.06.2006, 14:03
  5. Zahnrad-Größe
    Von Johannes im Forum Mechanik
    Antworten: 20
    Letzter Beitrag: 16.11.2004, 15:16

Stichworte

Berechtigungen

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

Labornetzteil AliExpress