Menu
        

Vdma Muster

Posted on 11 Aug 2020
By rb_admin

Das Ersetzen des Testmustergenerators durch den geänderten Aufnahmeblock und das Hinzufügen eines Controllerblocks sollte ausreichen, um den Videoeingang der Kamera an die AXI4-Stream Video-kompatible Pipeline angeschlossen zu haben. Wie ändere ich das Zugriffsmuster im vdma-Modul? Zum Beispiel habe ich ein 4×4-Bild: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 s2mm Tusersignal, das vom Testmustergenerator 1 emittiert wird, wird für die Framesynchronisation verwendet Hinweis darauf, dass dies nur ein Demo-Code ist, der für jede praktische Anwendung nicht gerade nutzbar ist, vor allem, weil die Speicherbereiche, die für Framebuffer zugewiesen sind, von keinem Kernelmodul reserviert werden. Für reale Anwendungen sollte der AXI (V)DMA-Treiber verwendet werden. Es erstellt eine korrekte Abstraktion wie /dev/axi_dma_0 oder /dev/axi_vdma_0, auf die von Userspace-Anwendungen 3 zugegriffen werden kann. Eine solche Konfiguration sollte Tartanstangenmuster erzeugen. Da es schwierig ist, beim ersten Versuch alles zum Laufen zu bringen, ist es sinnvoll, die tatsächliche Kamera durch test pattern generator und kernel module mit einem Userspace-Snippet zu ersetzen, der die DMA-Übertragung auslöst. Das Beispiel für die Verwaltung der dreifach gepufferten VDMA-Komponente sollte ziemlich erklärernd sein. Der Code basiert grob auf Ales Rudas Arbeit 2 mit schweren Modifikationen basierend auf dem Xilinx-Referenzhandbuch: arbot.cz/post/2013/03/20/VDMA-on-ZedBoard.aspx Sobald die VDMA-Übertragung ausgeführt wird, können Sie nachfolgendem Python-Snippet auf dem ZYBO einen Frame aus dem DDR-Speicher greifen und ihn über HTTP bedienen: Da Zynq-7000 Boards I2C-Busmaster integriert haben, ist es sinnvoll, diese Funktion zu nutzen, anstatt den Controllerblock von Grund auf zu implementieren. Auf ZYBO sind EEPROM und Audiocodec mit dem I2C-Bus verbunden, aber es sollte möglich sein, I2C-Bus mit IIC_0 Port auf zynq7-Verarbeitungssystemblock an Pmod-Anschlüsse zu leiten.

Es sollte auch möglich sein, über den Geräteknoten /dev/i2c-0 auf den I2C-Bus zuzugreifen, wenn entsprechende Kernelmodule 5 geladen wurden. Dies sollte es ermöglichen, die Vorteile des OV7670-Kernelmoduls 6 zu nutzen, das für das One Laptop Per Child-Projekt geschrieben wurde. Auf diese Weise kann die Kamerainitialisierung durch Kernel durchgeführt werden und die Kamera kann über jede Video4Linux-Anwendung anstelle von statischem Bitstream konfiguriert werden. Wie die Übertragung der Rahmen in diesem Fall erfolgen könnte, ist allerdings noch nicht klar. und ich möchte auf das Bild in dieser Reihenfolge zugreifen: 0 1 2 4 5 6 -> 8 9 10 github.com/Xilinx/linux-xlnx/tree/master/drivers/dma/xilinx Nur Schreibkanal (Stream in den Speicher zugeordnet) aktiviert ist Der Hamsterworks Controller-Block kann wiederverwendet werden, um die Kamera zu initialisieren, da sind dort keine Modifikationen erforderlich.