Forum: Mikrocontroller und Digitale Elektronik SPI auf dem AT91SAM7S256


von Peter P. (axis)


Lesenswert?

Hallo NG,

ich bin gerade dabei, die Demo von "MMC"
( http://www.olimex.com/dev/soft/arm/SAM7/MMC.zip )
von dem Board von C nach Assembler zu übersetzen. Es gibt da 1 Zeilen 
(in Sternchen) am Ende der SPI-Initialisierung, die ich nicht auflösen 
kann:

...

s_pPDC->PDC_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
***********************************************************
** s_pSpi->SPI_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN; **
***********************************************************

...

In der Doku (6175.pdf) finde ich kein "SPI_PTCR" (Offset). Die 
Basis-Adresse vom SPI wäre ja wohl 0xFFFE0000.

Was ich natürlich machen könnte: aus den Headerdefinitions den Offset in 
der betreffenden Struktur ausrechnen, aber mich würde interessieren, wo 
aus dem Manual ich auf SPI_PTCR komme.

Danke für jeden Tip!

von Marco L. (lehmi)


Lesenswert?

PTCR gehört zum PDC Controller auf Seite 149, Basisadresse ist dann die 
vom SPI Controller + Offset für SPI-DMA Transfers (0x100-0x124), im 
Datenblatt auf Seite 263 als reserved für PDC deklariert

Grüße

lehmi

von Stephan (Gast)


Lesenswert?

Hi,

die "PDC" sind ja so quasi DMA-Controller und befinden sich bei 
folgenden Schnittstellen immer bei der BaseAdr + 0x0100 (die OffsetAdr)!

siehe Doku "6175G.pdf" Seite 176! (Note 1.)

DBGU
USART
SSC
SPI
MCI
etc.

mfg

Stephan

von Peter P. (axis)


Lesenswert?

Ah, OK.

Dann müsste doch, wenn ichs richtig verstanden habe mein Offset 0x120 
für SPI_PTCR sein, oder?

Das würde sich auch mit den Debug-Infos (r0 + r1) aus dem C Programm 
decken...

Vielen Dank!

von Pippi Petinger (Gast)


Lesenswert?

> ich bin gerade dabei, die Demo von "MMC"
> ( http://www.olimex.com/dev/soft/arm/SAM7/MMC.zip )
> von dem Board von C nach Assembler zu übersetzen.

LOL
dafür gibt es programme, die nennen sich 'compiler'

von Peter Pippinger (Gast)


Lesenswert?

> *LOL*
> dafür gibt es programme, die nennen sich 'compiler'

eigentlich sollte ich´s ja nicht kommentieren, aber ich tu´s trotzdem 
mal:

<*?#!*>

   Abowohl... Du hast recht. Wer braucht heute schon noch Assembler,
   wo es doch so intelligente Compiler gibt...

   <*?#!*?#!*>

      Naja, wenn ichs mir noch besser überlege: Wer braucht denn heute
      noch Compiler, wo es doch so tolle interpretierte Sprachen
      gibt. Da Spart man sich wenigstens die Zeit, die der Compiler
      mit compilieren verschwendet.

   </*?#!*?#!*>

</*?#!*>

von Pippi Petinger (Gast)


Lesenswert?

> Abowohl... Du hast recht. Wer braucht heute schon noch Assembler,
> wo es doch so intelligente Compiler gibt...
darum geht es nicht.
natürlich braucht man manchmal assembler um z.b. dinge zu erreichen, die 
man mit einem compiler nicht hinbekommt.
aber warum jemand einen (möglicherweise gut funktionierenden) C code von 
hand in assembler umwandelt, entzieht sich meiner vorstellungskraft.

von Thomas P. (pototschnig)


Lesenswert?

Pippi Petinger wrote:
>> Abowohl... Du hast recht. Wer braucht heute schon noch Assembler,
>> wo es doch so intelligente Compiler gibt...
> darum geht es nicht.
> natürlich braucht man manchmal assembler um z.b. dinge zu erreichen, die
> man mit einem compiler nicht hinbekommt.
> aber warum jemand einen (möglicherweise gut funktionierenden) C code von
> hand in assembler umwandelt, entzieht sich meiner vorstellungskraft.

Assembler ist ja nicht schlecht - kann offensichtlich mindestens das, 
was C auch kann ;-)

Schade finde ich es nur, dass Assembler-Code nicht so einfach - auf 
andere µCs oder sogar auf den PC - zu portieren ist wie C/C++ Code. 
Assembler ist halt eine Sackgasse irgendwie ...

Mfg
Thomas Pototschnig

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.