www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Origin adress (16) points backwards in code segment!


Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich die zwei Interupts in der Reihenfolge tausche gibt mir der 
compiler ein Fehler aus, warum macht er das?

.org OVF1addr
        rjmp    timer1_overflow
.org OVF0addr
        rjmp    timer0_overflow

folgendes verwende:

.org OVF0addr
        rjmp    timer0_overflow
.org OVF1addr
        rjmp    timer1_overflow

Beide Timer interupts zusammen Machen mir auch Probleme. Sie
funktionieren irgendwarum nur einzelnd.

+------------------------------------------------------------+
| gavrasm gerd's AVR assembler Version 2.1 (C)2006 by DG4FAC |
+------------------------------------------------------------+
Compiling Source file: empf.asm
-------
Pass:        1
Line: 1
Warning 009: Include defs not necessary, using internal values!
  File: empf.asm, Line: 1
  Source line: .include "m16def.inc"
Line: 9
Error ==> .org OVF1addr
[empf.asm,9] 046: Origin adress (16) points backwards in code segment!
108 lines done.


Danke

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich hat dieser Assembler gewisse Defizite bei der Montage von 
Codesegmenten und läßt deshalb nur ORG-Anweisungen zu, die auf oder 
hinter das Ende des Codesegmentes zeigen.

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schätze mal eher, dass der Assembler es nicht mag wenn die Adresse 
eines "org" niedriger ist als die Adresse des davorstehenden Befehls.

Mit dem Tauschen der Codezeilen werden ja auch die zu den beiden org 
Anweisungen gehörenden Adressen getauscht.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter Werner wrote:
> Ich schätze mal eher, dass der Assembler es nicht mag wenn die Adresse
> eines "org" niedriger ist als die Adresse des davorstehenden Befehls.

Und wodurch unterscheidet sich deine Erkenntnis von dem, was ich eben 
geschrieben habe?

Deutshes Sprach shweres Sprach...

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da bin ich wohl etwas "dezifit" (also nur 1/10 fit).

Für mein Verständnis ist das Ende des Codesegments die höchste belegte 
Adresse und nicht die Adresse der vorangehenden Instruktion.

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.