mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Linux-Kernel für AVR32


Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

Was ich gerade versuche ist ein System für meinen Grasshopper selbst zu 
bauen.
Hardware:
http://www.embedded-projects.net/index.php?page_id=237"

Ich habe mir einen crosscompiler gebaut und damit dann einen Kernel 
kompiliert. Der stirbt allerdings recht schnell.

Ich erhalte diese Ausgabe:
http://pastie.org/private/one6wjlcuognt6dxzzwioq"

Das Problem ist, dass ich zu dumm bin, die Kernel-Meldungen zu 
interpretieren. MMU - ist klar, aber wüsste jetzt nicht, an welcher 
Schraube ich stellen müsste.
Auch verstehe ich den Entry Point nicht. Mein RAM liegt bei 10 00 00 00 
und ist 64mB groß. Sprich 0x 4 00 00 00, müsste also bei 14 00 00 00 
zuende sein. Das heißt ein Entry Point bei 90 00 00 00 existiert ja gar 
nicht. Aber der Kernel setzt das automatisch in die Kconfig rein und 
mkimage übernimmt das dann und auch im ursprünglichen (oben verlinkten) 
System war der EP 90 00 00 00.

Wär echt cool, wenn mir jemand zumindest eine Schubs in die richtige 
Richtung geben kann, weil ich drehe mich gerade im Kreis.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das heißt ein Entry Point bei 90 00 00 00 existiert ja gar nicht.

Je nach Toolchain kennzeichnen die oberen Bits solcher Adressen 
bestimmte Speicherabschnitte z.B. Flash, SRAM etc. Diese Bits darfst du 
bei der Bestimmung der Adresse nicht verwenden.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt, das bezieht sich nicht auf die phyiskalische Adresse im 
Speicher, sondern auf was?

Mir fehlt gerade irgendwie der Ansatz, wie ich weitermachen könnte.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zeig mal die environment-Variablen von uboot.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus K. schrieb:

> Mir fehlt gerade irgendwie der Ansatz, wie ich weitermachen könnte.

Ich würde versuchen, den Originalkernel zu laden. Dann zu verstehen, wie 
sich das Image des Origialkernels vom Image des Selbstbaukernels 
unterscheiden. Dazu wenn nötig versuchen den Originalkernel selbst 
zusammen zu bauen. Dazu wenn nötig mit der Originaltoolchain arbeiten. 
Im Prinzip also häppchenweise Änderungen machen statt alles (Bootloader, 
Toolchain, Kernel) auf einmal zu ändern.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
U-Boot> printenv
bootcmd=mtdparts default;chpart nor0,2;fsload /boot/uImage;bootm
${fileaddr}
bootdelay=3
baudrate=115200
ethact=macb0
ethaddr=00:1F:E5:00:0B:AB
bootargs=root=1F02 rootfstype=jffs2
mtdparts=physmap-flash.0:128k(boot)ro,64k(env)ro,-(root)
serverip=192.168.2.4
ipaddr=192.168.2.10
stdin=serial
stdout=serial
stderr=serial

Environment size: 319/65532 bytes

Da sind noch die Daten des alten Systems drin, sollte aber keine Rolle 
spielen.

Die Config vom neuen und orginalen Kernel zu vergleichen habe ich schon 
versucht, aber das brachte mir nicht wirklich etwas. Die Änderungen sind 
nicht allzu groß und mir fehlt der Ansatzpunkt in den Einstellungen, an 
denen ich drehen müsste.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus K. schrieb:
> bootcmd=mtdparts default;chpart nor0,2;fsload /boot/uImage;bootm

Du sagst ihm er soll /boot/uImage laden....

Dein Image scheint aber:

21   Filename '/uImage2'.

zu heißen.

Dann kann er uImage auch nicht finden. Das sagt er dir hier auch:

33   Wrong Image Format for bootm command

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hatte ich mich nur verschrieben.
Schau mal 2 Zeilen weiter. Ich gebe ihm ja direkt die Stelle, an der er 
mit dem boot einsetzen soll im Speicher. Dann beginnt er ja auch den 
Kernel direkt (imho korrekt) zu booten und stirbt mit einer Exception, 
von der ich glaube, dass sie auf eine falsche Konfig im Kernel 
zurückzuführen ist.

Unabhängig davon: Den Entry Point hätte ich einfach gern verstanden.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus K. schrieb:
> Da hatte ich mich nur verschrieben.

? Wo hast du dich nur verschrieben?

In der Meldung von uboot oder in den environments?

Das sind doch Meldungen von uboot.

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab 10000000 statt 10400000 geschrieben!
klar, dass er mir das um die Ohren schmeißt.

U-Boot> bootm 10000000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
U-Boot> bootm 10400000

Deswegen dannach dann noch den richtigen Befehl ausgeführt. Und dann 
beginnt er zu booten. (siehe weiterer Quelltext)!

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch mal zum Mitschreiben:

uboot möchte den File "uImage" laden.
Dein File auf dem TFTP-Server heißt aber: "uImage2"

Autor: Markus K. (klemmi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, aber ich boote ja gar nicht mit der bootcmd!
Genauso sind die bootargs auch hinfällig!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.