Hallo allerseits, zwar habe ich einige verwandte Themen gefunden allerdings enthalten diese nicht die Detaisl die ich brauche. Ich versuche ein Linux Kernel Modul für mein De1-Soc von Terasic zu kompilieren, scheitere aber kläglich. Meine Linux Kenntnisse selbst sind leider etwas beschränkt und ich finde im Internet nicht die richtige Hilfestellung oder weiss nicht wo ich anfangen muss. Ich habe ein laufendes embedded Linux von der Terasic homepage (Linux Kernel 3.12), dies läuft auf dem HPS meines Cyclone V. Nun möchte ich, um Interrupts des FPGA verarbeiten zu können ein Kernelmodul hinzufügen, dass diese entsprechend registriert. Gibt es irgendwo Informationen wie ich dies bewerkstellige? Welche Kernelsourcen brauche ich genau? Herunterladen kann ich 3.12.60 und wo müssen diese hin? Wie richte ich den Compiler ein, kann ich den selben verwenden wie für meine Target Applikationen? Wie muss das Makefile genau aussehen? Danke und Gruss
Möchtest du nur das Kernelmodul kompilieren, oder das gesamte Image? Wenn nur das Modul, dann müsstest du die Imageumgebung vom Hersteller beziehen können, oft auch als SDK abgekürzt. Dort sind alle Headerfiles im Filetree abgebildet, zudem der Crosscompiler und vielleicht sogar ein Beispielprojekt. Solltest du in Eclipse programmieren, so kannst du dort in den Linkeroptions auf das SDK verweisen. Dies geschieht mit dem Keywort 'sysroot' und danach der Pfad zu deinem rootfs (z.B. sysroot=/home/Humpawumpa/de1-soc-terasic/rootfs/ ) In CMake kannst du ebenfalls mit Sysroot arbeiten, ich glaube aber erst ab Version 3. Fürs Makefile gibt es vielleicht eine ähnliche Option.
Ja ich will nur das Module kompilieren. Das Problem mit dem Yocto Image ist, dass es das /build nicht enthält - zumindest habe ich es nicht gefunden. Ich versuches mal mit Ubuntu Image das man ebenfalls auf deren Homepage herunterladen kann und das auf demselben Kernel basiert.
Hi was du benötigst ist der cross compiler z.B. die arm-linux-gnueabihf-toolchain, um dein modul zu kompilieren. Falls der Interrupt vom FPGA kommt musst du diesen auch im Qsys-Design mit dem HPS verbinden und die Interruptnummer vergeben. Beachte das du hier zwei Interruptreceiver hast und du entsprechend die Interruptnummer auswählen musst. Ich glaube die Interrupts vom FPGA liegen von 72 bis 135(mehr sagt dir das HPS Handbuch).
proggen schrieb: > Falls der Interrupt vom FPGA kommt musst du diesen auch im Qsys-Design > mit dem HPS verbinden und die Interruptnummer vergeben. Beachte das du > hier zwei Interruptreceiver hast und du entsprechend die Interruptnummer > auswählen musst. Ich glaube die Interrupts vom FPGA liegen von 72 bis > 135(mehr sagt dir das HPS Handbuch). Genau, das hab ich gemacht,es scheitert wirklich nur am kompilieren. Aber habe die entsprechenden Kernelsourcen gefunden glaube ich.
Guten Morgen, vll. hilft dir der Link noch weiter: http://stackoverflow.com/questions/3467850/cross-compiling-a-kernel-module
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.