Cloud Strife schrieb:
> Hi Community,
>
> seid ein paar Wochen beschäftige ich mich mit der Programmierung von
> eingebetteten systemen und Mikrokontrollern. Ich besitze ein
> AT91SAM9RL-EK und habe schon einige bare-metal Programme (LEDs
> ansteuern, Interrupts durch Taster am Board auslösen) in C geschrieben
> und auf dem board laufen gehabt.
>
schön dann hast du ja fast alles was du brauchts ;-)
> Nun läuft auf meinem Board als OS ein Linux 2.6.3 buildroot.
> Wie kann ich denn nun meine LEDs wieder ansprechen oder auf Hardware
> Interrupts (Taster) reagieren?
Hi,
du hast wirklich einen 2.6.3 Kernel am laufen ?
gib mal bitte auf der cmdline das folgende Kommando ein
wenn das system mit 2.6.3 antwortet würde ich dir dringend ans herz
legen dein linux als zu alt zu betrachten und mich nach was neueren
umsehen
denn der Kernel 2.6.3 würde irgendwann 2004 bis 2005 fertig gestellt,
ist also ganz gut abgehangen und dort hilfe zu bekommen ist echt nicht
einfach.
was deine Fragen angeht. Die LEDs solltest du recht einfach ansteueren
können. Finde heraus an welchen GPIOS sie hängen. dann kannst du mit
1 | echo <NR> > /sys/class/gpio/export
|
Die GPIOS zum export freigeben. dann musst du die entsprechenden GPIOS
mit
1 | echo out > /sys/class/gpio/gpio<NR>/direction
|
auf Ausgang stellen und mit Schalten.
1 | echo 1 > /sys/class/gpio/gpio<NR>/value
|
2 | echo 0 > /sys/class/gpio/gpio<NR>/value
|
Alternativ kannst du auch einen LED treiber für deine LEDS Schalten. Der
Taster macht dir schon mehr probleme weil der einen Interrupt auslöst
kannst du diesen leider nicht im Userspace direckt abfragen. Das ist der
Nachteil an Linux auf ein embedded System. Hier wirst du wohl eine
Treiber schreiben müssen welcher den Taster betreut. Dieser Stellt dann
über denn input layer ein Event zur Verfügung welches von deinen
Programm wahrgenommen wird.
Ich würde denn Taster einfach einen gültigen Tastertur code liefern
lassen wenn er gedrückt wird kann kannst du mit allen Funktionen wie
getc() und Co in dein Programm auf denn Taster warten und must dir keine
gedanken machen wie der taster zu interpretieren ist. Ausserdem ist ein
So geschriebenes Programm leicht zu Protieren und kann am PC getestet
werden.
Das ist der Vorteil von Linux auf ein Embedded System.