Ich habe ein Hardware-Design in Verilog auf der Basis von Berkeley Vscale-Prozessor entwickelt. Zum Testen des Designs möchte ich einige C-Programme kompilieren und Hexfiles erzeugen. Ich möchte schließlich ROMs aus Hexfiles generieren und Verilog-Simulationen durchführen. Welcher Compiler erfüllt am besten den Zweck, riscv64-unknown-elf-gcc oder riscv32-unknown-elf-gcc? Die Architektur des Vscale-Prozessors ist RV32IM.Wie kann ich eine Hexdatei aus C-Code zum Testen eines 32-Bit-RISC-V-Hardwaredesigns generieren?
1
A
Antwort
1
Sie elf2hex Befehl verwenden können, um eine .hex-Datei von der Elf-Datei (erstellt mit gcc -o) zu erstellen, dh: elf2hex 16 4096 my_elf_file > output.hex
Wenn Sie eine 32-Bit-Architektur verwenden wollen, würde ich kompilieren mit riscv32-unbekannt-elf-gcc.
0
Ich verwende derzeit objcopy zum Testen meines Kerndesigns. Die aktuelle Version von gcc enthält eine patch, die es objcopy ermöglicht, Verilog-Speicherdateien auszugeben.
riscv32-unknown-elf-objcopy -O verilog input.elf output.vh
Ich kann diese Dateien leicht in meine Simulation in modelsim laden.
Aber um Ihre Frage zu beantworten, würde dies Hex-Dateien im Intel-Format generieren.
Objcopy unterstützt auch die Angabe, welche Codeabschnitte exportiert werden sollen und an welchen Speicherorten.
Verwandte Themen
- 1. Wie verwende ich CCode-Attribute in Vala?
- 2. Wie kann ich saubere Umgebungen zum Testen eines Installers klonen?
- 3. Wie kann ich testen, bevor signierte apk generieren?
- 4. Generieren gültiger Kreditkarten Track2-Daten zum Testen
- 5. Generieren Sie Ressourcen zum Kompilieren und Testen
- 6. Tool zum Generieren von XML-Datei von Xsd (zum Testen)
- 7. Wie kann ich die Qualität eines Verschlüsselungsalgorithmus testen?
- 8. Wie kann ich eine Kerndatenmigration testen?
- 9. Eclipse-Plugin zum Generieren eines UML-Diagramms aus C++ - Code
- 10. Wie kann ich eine Brennerinstallation testen?
- 11. Wie kann ich testen, ob eine HttpResponseMessage eine ErrorResponse ist?
- 12. Wie kann ich alle Permutationen eines Arrays in Perl generieren?
- 13. Wie erstellt man eine Produktionsdatenbankprobe zum Testen?
- 14. Wie kann ich eine GUID für eine Zeichenfolge generieren?
- 15. Wie kann JavaScript zum Testen eines HTML-Divs für Inhalte aus einer externen Datenbank verwendet werden?
- 16. Kann ich MarkLogic SJS aus Mokka testen?
- 17. Wie kann ich ein Ereignis eines MVC-Controllers testen?
- 18. Einrichten eines OpenID-Providers zum Testen
- 19. Generieren eines EDMX aus einer DB2-Datenbank
- 20. Wie kann ich ein Versprechen zum Testen ablehnen?
- 21. Generieren Sie ein Stripe-Testkarten-Token zum Testen
- 22. Generieren von Pause Frames zum Testen der Hardware
- 23. Wie kann ich einen Symfony2-Controller testen?
- 24. Wie kann MockMvcResultMatchers.jsonpath zum Testen verwendet werden?
- 25. Endbenutzer-Tool zum Generieren eines regulären Ausdrucks
- 26. Wie bekomme ich eine positive Einstellung zum Testen?
- 27. Wie verwende ich eine Funktion einer Abhängigkeit nur zum Testen?
- 28. Wie lese ich eine CUDA Textur zum Testen zurück?
- 29. Wie kann ich Mock zum Testen in Greenlet verwenden?
- 30. Funktioniert validates_uniqueness_of zum Generieren eines zufälligen Tokens?
Kann ich den von riscv32-unknown-elf-gcc auf meinem Prozessor generierten Code direkt ausführen? Ich denke, Riscv-Tests Repo generiert Code, der direkt auf meinem Prozessor ausgeführt werden kann, aber das sind Assembly-Programme. Wie kann ich solchen Code aus C-Programmen erzeugen? – Shrek
Verwenden von elf2hex wie oben empfohlen. Sie können sich auch Makefiles von riscv_tests ansehen, um zu verstehen, wie sie generiert werden. – user2548418
Ja, Sie können. Wie oben erwähnt, werfen Sie einen Blick auf das Makefile, in diesem Fall in Benchmark-Ordner bei Test-Repo. Es erstellt eine ausführbare Datei und eine .hex aus einer C-Datei. Dann können Sie spike verwenden, laden Sie es in einem FPGA, etc. dh 'riscv32-unbekannt-elf-gcc -o myexecutable.riscv mycode.c' und führen Sie es mit' Spike (-d Option, wenn Sie debuggen wollen) pk myexecutable.riscv' –