www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI auf dem AT91SAM7S256


Autor: Peter Pippinger (axis)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Marco L. (lehmi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Pippinger (axis)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Pippi Petinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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'

Autor: Peter Pippinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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

</*?#!*>

Autor: Pippi Petinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Pototschnig (pototschnig)
Datum:

Bewertung
0 lesenswert
nicht 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

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.