Forum: Mikrocontroller und Digitale Elektronik Linux-Board und nun?


von Günther S. (guenther)


Lesenswert?

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

von alfsch (Gast)


Lesenswert?

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...

von Günther S. (guenther)


Lesenswert?

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

von alfsch (Gast)


Lesenswert?

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

von alfsch (Gast)


Lesenswert?

was willste machen?
shell, graphik, server...???

auf der cd sind sicher beispiele - oder?

von Günther S. (guenther)


Lesenswert?

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

von Günther S. (guenther)


Lesenswert?

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.

von alfsch (Gast)


Lesenswert?

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....!?

von alfsch (Gast)


Lesenswert?

hilft das: guck > arm
http://kernelnewbies.org/KernelPorts

von Peter D. (peda)


Lesenswert?

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

von Olaf (Gast)


Lesenswert?


> 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

von .... (Gast)


Lesenswert?

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

von Lanius (Gast)


Lesenswert?


von Frank Schuessler (Gast)


Lesenswert?

@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

von peterguy (Gast)


Lesenswert?

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


von Aufreger deluxe (Gast)


Lesenswert?

Gibts die Boards irgendwo sehr günstig?

von peterguy (Gast)


Lesenswert?

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 €)

von Günther S. (guenther)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

> 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.

von Günther S. (guenther)


Lesenswert?

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

von Günther S. (guenther)


Lesenswert?

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
Noch kein Account? Hier anmelden.