mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sram und assembler auf atmega128


Autor: Thomas Mohrs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo microcontrollerforum,

wegen einer Registerknappheit wollte ich auf das SRAM des mega128
von AVR zurückgreifen. Um STS und LDS komfortabel nutzen zu koennen
habe ich auf euere prima Tutorial zurückgegriffen und im Datensegment
Variablen deklariert. Leider musste ich feststellen das dies ab einer
Adresse von 0x60 bei meinem Programm nicht so richtig funktionierte.
Ich hatte dann die vorher angelgeten .db's in Verdacht und erhöhte nach
Gutduenken die Startaddresse auf 0x90. Jetzt Funktionierte es. Meine 
Frage
ist jetzt wie wohl der Zusammenhang zwischen Anzahl der .db Bytes und 
der
Verschiebung der org-Addresse ist. Gibt es hier auch so etwas wie 
Wortgrenzen (Gerade Anzahl von Bytes) wie
bei der SPS ? Also am liebsten hätte ich eine Formel wie :
nimm die anzahl der Bytes und addiere sie zu dem Hexwert der orgaddresse 
0x60
hinzu oder so.

hier ein codeausriss:

ret


Text0:
.db   " Hallo Bitz "

Text1:
.db   " Hallo Lotti"


.DSEG                       ; das Folgende kommt ins SRAM
 .org 0x90  ;etwas platz lassen von 0x60 verm wg .db's??
Count:      .BYTE   1
TaFlag1_8:  .BYTE   1                   ; Eingabeflag 1-8
TAFlag9_10: .BYTE   1                   ; Eingabeflag 9-10
RELFlag1_8: .BYTE   1                   ; Ausgabeflag 1-8
RELFlag9_10:.BYTE   1
TaCount1_8: .BYTE   1


mfG T.Mohrs

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du solltest schon im Datenblatt nachgeschauen, wo der SRAM des Mega128 
beginnt???

Mit 0x90 wirst Du wohl auch irgendwie auf die Nase fallen.

Gruß aus Berlin
Michael

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SRAM beim ATMEGA128 beginnt bei $0100. $0060-$00FF sind noch 
I/O-Register! Wenn Du die einfach so veränderst, kann es ein böses 
Erwachen im Programmverlauf geben.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens kannst du das .dseg auch weglassen, der Assembler macht das 
schon "richtig" ...

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.