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
Die MAD Lib benutzt auch Floating Points! Ist also ohne umschreiben nicht verwendbar! Viele Grüße 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
Danke für die Infos. Eine Frage noch: Wenn ich einen Treiber habe. Geht dann nicht sowas wie ein Chipselect? Viele Grüße Georg
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?
"Das ist ein ARM720, kein ARM7." Das sieht die ARM-Webseite aber anders, ist alles die ARM7-Familie...
Ok schön, aber das beantwortet leider die Frage noch nicht! Viele Grüße Georg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.