Forum: Mikrocontroller und Digitale Elektronik RISC-V Einstieg Ressourcen (TRM, etc.)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes (jk1983)


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?

von Klaus (feelfree)


Lesenswert?

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.
Alles drumherum ist Sache des jeweiligen Herstellers. Da darf jeder sein 
eigenes Süppchen kochen.

von Johannes (jk1983)


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.

von Motopick (motopick)


Lesenswert?

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

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

von Harald K. (kirnbichler)


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)

: Bearbeitet durch User
von Johannes (jk1983)


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".

von Harald K. (kirnbichler)


Lesenswert?

Noch zwei Nachzügler:

Patterson, Waterman - The RISC-V Reader (2017)

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

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Johannes schrieb:
> müsste nur den Bibliotheksausweis noch finden. :)

Hier https://libgen.is kannst du ohne Bibo-Ausweis eintreten und findest 
die Bücher!

von Thomas (werists)


Lesenswert?

Motopick schrieb:
> Digital Design and Computer Architecture RISC-V Edition - Sarah L.
> Harris,
> David Harris

Gibt es hier:

github.com/berred16/BLDC-motor-encoder/blob/master/BLDC-Encoder.pdf

von Martin S. (strubi)


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.

von Harald K. (kirnbichler)


Lesenswert?

Thomas schrieb:
> Gibt es hier:

Wohl eher nicht.

von Til S. (Firma: SEGGER) (til_s)


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/

von Harald K. (kirnbichler)


Lesenswert?

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.

von Motopick (motopick)


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.

von Harald K. (kirnbichler)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.