2009-08-20 7 views
2

Ich baue einen Kernel für eine ARM-Plattform mit uClinux 2.4 und unter "General Setup" in der Linux-Konfiguration gibt es eine Option namens "m68knommu-Stil angeschlossene ROMs in RAM-Unterstützung". Meine ARM-Assembly-Fähigkeiten sind etwas eingeschränkt, aber soweit ich feststellen kann, wenn ich diese Option aktiviere, wird das ROMFS an das Ende der Kernel-BSS kopiert.Was bedeutet es, ROMFS im RAM anzuhängen?

Was ist der Zweck?

Antwort

4

Wie Sie richtig angeben, bewirkt diese Option, dass die an das Kernel-Image angehängten ROMFs an das Ende des .bss-Abschnitts verschoben werden. Dies ermöglicht dem System, von den Romfs als Root-Dateisystem zu starten.

+0

Interessant, aber es beginnt bereits von rooms als root ohne diese Option aktiviert. –

+2

Ja, aber die Option ermöglicht es Ihnen, mit dem Root-Dateisystem aus dem RAM und nicht aus externem Speicher auszuführen (möglicherweise die Ausführungsgeschwindigkeit zu verbessern). Ich gehe davon aus, dass dies ohne die Option nicht der Fall wäre. –

+2

Wenn kein RAM mehr zur Verfügung steht, können Sie den Flash-Speicher auch aktualisieren, ohne sich darum kümmern zu müssen, diesen Flash-Bereich auszuführen oder zu löschen. – Robert

2

Das obige ist nicht genau richtig; Ich glaube, dass ich die Veränderung tatsächlich entwickelt habe, wenn ich sie nicht definitiv benutzt habe. Wie bereits erwähnt, bietet diese Funktion Unterstützung für ein romfs-Dateisystem, das an das Kernel-Image angehängt ist - beide werden im RAM abgelegt. Dann stellt diese Option sicher, dass das ROMFS-Dateisystem automatisch seine Größe auswertet und in einen reservierten Bereich des RAMs verschoben wird (sowie die entsprechenden Zeiger, die für die Montage über den MTD-RAM-Treiber übergeben wurden).

Ohne diese Änderung ist es immer noch möglich, den Arbeitsspeicher zu beenden; Sie mussten lediglich Ihren Bootloader an einem vorgegebenen Ort platzieren und die entsprechenden Kernel-Optionen übergeben. Das große Feature, das diese Änderung hinzufügte, war die Fähigkeit, ein einzelnes, einheitliches Kernel + Dateisystem-Image zu haben, wie es bei den Coldfire-Builds der Fall war.

Beachten Sie, dass es nur funktioniert, wenn Sie die entsprechenden Änderungen in Ihrer head-platform.S haben, soweit ich mich erinnere - ich denke, es kann nur auf dem NetSilicon NS7520 vorhanden sein.