mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interruptvektoren in spezielle section linken


Autor: Martin H. (e-hermes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab nen kleinen bootloader geschrieben fuer den at90usb1287.

Die Interruptvektoren linke ich nun an Adresse 0x0000. Den restlichen 
Code linke ich an Adresse 0xf000 auf folgende Art und Weise:

  .text :
  {
     int.o(.vectors)
     . = 0xf000;
     int.o(.isr) *(.text) *(.init4) *(.text.avr-libc) *(.fini0)
  } > text

Wuerde jetzt allerdings lieber eine neue section .vec fuer die Vektoren 
einfuehren und die .text section an 0xf000 linken durch folgendes 
Skript:


MEMORY
{
  vec         (rx)      : ORIGIN = 0x0000, LENGTH = 0x0090
  text        (rx)      : ORIGIN = 0xf000, LENGTH = 0x0fff
  data        (rw!x)    : ORIGIN = 0x800060, LENGTH = 0xffa0
  eeprom      (rw!x)    : ORIGIN = 0x810000, LENGTH = 64K
  fuse        (rw!x)    : ORIGIN = 0x820000, LENGTH = 1K
  lock        (rw!x)    : ORIGIN = 0x830000, LENGTH = 1K
  signature   (rw!x)    : ORIGIN = 0x840000, LENGTH = 1K
}

SECTIONS
{
.vec :
  {
    int.o(.vectors)
  } > vec
  .text :
  {
     int.o(.isr) *(.text) *(.init4) *(.text.avr-libc) *(.fini0)
  } > text
...

Dann allerdings habe ich folgendes Problem:

Nach der Initialisierung der UART und USB Interfaces enable ich die 
Interrupts (sei). Der Chip fuehrt gleich nach dieser Instruktion ein 
reset aus.

Hat jemand eine Idee?

Viele Gruesse

Martin

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die Interruptvektoren linke ich nun an Adresse 0x0000.

Ich würde 0x0002 nehmen. Ein Interruptvektor hat auf dem
Resetvektor nichts zu suchen.

Autor: Martin H. (e-hermes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Auf der Adresse liegt natuerlich der Resetvektor. Wahr sprachlich zu 
ungenau. Entschuldige.

Gruss Martin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.