Hallo Leute, Sorry für die Anfängerfrage, aber ich steh hier auf dem Schlauch. Ich habe dieses Board gekauft: http://www.conitec.net/arm_eva/mcu-hw.pdf Darauf läuft ein Linux 2.6.16 (laut Herstellerangabe von http://maxim.org.za/at91_26.html mit einigen Anpassungen für das Board). Der Prozessor ist ein ARM9 von Atmel (AT91RM9200). Dann habe ich noch eine Live-CD bekommen, auf der eine Softwaresammlung ist (also Kernel, Root-Filesystem, Cross-Compiler und was selbstgestricktes zum Daten übertragen und Flash schreiben). Soweit sogut. Und nun? Es gibt keine Befehlsreferenz, ich habe keine Ahnung, wie ich jetzt rangehen muss, um die Hardware zu konfigurieren (also I/O-Ports, RS232, SPI usw.) oder gar anzusprechen. Hat jemand Erfahrungen damit gemacht? Vielen Dank für eure Hilfe, Günther
befehle? linux > shell (sh usw) : guckste auf eine der unzähligen linux-seiten im www zb http://www.tuxfutter.de/wiki/Wichtige_Linux_Kommandos_und_Dateien konsole, tastatur + lcd is dran ? > lsmod > lspci gibt dir einige info...
Nein, ich meine keine Konsolenbefehle, sondern wie ich mit C in eigenen Programmen an diese Dinge komme. Konsole ist über rs232 erreichbar. Sonst ist erstmal nichts dran. Günther
ah, hmmm : bzgl hardware musste info irgendwo (auf der cd ?) haben... sonst: api? >> http://de.wikipedia.org/wiki/Programmierschnittstelle http://kernelnewbies.org/documents/kdoc/kernel-api/linuxkernelapi.html
was willste machen? shell, graphik, server...??? auf der cd sind sicher beispiele - oder?
Genau das ist das Problem. Man findet reichlich nutzlose Prosa und Anweisungen zum kompilieren des Kernels (was nichtmal funktioniert) und wie man sein eigenes Rootfs erstellt auf der CD, aber wie ich mit der Hardware arbeite finde ich nicht. Das ist auch cool. Man kann den Kernel konfigurieren. Dazu steht in der Doku: "Die vielen Parameter und EInsttellungen sind nicht Thema dieses Dokuments, da sie im Internet recherchiert werden können." Aha. Die haben irgendwas am Kernel rumgebastelt und sagen nicht was. Findet sich ja alles im Netz, aber wo sagen wir nicht. Hat denn niemand konkrete Erfahrung mit Linux auf diesem Prozessor? Bin echt etwas ratlos. Günther
Das sind nur unkommentierte Beispiele für Programme, die ohne Linux laufen können. Ich will Daten über RS232 übertragen und damit rechnen. Später kommt ein Display dran und ein Touchpanel (SPI). Eine entsprechende Adapterplatine bastel ich gerade.
wenn dein kernel geht, solltest du ihn erstmal nicht ändern :-) (geht erstmal meist schief...) die konfiguration steht in ...irgendeinem kernel.conf oder so, beim neu-machen wird oft ein script benutzt, das dir dann 600 fragen stellt... auf deiner cd sollten irgendwo auch sourcen zu kernel usw sein! da siehste dann, wie die c aufrufe aussehen....!?
Günther Schmidt wrote: > > Ich will Daten über RS232 übertragen und damit rechnen. Später kommt ein > Display dran und ein Touchpanel (SPI). Eine entsprechende Adapterplatine > bastel ich gerade. Und wozu dann so einen Boliden und ein riesen OS drauf ??? Du mußt Dir doch irgendwas dabei gedacht haben, wozu Du das Linux brauchst ? Mit einem OS bist Du erstmal wech von Echtzeit, schnellen Interrupts und sauschnellen direkten IO-Zugriffen. Ein OS ist für Webserver, TCP/IP, Dateisystem und dergleichen Schrott. Mit Linux hast Du eher einen Mini-PC anstatt eines Mikrokontrollers und erledigst demzufolge PC-typische Anwendungen (Sanduhren und dergleichen grafische Animationen). Peter
> wie man sein eigenes Rootfs erstellt auf der CD, aber wie ich mit > der Hardware arbeite finde ich nicht. Wenn der Hersteller dir einen Kernel mitliefert den er selber fuer sein Board angepasst hat, dann sollte der eigentlich auch bereits Treiber fuer die eigene Hardware enthalten. Insbesondere bei seriellen Schnittstellen wuerde ich dann erwarten das die sich genau so ansprechen lassen wie unter jedem beliebigen anderen Linux auch. Kann es daher sein das deine Probleme vielleicht nicht am Hersteller sondern an dir liegen? Olaf
meine Lieblingsfrage - was soll denn gemacht werden [] Kernelbinderei [] Einarbeitung ARM [] brauche ich ein OS (Filesysteme, Api..) [] das Bord war so preiswert/übrig da wollte ich es um jeden Preis haben
hilft das nicht? http://www.conitec.net/arm_eva/tutorial-en.pdf http://www.conitec.net/arm_eva/first-steps-en.pdf
@günther: Gib uns bitte doch mal ne Info wie's mit Deinen Linux Kenntnissen aussieht, wenn man sich an sowas ranmacht sollte man schon mindestens wissen wie man Kernel kompiliert, cross development environments einrichtet, ein bisschen was über Applikationsentwicklung unter Linux kann da auch nicht schaden und man sollte generell keine Angst vor Patches jeglicher Art haben :-) Fuer den Zugriff auf RS232 Ports: http://tldp.org/HOWTO/Serial-Programming-HOWTO Frank
Hallo Günther, habe mir das gleiche Board gekauft (ARM&EVA inkl. Display und USB-Tastatur). Und stehe nun auch vor exakt dem gleichen Problem, dass ich irgentwie nicht weiterkomme. Die mitgelieferte Live CD mit Knoppix ist schön, die Beispiele auch, aber der Gesamtzusammenhang fehlt irgentwie... Bringe leider auch nur sehr rudimentäre Linuxkenntnisse mit - hab gestern erfolgreich Skype zum laufen gebracht (auf meinem Entwicklungsrechner) und bin extrem Stolz drauf :-) Allerdings scheitere ich schon an der Installation der "Carmeva" genannten Entwicklungsumgebung, da der Paketmanager von dem Server keine Pakete bekommt?! Hast du in der Richtung schon was unternommen? Gruß Peter
Naja, günstig ist relativ. Habe 368,- Steine (netto) dafür gezahlt... Für reinen Bastelzwecke ist wahrscheinlich das FOX-Borad besser geeignet und auch wesentlich günstiger (~150 €)
Guten Morgen, Danke für eure Antworten. > auf deiner cd sollten irgendwo auch sourcen zu kernel usw sein! > da siehste dann, wie die c aufrufe aussehen....!? aha. > Und wozu dann so einen Boliden und ein riesen OS drauf ??? Eben weil man es am Ende wie ein normales Linux bedienen und programmieren kann. Mir ging es unter anderem darum, das User-Interface nicht pixelweise zu programmieren und dass da ein Webserver läuft (der nicht dokumentiert ist). Dann ist das Modul für meine Rechnereien hinreichend schnell und für zukünftige Aufgaben beliebig erweiterbar. Dazu kommt eine direkte Unterstützung alles Hardware (inklusive SD-Card). Die Frage ist doch eigentlich: Wie fange ich an zu programmieren, also wie initialisiere ich die Hardware und wie spreche ich sie an. > Wenn der Hersteller dir einen Kernel mitliefert den er selber fuer sein > Board angepasst hat, dann sollte der eigentlich auch bereits Treiber > fuer die eigene Hardware enthalten. Wird wohl so sein, aber der Kram ist nicht dokumentiert und ich habe wohl zuwenig Überblick, um zu wissen, wo ich suchen soll. > Was soll denn gemacht werden? [ ] Kernelbinderei [x] Einarbeitung ARM [x] brauche ich ein OS (Filesysteme, Api..) [ ] das Bord war so preiswert/übrig da wollte ich es um jeden Preis haben > hilft das nicht? Hast du mal reingeschaut in die beiden Dokumente? Die nutzen mir zur Programmierung unter Linux gar nichts. Das sind besagte Prosa-Texte. > Gib uns bitte doch mal ne Info wie's mit Deinen Linux > Kenntnissen aussieht, Eher mager. Das ist mein erstes Linux-Projekt. > Allerdings scheitere ich schon an der Installation der "Carmeva" > genannten Entwicklungsumgebung, da der Paketmanager von dem Server keine > Pakete bekommt?! Hast du in der Richtung schon was unternommen? Ja, ich habe denen geschrieben, dass der Kram nicht geht, daraufhin haben sie den Link geändert, funktioniert aber immernoch nicht. Ich habe dann einfach ne 1:1-Kopie vom /usr/local/carmeva auf mein Ubuntu gezogen und gehofft, dass es geht. Außerdem habe ich mir ne Eclipse installiert, wobei ich keine Ahnung habe, wie ich da meinen Crosscompiler einbinde. > Für reinen Bastelzwecke ist wahrscheinlich das FOX-Borad besser geeignet Ist wohl wahr, aber ich hatte keine große Wahl. Habt ihr vielleicht ne Literaturempfehlung, wo ich mich in die Materie einlesen kann? Dann würde ich nachher mal in die Bibliothek gehen. Günther
> Die Frage ist doch eigentlich: Wie fange ich an zu programmieren, also > wie initialisiere ich die Hardware und wie spreche ich sie an. Die Hardware wird vom Kernel initialisiert und über den Kernel angesprochen. Das ist schließlich eine seiner Hauptaufgaben. Ansprechen tust du die Hardware dann entweder direkt über das Kernelinterface (Gerätedateien in /dev öffenen und dann je nach Gerät read/write/ioctl/mmap/... darauf verwenden) oder über Userspace-Bibliotheken. Wenn es Standard-Hardware ist, sollte die sich genauso ansprechen lassen, wie auf einem PC unter Linux. Ich wüßte keine Stelle, die global alle Hardware dokumentiert, die es gibt. Für Kernelinterfaces sind die Kernelquellen schon mal ein Anlaufpunkt. Da ist einiges an Dokumentation vorhanden. Auch die HOWTOS auf www.linuxdoc.org sind hilfreich. Normalerweise sollte man aber mit der Hardware ja relativ selten überhaupt in Kontakt kommen. Dazu hat man ja das Betriebssystem.
Also... Ich war mal in der Bibliothek und habe mir einige Bücher angeschaut. Daraufhin habe ich mir nochmal die mitgelieferten Quellen angesehen und nach einigen zusätzlichen Paketinstallationen den Kernelkonfigurator (make menuconfig) aufgerufen bekommen. Soweit ist das klar, ich habe auch die benötigten Treiber eingestellt und so weiter. Das ist echt cool, da kann ich direkt meinen Grafiktreiberchip (Epson S1D13xxx) auswählen und eine Touchpanelunterstützung gibt es auch schon, nur weiß ich da noch nicht, ob die auch für an SPI angeschlossene Paneltreiber (Texas Instruments TSC2046) geht, aber das finde ich noch raus. Also erstmal Erfolg. Wie ich das compiliere und auf mein Board bringe, ist ja in dem Tutorial beschrieben, das werde ich schon hinkriegen. Wie kann ich aber nun von meiner Software aus mit der Hardware umgehen? Soweit ich das verstanden habe, beläuft sich das alles auf einen Dateizugriff in dev..., wie finde ich aber jetzt heraus, welche Hardware wohin in /dev gemountet ist? Und geht das auch mit den General-Purpose-I/Os? Und noch ne Frage bleibt. Ich kann zwar im Kernel die Unterstützung von RS232 und SPI festlegen, wie lege ich dann aber fest, dass ich nur zwei der vier RS232-Kanäle brauche und die anderen lieber als General-Purpose-I/Os konfigurieren will? Aber ich bin froh, dass ich erstmal soweit gekommen bin. Danke an euch bis hierher. Günther
peterguy wrote: > habe mir das gleiche Board gekauft (ARM&EVA inkl. Display und > USB-Tastatur). Und stehe nun auch vor exakt dem gleichen Problem, dass > ich irgentwie nicht weiterkomme. > [...] > Allerdings scheitere ich schon an der Installation der "Carmeva" > genannten Entwicklungsumgebung, da der Paketmanager von dem Server keine > Pakete bekommt?! Hast du in der Richtung schon was unternommen? Schick mir mal bitte eine private Nachricht mit deinen Kontaktdaten, vielleicht können wir uns gegenseitig helfen. Ich bin unterdessen ein paar Schritte weiter, auch wenn noch Fragen offen sind. Allen nochmal ein riesen Danke für die Hilfe! Günther
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.