Verwendung der Ruyi-Compilerumgebung (am Beispiel von Licheepi 4A)
Anhand des Open-Source-Benchmarkprogramms Coremark wird der Prozess vom Installieren über den ruyi-Paketmanager bis hin zum Aufbau einer RISC-V-Compiler- und Simulationsumgebung demonstriert. Dabei wird der Quellcode von Coremark lokal kompiliert und auf dem Licheepi 4A-Entwicklungsboard ausgeführt.
Umgebungsbeschreibung
- Hardware-Umgebung: Licheepi 4A Entwicklungsboard (th1520)
- Software-Umgebung: Debian/openEuler für RISC-V
Installation des ruyi-Paketmanagers
- [Optional] Entfernen Sie den derzeit installierten ruyi-Paketmanager sowie alle zugehörigen Daten.
ruyi self uninstall --purge
- Laden Sie das
ruyi
-Tool herunter, gewähren Sie ihm Ausführungsrechte und fügen Sie es der Umgebungsvariable hinzu: Laden Sie das neuesteruyi
-Tool von ruyi GitHub Releases oder dem ISCAS-Mirrorsource herunter.
# Laden Sie die riscv64-Version des ruyi-Paketmanagers herunter, legen Sie sie im PATH ab und gewähren Sie ihr Ausführungsrechte
wget https://github.com/ruyisdk/ruyi/releases/download/0.25.0/ruyi-0.25.0.riscv64
sudo cp ruyi-0.25.0.riscv64 /usr/local/bin/ruyi
sudo chmod +x ruyi
cd
- Überprüfen Sie, ob der ruyi-Paketmanager verwendet werden kann.
ruyi --version
- Aktualisieren Sie den Index der Softwarequellen.
ruyi update
Bereitstellung der Entwicklungsumgebung mit dem ruyi-Paketmanager:
- Überprüfen Sie die Paketindexinformationen des Softwarerepositories.
ruyi list
- Installieren Sie gnu: ruyi install
<package-name>
# Installieren der für Licheepi 4A geeigneten Compiler-Toolchain gnu-plct-xthead
ruyi install gnu-plct-xthead
- Überprüfen Sie die vordefinierten Compilerumgebungen.
ruyi list profiles
- Erstellen Sie die ruyi-Virtual Environment venv-sipeed mit dem angegebenen Toolchain- und Emulator-Konfigurations.
Beachten Sie, dass beim Erstellen der virtuellen Umgebung die korrekte Compiler-Version und Sysroot-Art ausgewählt werden muss. Wenn keine Versionsnummer angegeben wird, wird standardmäßig die neueste Version aus den Softwarequellen verwendet, nicht die lokal installierte Version.
ruyi venv -h
# Erstellen der virtuellen Umgebung venv-sipeed
ruyi venv -t gnu-plct-xthead sipeed-lpi4a venv-sipeed
# Überprüfen der Tools in der Compilerumgebung
ls venv-sipeed/bin/
# Aktivieren der virtuellen Umgebung (die virtuelle Umgebung kann als ein Container verstanden werden, der eine Isolierung der Laufzeitumgebung ermöglicht. Nach der Aktivierung wird in der venv-sipeed-Umgebung die Toolchain der Version gnu-plct-xthead genutzt. Alternativ kann auch eine Umgebungsvariable für /home/sipeed/.local/share/ruyi/binaries/riscv64/gnu-plct-xthead-2.8.0-ruyi.20240222/bin konfiguriert werden, um gcc direkt zu verwenden.)
. venv-sipeed/bin/ruyi-activate
# Überprüfen, ob gcc in der aktuellen virtuellen Umgebung verfügbar ist
«Ruyi venv-sipeed» sipeed@lpi4a1590:~$ riscv64-plctxthead-linux-gnu-gcc --version
- Laden Sie den Quellcode von Coremark herunter und extrahieren Sie ihn, um ein Kompilierungsziel zu erhalten.
mkdir coremark && cd coremark
ruyi extract coremark
ls -al
Cross-Kompilierung von Coremark
- Stellen Sie die Kompilierungskonfiguration im Coremark-Quellcode ein (siehe README-Dokument des Coremark-Repositories).
sed -i 's/\bgcc\b/riscv64-plctxthead-linux-gnu-gcc/g' linux64/core_portme.mak
- Führen Sie die Cross-Kompilierung und den Aufbau durch, um das ausführbare Programm coremark.exe zu erhalten.
make PORT_DIR=linux64 link
ls -al # das neue ausführbare Programm coremark.exe
- Überprüfen Sie die Eigenschaften des riscv64-executables.
file coremark.exe
# Die Rückgabe der Befehle zeigt architekturspezifische Informationen der Datei an
Ausführungsvalidierung
- Führen Sie das riscv64 coremark-executable direkt aus.
./coremark.exe