Der Autor stellt Debian GNU / Linux für Ultra96 / Ultra96-V2 (ZynqMP) zur Verfügung 1. Darüber hinaus ist XRT (Xilinx Runtime) eine Umgebung zum Ausführen von Programmen, die in der von Xilinx bereitgestellten Entwicklungsumgebung (Vitis) auf der Plattform entwickelt wurden 2.
Ursprünglich funktioniert XRT für MPSoC Edge Device nur in der von Xilinx bereitgestellten Linux-Umgebung (Petalinux). In diesem Artikel werden jedoch einige Schritte ausgeführt, um XRT unter Debian GNU / Linux für Ultra96 / Ultra96-V2 auszuführen. Ich werde es im Teil separat erklären.
In diesem Artikel wird beschrieben, wie Sie Ultra96 / Ultra96-V2 mit installiertem XRT als Ziel festlegen und Programme von der Vitis IDE auf dem Host-PC ausführen und debuggen.
__ Das in diesem Artikel vorgestellte Debian-Paket ist nicht offiziell von Xilinx. __ __
Verwenden Sie Ultra96 / Ultra96-V2 mit installiertem XRT als Ziel. Ausführliche Informationen zur Installation von XRT unter Ultra96 / Ultra96-V2 finden Sie unter [Installation].
Es reicht nicht aus, XRT auf dem Ziel installiert zu haben, um Programme auf dem Ziel über die Vitis IDE auszuführen und zu debuggen. Die folgenden zusätzlichen Elemente sind auf der Zielseite erforderlich.
TCF (Target Communication Framework) 3 ist ein leichtes und erweiterbares Netzwerkprotokoll zur Steuerung eingebetteter Systeme (Ziele). Die Vitis IDE basiert auf Eclipse und kommuniziert mit dem Ziel über TCF. Um das Ziel über die Vitis-IDE zu steuern, muss daher ein Serverprogramm namens TCF-Agent auf dem Ziel ausgeführt werden.
Der Quellcode für TCF-Agent finden Sie unter folgender URL:
Sie können das Repository hier herunterladen und auf Ultra96 / Ultra96-V2 erstellen. In diesem Artikel haben wir bereits ein bereits erstelltes Debian-Paket vorbereitet, daher werden wir es zur Installation verwenden.
Der vorgefertigte und Debian Packaged TCF-Agent ist unter der folgenden URL verfügbar. Herunterladen und installieren.
shell$ git clone --recursive --depth=1 -b 1.7.0-1 git://github.com/ikwzm/tcf-agent-dpkg
shell$ cd tcf-agent-dpkg
shell$ sudo apt install ./tcf-agent_1.7.0-1_arm64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'tcf-agent' instead of './tcf-agent_1.7.0-1_arm64.deb'
The following NEW packages will be installed:
tcf-agent
0 upgraded, 1 newly installed, 0 to remove and 69 not upgraded.
After this operation, 3,298 kB of additional disk space will be used.
Get:1 /home/fpga/work/tcf-agent-dpkg/tcf-agent_1.7.0-1_arm64.deb tcf-agent arm64 1.7.0-1 [689 kB]
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Selecting previously unselected package tcf-agent.
(Reading database ... 114950 files and directories currently installed.)
Preparing to unpack .../tcf-agent_1.7.0-1_arm64.deb ...
Processing triggers for systemd (237-3ubuntu10.39) ...
Das obige Debian-Paket enthält auch ein Programm für systemd. Verwenden Sie zum Starten von TCF-Agent den Befehl systemd wie folgt:
shell$ sudo systemctl start tcf-agent.service
Gehen Sie wie folgt vor, wenn Sie TCF-Agent beim Booten von Linux automatisch starten.
shell$ sudo systemctl enable tcf-agent.service
Gehen Sie wie folgt vor, um TCF-Agent zu stoppen. Im Moment dauert es aus irgendeinem Grund einige Minuten, um TCF-Agent zu stoppen. Die Ursache ist unbekannt.
shell$ sudo systemctl stop tcf-agent.service
Die in [Installation] installierten ausführbaren XRT-Programme und -Bibliotheken werden in / opt / xylinx / xrt auf dem Ziel installiert. Wenn Sie ein Programm für XRT auf dem Ziel ausführen, müssen Sie ein Skript wie /opt/xilinx/xrt/setup.sh ausführen, um die Umgebungsvariablen festzulegen.
Als ich jedoch ein Programm für XRT von der Vitis IDE über TCF ausführte, wurde mir mitgeteilt, dass die Bibliothek nicht gefunden werden konnte oder das Gerät aus irgendeinem Grund nicht gefunden werden konnte, und diese Methode funktionierte nicht.
Als Ergebnis von Versuch und Irrtum können die Bibliothek unter / opt / xylinx / xrt / lib und das ausführbare Programm unter / opt / xylinx / xrt / bin zum Funktionieren gebracht werden, indem sie symbolisch mit / usr / lib bzw. / usr / bin verknüpft werden. wurde.
Da es schwierig ist, jedes Mal von Hand zu verknüpfen, haben wir dafür ein Debian-Paket vorbereitet. Bitte installieren Sie dieses Debian-Paket.
shell$ git clone https://github.com/ikwzm/ZynqMP-FPGA-XRT.git
shell$ sudo apt install ./ZynqMP-FPGA-XRT/xrt-setup_2.6.0-1_arm64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'xrt-setup' instead of './xrt-setup_2.6.0-1_arm64.deb'
The following NEW packages will be installed:
xrt-setup
0 upgraded, 1 newly installed, 0 to remove and 71 not upgraded.
After this operation, 30.7 kB of additional disk space will be used.
Get:1 /home/fpga/work/ZynqMP-FPGA-XRT/xrt-setup_2.6.0-1_arm64.deb xrt-setup arm64 2.6.0-1 [1,276 B]
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buff\\
er, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Selecting previously unselected package xrt-setup.
(Reading database ... 115056 files and directories currently installed.)
Preparing to unpack .../xrt-setup_2.6.0-1_arm64.deb ...
Die Herstellung von Zocl erfolgt wie in [Übung] erläutert. Bitte beziehen Sie sich darauf.
Öffnen Sie Run Configuration in der Vitis IDE.
Fig.1 Vitis Run Configuration-1
Konfigurieren Sie eine neue Verbindung für die Vitis Run-Konfiguration.
Fig.2 Vitis Run Configuration-2
Zielname ist angemessen. Geben Sie für Host die IP-Adresse von Ultra96 / Ultra96-V2 an.
Fig.3 Vitis Run Configuration-3
Legen Sie den Remote-Dateipfad und das Arbeitsverzeichnis auf der Registerkarte Anwendung fest. Bereiten Sie ein Arbeitsverzeichnis auf dem Ziel vor und geben Sie dessen Pfad an.
Fig.4 Vitis Run Configuration-4
Wählen Sie die soeben konfigurierte Konfiguration aus und führen Sie sie in der Vitis IDE unter Hardware> Ausführen aus.
Fig.5 Vitis Run-Start
Das Ergebnis wird wie folgt an die Konsole ausgegeben: Die Ergebnisse des in [Übung] erläuterten Beispielprogramms werden hier gezeigt.
Fig.6 Vitis Run-Result
[Übersicht]: https://qiita.com/ikwzm/items/0d3a8adfe725cd17f932 "Ausführen von XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Übersicht)" @Qiita " [Build]: https://qiita.com/ikwzm/items/d8013ea91125a3fc46aa "Ausführen von XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build)" @Qiita " [Installation]: https://qiita.com/ikwzm/items/6612eacc4a0d324a0a68 "" Ausführen von XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Installation) "@Qiita" [Übung]: https://qiita.com/ikwzm/items/58cfea3f9d0f42840511 "" Ausführen von XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Übung) "@Qiita" ["Bootgen unter Debian GNU / Linux, Ubuntu" @Qiita ausführen]: https://qiita.com/ikwzm/items/97811fcff7876181209f "Bootgen unter Debian GNU / Linux, Ubuntu" @Qiita "ausführen ["FPGA-Raum"]: https://marsee101.blog.fc2.com "" FPGA-Raum "" ["Versuch einer Storming-Verbindung mit dem RTL-Kernel in Vitis 2019.2 1"]: https://marsee101.blog.fc2.com/blog-entry-4823.html "" Storming mit dem RTL-Kernel in Vitis 2019.2 Versuchen Sie die Verbindung 1 "" ["Versuchen Sie, die Verbindung mit dem RTL-Kernel in Vitis 2019.2 2 zu stürmen"]: https://marsee101.blog.fc2.com/blog-entry-4824.html "" Stürmen mit dem RTL-Kernel in Vitis 2019.2 Versuchen Sie die Verbindung 2 "" ["Versuchen Sie, die Verbindung mit dem RTL-Kernel in Vitis 2019.2 3 zu stürmen"]: https://marsee101.blog.fc2.com/blog-entry-4825.html "" Stürmen mit dem RTL-Kernel in Vitis 2019.2 Versuchen Sie die Verbindung 3 "" ["Versuchen Sie, die Verbindung mit dem RTL-Kernel in Vitis 2019.2 4 zu stürmen"]: https://marsee101.blog.fc2.com/blog-entry-4826.html "" Stürmen mit dem RTL-Kernel in Vitis 2019.2 Versuchen Sie die Verbindung 4 ""