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?
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
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 ;-)
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).
alfons schrieb:> 1. Wenn ich Ethernet sauber laufen habe, dann kann ich auch Software auf> das Board runter laden und debuggen?
Seit wann ist Ethernet dafür gedacht Daten an andere Rechner zu schicken
?
Du brauchst ersteinmal einen Bootloader. UBoot oder was anderes
passendes.
Dann einen Kernel der für dein System Kompilliert ist und dann noch in
Rootfilesystem.
also, das heisst, debugging via Ethernet sollte gehen? sehr gut.
Michael,
ok, das von u-boot habe ich bereits geahnt. Aber wenn ich einen
bootloader habe, brauche ich dann ja auch noch etwas zum booten ;-) die
frage ist, wie ich den kernel genau an meine HW anpasse, da bin ich auf
Karol's Website (http://www.linux-arm.org/LinuxKernel/LinuxM3) nicht
schlauer geworden.
Ü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.
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...
Ach ja: das mit der Diskette kann ich leider nicht machen, ich habe kein
Diskettenlaufwerk. Unter Umständen könnte ich mit einer VirtualBox VM
etwas machen?
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
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.
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
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.
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