- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 10

Thema: AVR: Im Bootloader eine Funktion an eine bestimmte Position setzen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Ein anderer Namen der Sektion bringt keine Änderung. Selbstverständlich ist diese auch definiert, ansonsten würde es eine andere Fehlermeldung geben. Und Sie ist passend platziert. Es wird ja nicht bemängelt, dass Sie nicht reinpasst, sondern dass Sie überlappt. Ich habe es auch mit einem Projekt ohne Bootloader versucht. Hier funktioniert die PLatzierung und ich kann dort ich in der Hex-Datei sehen, dass die Funktion exakt an dieser Stelle platziert ist, und auch dass Sie 74 Bytes im Flash benötigt. Wie Eingangs geschrieben, ist die definierte Adresse der Sektion 7F80 = 0xFF00. Das bedeutet, ich habe in in der Section 256 Bytes Platz. --> Ausreichend.

    Hier ein Auszug aus der map-datei:

    .bootloader_end
    0x0000f418 0x82
    .bootloader_end
    0x0000f418 0x82 CAN_bootloader.o
    0x0000f418 write_flash

    Da scheint was nicht zu passen. Warum bin ich aber überfragt.

    - - - Aktualisiert - - -

    Kommando zurück! Der Name der Sektion war tatsächlich die Ursache. Ich habe beim testweisen ändern nicht bemerkt, dass sich die Fehlermeldung ändert. Es war nämlich noch ein weiterer Fehler im Code. Mit einem anderen Namen für die Sektion funktioniert es nun. Vielen Dank!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    als kleiner tipp, wenn du eine zentrale statemachine und passende miniatur subroutinen hast die einfach nur das gerät "am leben halten" kannst du sie aus dem hauptprogamm in den bootloader verschieben, sodass dein gerät nicht hirntot scheint während es sich selber umflasht

    um dabei zusätzliche zustände oder funktionen im normalbetrieb bereitstellen zu können habe cih mich damals einer handgestrickten sprungtabelle bedient die cih beim starten in den RAM gelegt habe

    die statemachine ist quasi nichts weiter als ein verschachtelter switch case der auf adressen im RAM zugreift um je anch state die notwendigen funktionen auszuführen, sofern sie im boot bereich liegen oder alternativ eine "verweigerung" oder "busy" zurück zu geben wenn ich gleichzeitig im NVM arbeite und eine aktion aus dem hauptprogramm angefordert wird
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. Prüfen ob Taster eine bestimmte Zeit unterbrechungsfrei gedrückt ist
    Von jcrypter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 31.08.2012, 07:42
  2. int0 eine bestimmte Zeit abschalten
    Von umbras im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 26.09.2008, 19:59
  3. robby für eine bestimmte zeit fahren lassen
    Von 3dfreak im Forum Robby CCRP5
    Antworten: 3
    Letzter Beitrag: 31.07.2007, 16:45
  4. Taste eine bestimmte Zeit abfragen
    Von picprogger im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 14.03.2007, 21:29
  5. Antworten: 5
    Letzter Beitrag: 02.02.2007, 10:03

Berechtigungen

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

Labornetzteil AliExpress