Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S Register Adressen Verstaendnisproblem


von romanua (Gast)


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

von Frank (Gast)


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.

von romanua (Gast)


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.

von Frank (Gast)


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.

von romanua (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.