mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S Register Adressen Verstaendnisproblem


Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Verstaendnisproblem zum Atmels AT91SAM7S64 Manual.


Genau geht es um die Speicher-gemappten Register, ueber die man IO (und
andere) Kontroller ansteuert.

http://www.atmel.com/dyn/resources/prod_documents/...

In der Tabele 28-2, Seite 234 sind die Adressen dieser Register als
OFFSETS angegeben. Ich verstehe aber nicht auf welche absolute Adresse
sich diese Versetzungen beziehen.

Da die anderen Registeradressen in diesem Manual auch als Offsets
angegeben sind, glaube ich, dass ich etwas Grundlegendes nicht
verstehe.

Vielen dank fuer jede Hilfe.

Gruss,

Roman

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal irgendwo bei Systemcontroller->Mapping nach. Da stehen die
Basisadressen, zu denen man dann die Offsets addieren muß. Kleiner
Tipp: mach dich mit den Headerdateien vertraut. Die sind nichtmal so
schlecht, allerdings leicht gewöhnungsbedürftig.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Frank, Ich habe Systemcontroller->Mapping gefunden. War
genau das, was ich suchte.

Weiter habe ich mich mit MemoryMap Datei (CrossStudio) vertraut
gemacht. Da sind alle memory-mapped Register gelisted (mit Adressen).

Can man diese Liste so wie bei AVRStudio ".include atxxx.inc"
benutzen?

Ich habe folgendes vesucht zu bauen:

ldr  r1, =PIOA_PUSR


Ich bekomme: "undefined reference PIOA_PUSR", obwohl dieser Register
in der MemoryMap Datei definiert ist.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Urg, damit hab ich jetzt nicht gerechnet, dass Du in asm machst. Ich hab
nur ein Wenig Erfahrung mit gnuarm, genauer gesagt, c. Kannst Dir ja mal
den Assembler-Startupcode von WinARM anschauen, vielleicht hilft Dir
das.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe es bei Rowley angefragt. Es geht zum Beispiel so:

  #include <targets/AT91SAM7S64.h>

  ldr r1, =PIOA_BASE
  str r0, [r1, #PIOA_PUSR_OFFSET]

Kann mir jemand sagen warum in Header-Dateien die Bitmasken am Ende ein
"U" haben?

Beispiel: AIC_SMR21_PRIOR_MASK 0x7U

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.