Embedded Linux

Gast #2794166
Lesenswert?

Hallo,
ich habe ein ca. Scheckkartengrosses Board mit Cortex M3 sowie Ethernet, 
USB und microSD gebaut. SDRAM ist auch mit drauf.
Ich frage mich: wäre es prinzipiell möglich, ein Linux da drauf laufen 
zu lassen? RAM ist ja genug vorhanden und eine MPU gibt es auch. Booten 
könnte man es von der microSD. Was wäre alles noch zu tun?
#2794175
Lesenswert?

alfons schrieb:
> Ich frage mich: wäre es prinzipiell möglich, ein Linux da drauf laufen
> zu lassen?
Ja, prinzipiell ist das möglich, siehe z.B. [1].

alfons schrieb:
> Was wäre alles noch zu tun?
Das wird z.T. auch unter [1] beschrieben. Allerdings sollte man schon 
fundiertes Wissen in Sachen Patchen, (Cross-)Kompilieren & Co. haben. 
Für einen Anfänger ist das jedenfalls nichts.

[1] http://www.linux-arm.org/LinuxKernel/LinuxM3
Gast #2794186
Lesenswert?

Hallo,

nun ja, mit Linux habe ich einfach Grundkenntnisse, aber C usw. sitzt, 
auch das Programmieren des CM3 ist kein Problem, daran soll es also 
nicht liegen. Sooo ein blutiger Anfänger bin ich also nicht :-) aber es 
stimmt insofern, dass ich mit embedded Linux bisher noch nichts gemacht 
habe.
Der Vorteil da wäre halt, dass Netzwerkstacks und Filesysteme fertig 
sind; die selber zu implementieren macht nicht soooo Spass ;-)
Gast #2795630
Lesenswert?

Hallo nochmal,
ich habe mir noch ein paar weiter Gedanken hierzu gemacht.
Kann mir jemand zu folgenden Vermutungen/Fragen etwas sagen:

1. Wenn ich Ethernet sauber laufen habe, dann kann ich auch Software auf 
das Board runter laden und debuggen?

2. ist die Performance einigermassen brauchbar? ich werde den Prozessor 
mit 120 MHz rennen lassen, das SDRAM ist aber nur 16 Bit breit 
angebunden (ging leider nicht anders wegen Platz).
#2795677
Lesenswert?

Über Ethernet Debuggen ist ja ganz nett, aber soweit musst Du erstmal 
kommen. Bis dahin wirst Du eine serielle Schnittstelle zum Debuggen 
brauchen. Also ist ein FTDI Chip quasi Pflicht. Den kannst DU dann auch 
gleich für den Bootloader verwenden.

Hast Du schonmal ein Minimal-Linux (z.B. auf einer Diskette) für einen 
PC zusammengestellt? Wenn nicht, dann versuch' das erstmal - ist nicht 
einfach.

Programmierkenntnisse alleine sind nur die halbe Miete.
Gast #2795714
Lesenswert?

Hi Stefan,
eine serielle Schnittstelle ist vorhanden. FTDI ebenso, ich kann also 
wählen. :-)

ich habe nochmals ausgiebig gesucht mit Google, aber was so richtig 
hilfreiches habe ich noch nicht rausgefunden. Das einzige, was ich 
bisher weiss, ist, dass ich von kernel.org den Kernel runterladen und 
für meine Plattform ein Image "bauen" muss. Dem Kernel kann ich die für 
meine Plattform passenden Treiber gleich hinein programmieren, dann 
sollte das gehen.

Die Frage ist, wie diese Hardwareanpassung genau funktioniert. Wie ich 
die Hardware ansprechen muss, ist klar, aber irgendwie muss ich da ja 
dann auch noch ein Interface zum Kernel haben, da stehe ich momentan auf 
dem Schlauch...
Gast #2795965
Lesenswert?

Als erstes musst du einen funktionierenden Bootlader(uboot) bauen, den 
du anschliessend mit einem "OpenOCD-JTAG" (usbprog od. Wiggler) in 
deinen MC lädst.
Als 1. Stufe muss der uboot eine USB-Terminal-Verbindung und eine 
Bootmöglichkeit von der SD-Karte oder über die Ethernet-Schnittstelle 
aufweisen, um den Linuxkernel zu laden.
Da dein MC einen Cortex M3-Kern aufweist kannst möglicherweise einen 
Apex-Bootlader entsprechend bauen.
http://www.lpclinux.com/LPC313x/LPC313xGettingstartedELDK
Ansonsten würde ich zum bessern Verständnis die 
Gnublin-Veröffentlichungen durcharbeiten
http://elk.informatik.fh-augsburg.de/pub/eplpc3131/Artikel/main.html#
sowie die "embedded projects journal" ausgabe 12 und 13 in welchen ein 
Gnublin-goto enthalten ist
Hans Peter
Gast #2796069
Lesenswert?

Hallo,
Ok ich schaue mir diesen uboot mal an. Kompilieren und in den MC laden 
kann ich den sicher auch mit IAR Embedded Workbench oder? Oder muss ich 
da bereit zwingend GNU Tools benutzen (aus Kompatibilitätsgründen?) ich 
habe nur einen Segger JLink.

Also ich versuche demnach erstmal uboot ans laufen zu kriegen, dann 
melde ich mich wieder.
Gast #2804704
Lesenswert?

Hallo,
ich bins nochmal. Ich habe in den vergangenen Tagen mich intensiv mit 
dem Thema befasst. Ich denke ich werde wie folgt vorgehen:

Von http://emcraft.com/index.php/home kann man ein "Board Support 
Package" für STM32F4 herunterladen, sowie einen u-Boot Port. Diese lade 
ich also runter, führe in meiner Linux VM "make all" aus und dann sollte 
da eine .bin-Datei entstehen, die ich auf meine HW runterladen kann, 
richtig?
Mir ist noch nicht ganz klar, wie ich das an meine spezifischen 
Komponenten von meinem Board anpasse, z.B. RAM-Grösse und dergleichen.

Wie geht man richtig vor? Auf der Site von Ulrich Radig sieht man auch, 
dass er ucLinux auf seine eigene ARM7-HW portieren konnte, aber wie es 
im Detail genau geht, ist leider auch nicht beschrieben :-(

Viele Grüsse
Gast #2804732
Lesenswert?

alfons schrieb:
> Oder muss ich
> da bereit zwingend GNU Tools benutzen (aus Kompatibilitätsgründen?)

Um die GNU Tools wirst du nicht herum kommen. Der Kernel z.B. ist in der 
Praxis eigentlich nur mit GCC kompilierbar. Von uBoot & Co. kann ich das 
zwar nicht mit Sicherheit sagen, aber in Anbetracht der Tatsache, dass 
du GCC sowieso benötigst und es kostenfrei ist, kannst du diesen auch 
jetzt schon aufsetzen.
Gast #2804789
Lesenswert?

In deinem Eingangspost hattest du von einem Eigenbauboard mit 
Cortex-M3-Kern geredet und jetzt ist es plötzlich ein M4-Kern?(STM32F4)
Was ist es nun? Ein Selbstbauboard mit einem jungfräulichen µC, ein 
Bausatz oder ein Fertigboard?
Welcher µC-Typ verwendest du und, wenn es sich nicht um einen Selbstbau 
handelt, welcher Boardtyp und Hersteller?
Hans Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren