RISC-V Einstieg Ressourcen (TRM, etc.)

OP #7817335
Lesenswert?

Hallo Community!

Heute ist ein neues Spielzeug (VisionFive2) bei mir angekommen. Will ein wenig in die RISC-V Welt hinein schnuppern. Cross compiler (GCC 14.2 konfiguriert für riscv64-none-elf) ist auch schon einsatzbereit. Bin gerade dabei OpenSBI und U-Boot zu compilieren um das Board mal zu testen. Weiterer Schritt wäre ein simples "Hello World" Programm über die serielle Schnittstelle.

Da ich aber noch gerne weiter in die Materie eintauchen würde (Bare-Metal), würde ich ein paar Informationen benötigen, die ich leider noch nicht gefunden habe. Zum Beispiel ein grundlegendes TRM für die RISC-V Architektur, was mal die Basisarchitektur erklärt, Speichermanagement, Exception und Interrupt handling, Systemregister, grundlegende Interfaces und so weiter...

Auf der offiziellen RISC-V Präsenz hab ich derzeit bis auf die ISA und die verwendete ABI nur wenig gefunden, leider. :(

Kennt hier wer nützliche Ressourcen, die den Einstieg leichter machen?

OP #7817374
Lesenswert?

Klaus schrieb:

Johannes schrieb:

Auf der offiziellen RISC-V Präsenz hab ich derzeit bis auf die ISA und die verwendete ABI nur wenig gefunden, leider. :(

Viel nehr als die ISA zu definieren schreibt sich RISC-V association doch auch gar nicht auf die Fahnen.

Okay, das habe ich nicht gewusst. Bin davon ausgegangen, dass die RISC-V Organisation so (ähnlich) wie ARM agiert. Hätte mich vorher besser informieren müssen.

Alles drumherum ist Sache des jeweiligen Herstellers. Da darf jeder sein eigenes Süppchen kochen.

Das ist natürlich meiner Meinung nach nicht vorteilhaft. Das heißt also für mich, dass mir bis auf das TRM des Herstellers des eingesetzten SoC (Starfive JH-7110), nur wenig für den Einstieg zur Verfügung steht.

Gut, der Quellcode von U-Boot (wo ich auch mal in der Vergangenheit einen Patch in der Mailinglist veröffentlicht habe und sogar eingepflegt wurde) und Linux bleibt auch noch als zusätzliche Informationsquelle.

#7817411
Lesenswert?

Monte Dalrymple - Inside an Open-Source Processor An Introduction to RISC-V (2021)

Warren Gay - RISC-V Assembly Language Programming (2022)

Stephen Smith - RISC-V Assembly Language Programming (2024)

D. Patterson, J. Hennesy - Computer Organization and Design, The Hardware/Software Interface RISC-V Edition (2021)

OP #7817425
Lesenswert?

Motopick schrieb:

An Introduction to Assembly Programming with RISC-V - Edson Borin

Digital Design and Computer Architecture RISC-V Edition - Sarah L. Harris, David Harris

Harald K. schrieb:

Monte Dalrymple - Inside an Open-Source Processor An Introduction to RISC-V (2021)

Warren Gay - RISC-V Assembly Language Programming (2022)

Stephen Smith - RISC-V Assembly Language Programming (2024)

D. Patterson, J. Hennesy - Computer Organization and Design, The Hardware/Software Interface RISC-V Edition (2021)

Vielen Dank! Werde die Bücher mal (falls vorhanden) bei meiner örtlichen Bibliothek der technischen Universität ausleihen. Müsste nur den Bibliotheksausweis noch finden. :)

Mal durchblättern die Bücher und später dann kaufen.

OT:
Leider verzögert sich die Kompilation von OpenSBI und U-Boot etwas, da ich das vor ein paar Monaten gebaute Toolchain (GNU binutils und GCC) falsch konfiguriert habe. Hab es nämlich gleich wie für ARM als *-none-elf gebaut. Allerdings unterstützt die riscv64-none-elf Variante (noch) kein PIE (Position Independent Executable). GCC 14.2 meckert zwar nicht, aber GNU ld 2.43.1 kann das (derzeit) noch nicht. Wird zwar in der Hilfe die Option "-pie" angezeigt, kommt aber die Fehlermeldung "riscv64-none-elf-ld: -pie not supported".

#7818539
Lesenswert?

Im Berkeley- und Stanford-Umkreis glaube ich mich zu erinnern, dass es massig PDFs zur MIPS-Architektur zum herunterladen gab. Fuers grundlegende Verstaendnis wuerde ich damit mal anfangen, da gab es zum Pipelining und Hazards ziemlich gutes Material aus den diversen "CS"-Kursen. RISC-V ist quasi das gleiche in gruen, nur dass der verwirrende Branch-Delay-Slot wegfaellt, und die Opcodes anders gemappt sind.

Alles andere um den Core ist in der Tat herstellerspezifisch, das sollte dann das TRM des Chips liefern. Keiner muss sich an den 'Standard' halten, insbesondere bei den CSR-Registern kochen einige ihre eigene Suppe.

(Firma: SEGGER) #7819314
Lesenswert?

Evtl. auch interessant:

"The RISC-V Instruction Set Manual Volume I: Unprivileged ISA"

"The RISC-V Instruction Set Manual Volume II: Privileged Architecture"

"RISC-V ABIs Specification"

Es gibt dann noch diverse Interrupt Controller wie z.B. PLIC, ECLIC, etc.

"RISC-V Platform-Level Interrupt Controller Specification"

Für RISC-V Bare metal könnte unsere Toolchain (Achtung Werbung) hilfreich sein: https://www.segger.com/products/development-tools/embedded-studio/

#7820198
Lesenswert?

Harald K. schrieb:

Motopick schrieb:

An Introduction to Assembly Programming with RISC-V - Edson Borin

Das gibt es online auf https://riscv-programming.org/, zusätzlich gibt es da ein Übungsbuch und einen in JavaScript geschriebenen Simulator.

Da ich es etwas handfester mag, gibt es hier: https://github.com/stnolting/neorv32 einen RISC-V Softcore. Damit hat man dann, z.B. auf einem MAX10(M08) echte Hardware zum Spielen. Das ist auch ein sehr gutes Studienobjekt fuer alle die an FPGAs und VHDL interessiert sind.

Interne Ablaeufe kann man in der Simulation mit Modelsim, oder an der Hardware mit SignalTap/Chipscope ins Auge fassen.

Heute kann man natuerlich auch ein ESP32C3-Board beim Chinesen ordern.

#7820435
Lesenswert?

Motopick schrieb:

Heute kann man natuerlich auch ein ESP32C3-Board beim Chinesen ordern.

Oder, wenn man es kleiner mag, sich einen CH32V003 ansehen.

Der ist für viele einfache Anwendungen ausreichend, und ist insofern bastelfreundlich, als daß er auch mit 5V betrieben werden kann.

(Das Ding kommt in verschiedenen Gehäusen, logischerweise mit unterschiedlich vielen I/Os daher, SO-8, SO-14, TSSOP-20 und QFN-20).

Der Hersteller WCH stellt dafür mit "Mounriver Studio" eine etwas gewöhnungsbedürftige IDE zur Verfügung (wobei die seit dem Schritt zur Version 2.x wohl besser geworden sein soll), aber man kann auch vscode verwenden und sich eine Arbeitsumgebung selbst zusammenstellen:

https://github.com/cnlohr/ch32v003fun

Wahlweise mit oder auch ohne platformio

Vom gleichen Hersteller gibt es auch "größere Brüder".

Und entgegen der recht dürftigen Dokumentation der früheren Bausteine von WCH (wie z.B. die USB-UART-Bridge CH340), sind die Datenblätter und Reference Manuals recht vollständig und in erträglichem Englisch verfügbar.

Wer eh' schon bei Ali bestellt ... kann auch im "WCH Official Store" einkaufen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren