AT91SAM7S Register Adressen Verstaendnisproblem

Gast #278472
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/doc6175.pdf

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
Gast #278473
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.
Gast #278474
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.
Gast #278475
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.
Gast #278476
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren