Hi,
mein Onkel hat mir ein Board mit einem ARM Prozessor geschenkt.
Auf dem Board läuft Embedded Linux.
Jetzt dachte ich mir, dass ich da ein MP3 Player draus mache.
Die MP3 Daten möchte ich über SPI an einen MAS schicken. Da ich noch
nicht sooo viel unter Linux gemacht habe wollte ich mal wissen, ob
jemand vielleicht ein Beispielprogramm hat, um den SPI Treiber der im
Embedded Linux integriert ist zu benutzen. Bzw. wo ich so ein Programm
finde.
Hat hier schon mal jemand den SPI über Embedded Linux angesteuert?
Für Hilfe und jede Info wäre ich dankbar ;-).
Viele Grüße
Johannes
Hi
viel spannender wäre zu wissen was das für ein ARM-Board ist. Ich
vermute mal das der SPI-Treiber über den üblichen PC-Parport geht und
den wird dein ARM-Board nicht haben.
Matthias
Viele ARMs haben DACs onboard, da kann doch der ARM das Dekodieren
selber machen und die Daten an den Analog-Ausgang geben.
Dekodierer gibt es als opensource im Netz.
Also selbst machen geht nicht, dafür ist er glaub ich zu langsam, da er
keine floating Points unterstützt. Und einen Decoder ohne Floating
Points also nur mit Int ist nur sehr schwer (kommerziell) zu bekommen.
Habe mich da schon informiert.
Softfloat wäre natürlich möglich ist aber in meiner Toolchain nicht
implementiert und selbst eine zu bauen... Da drau ich mich nicht ran.
Falls natürlich hier einer einen Decoder kennt der nur Int verwendet,
dann her damit ;-)
Bei dem Board sind die Ausgänge des SPI nach ausen auf eine
Steckerleiste geführt, also anschließen kann ich es!
Viele Grüße und Danke für die Hilfe
Johannes
@Johannes:
Kannst Du Deine Aussage mit dieser hier
Because MAD uses integer computation rather
than floating point, it is well suited for
architectures without a floating point unit.
All calculations are performed with a 32-bit
fixed-point integer representation.
in irgendeinen Zusammenhang bringen?
(Quelle: http://www.underbit.com/products/mad/)
da sagt deren hp was anderes ;)
<<<<<<<<<<<snip>>>>>>>>>>
MAD has the following special features:
24-bit PCM output
100% fixed-point (integer) computation
completely new implementation based on the ISO/IEC standards
available under the terms of the GNU General Public License (GPL)
<<<<<<<<<<<snip>>>>>>>>>>
73
@Johannes:
Der MAD-Player kann wirklich reine INT werte.
Allerdings ist dieser nicht gerade gut kommentiert und auch nicht
sonderlich gut kommentiert.
Aber mit etwas Arbeit bekommt man es hin.
@Rest:
Ihr habt ja recht, aber die eigentliche Frage wurde bis jetzt nicht
beantwortet. Mich würde dies nämlich auch Interessieren, da ich ein
bald ein Projekt mit einem ARM anfange und da ich Daten messen soll
evtl auch die SPI Schnittstelle benötige!
Viele Grüße
Georg
ich kann zwar nicht mit einem beispielcode dienen, glaube aber trotzdem
helfen zu können ;)
spi wird am arm wahrscheinlich wie beim avr über lustige register
anzusprechen sein... also brauchst du eigentlich ja nur auf diese
register zugreifen... also gibts 2 möglichkeiten:
=> entweder ein userland app, das auf die speicherstellen zugreift(wie
z.b paralellport zugriffe die nicht über fread udgl laufen)
=> oder einen netten kernel-hack, der dir funktionen für spi in den
userspace gibt
wie das mit driver im kernel ausschaut weis ich nicht..
direkte speicherzugriffe aus dem userland benötigen root
privilegien...
mir kommt aber vor, dass ich sowas schon irgendwo gesehen habe.. schau
dir doch mal einen uclinux port für einen pda an... die müssten die
sd-karten doch auch am spi hängen haben...
hoffe geholfen zu haben.... ich werd mir jetzt noch einen kaffee holn
und mich dann in den höhrsaal begeben ;)
73
Vieles hängt davon ab, was für ein ARM es denn nun genau ist und was für
eine Linux-Variante denn auf diesem ARM läuft.
Hat der ARM beispielsweise keine MMU (was für ARM7-Varianten zutrifft),
dann treffen die Aussagen von Hans über Userland und Privilegien nicht
zu, da ohne MMU derartiges gar nicht überwacht werden kann. Obendrein
läuft dann wohl nur noch ucLinux oder ähnliches; ein "richtiges"
Linux braucht nämlich 'ne MMU.
@Georg:
"Wenn ich einen Treiber habe. Geht dann nicht sowas wie ein
Chipselect?"
Was meinst Du damit?
Also ich werde wohl was mit eineme ARM9 machen (Atmel AT91RM9200)!
Es gibt wohl schon eine Studienarbeit die auf einem Demo-Board
embedded Linux aufgespielt hat. In diesem Linux soll ein Treiber für
die SPI Schnittstelle implementiert sein, soweit ich das der Doku
entnehme.
Für mich wäre jetzt interessant, wie ich von C auf den Treiber
zugreifen kann um Daten über die SSC Schnittstelle zu senden bzw. zu
empfangen.
Viele Grüße und Danke für die Hilfe
Georg
@Rufus:
"Hat der ARM beispielsweise keine MMU (was für ARM7-Varianten
zutrifft),"
Leider falsch, nicht alle ARM7-Derivate sind ohne MMU, wie kommst Du
denn darauf?
Eine eigene Frage?
Dieser Thread ist über 21 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.