-         

Ergebnis 1 bis 8 von 8

Thema: Interrupts im Bootloader

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2006
    Beiträge
    10

    Interrupts im Bootloader

    Anzeige

    Hallo

    ich möchte einen Bootloader in Bascom so umschreiben, das ich Interrupts nutzen kann. Komme aber einfach nicht weiter.
    Nun habe ich gelesen, das es möglich ist, im Bootloader auch Interrupts zu nutzen wenn man irgendwelche Register in den Bootloader kopiert. Bin daraus aber nicht schlau geworden. Kann mir da jemand weiterhelfen ?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Naja kopieren muss man da nichts.
    Man muss nur die Interrupt-Vektor-Tabelle auf den Bootloader umleiten.
    Dazu muss man in 2 verschiedenen Registern was ändern.
    Kommt aber auf den Controller an, welche das sind.
    (Bzw. Steht im Datenblatt, wie dieses Verschieben läuft)
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Dann müsste die ISR aber auch in den Loaderbereich
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Also die Bascom Hilfe sagt zumindest:
    You can not use interrupts in your boot loader program as the interrupts will point to the reset vector which is located in the lower section of the flash. When you start to writing pages, you overwrite this part.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Tja, da haben sich Bascom bzw. deren Erschaffer mal wieder nicht richtig informiert... Datenblatt ATMega8: Ab Seite 46 gibts die Interrutps; auf S. 49 steht die Prozedur des Umleitens.

    Biegt man die Interrupts um und legt man die .text-Section des Bootloaders in den Bootloaderbereich, dann liegen sowohl die Vektortabelle als auch der ISR-Code im Bootloaderbereich. Funktioniert wunderbar. Die Frage ist halt nur, ob man mit Bascom Sections an bestimmte stellen legen kann.

    Naja, wieder ein Grund mehr, für sowas C statt Bascom zu verwenden oder in Bascom direkt die Register anzusprechen ohne "vorgefertigte" Befehle.

    Nachtrag: Siehe auch http://www.roboternetz.de/phpBB2/viewtopic.php?t=51271
    #ifndef MfG
    #define MfG

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    stellt sich halt auch die Frage nach der Sinnhaftigkeit des Unterfangens.
    Was willst Du damit erreichen?
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    28.02.2006
    Beiträge
    10
    Danke für die Antworten.
    Es handelt sich bei meinem Problem einmal um einen Bootloader mit einem MCP2515 CAN-Controller. Da kann man mit Interrupts besser arbeiten.
    Zum zweiten möchte ich Programmroutinen vor Zugriff und kopieren schützen, und da dachte ich man könnte sie mit in den Bootloaderbereich packen.
    Oder kennt ihr da andere Möglichkeiten ?

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für den Schutz gegen Auslesen und Koplieren gibt es die Lockbits. Der Schutz ist nicht perfekt, aber do so dass man mit Hobbymitteln wohl nicht drankommt.

Berechtigungen

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