Für die Entwicklung von RISC-V-Software steht mit Nuclei Studio eine kostenlose, auf Eclipse CDT basierende IDE zur Verfügung. Das vor wenigen Wochen erschienene Update 2021.02 bietet Anlass für erste Gehversuche.
von Tam Hanna
Worum geht es hier?
RISC-V (bestens beschrieben in Computer Organization and Design RISC-V Edition von Pedersen und Hennessy, kostenloser Download angeblich unter http://staff.ustc.edu.cn/~llxx/cod/reference_books/Computer%20Organization%20and%20Design%20RISC-V%20edition.pdf) ist „nur“ eine Beschreibung einer Prozessorarchitektur. Für die eigentliche Realisierung einer MCU sind Peripheriegeräte erforderlich – ein RISC-V-Controller des Herstellers A ist also nur sehr unwahrscheinlich mit Hersteller B binärkompatibel.
Neben sektiererisch inspirierten (da Opehn Sourz, gim‘me dat‘ VC money, yo!) Halbleiterhäusern zweifelhafter Provenienz steht mit GigaDevice ein chinesischer Traditions-Flashhersteller am Start. Das Unternehmen erwies sich in der Vergangenheit – siehe z.B. die diversen Calls mit Future Electronics – als im Bezug auf Lieferfähigkeit zuverlässiger (und sanktionssicherer) Partner.
Für die GD32VF103-Familie spricht außerdem, dass sie vom Peripheriegerätedesign her an den STM32F10x-Chips angelehnt sind – wer die Bedienung bzw Programmierung der Peripherie von STM kennt, hat beim Umstieg sowohl vom Registeraufbau als auch von der API her weniger Aufwand.
Komponenten zusammensuchen
Für den Download der IDE empfiehlt sich die URL https://www.nucleisys.com/download.php - sie brauchen NUR die in der Rubrik Nuclei Studio IDE angebotenen Archive. Der unter Windows 10 arbeitende Autor extrahierte das Paket in das Verzeichnis C:\NucleiStudio.
Während des Downloads besuchen Sie bitte http://gd32mcu.com/en/download, wo GigaDevice diverse Ressourcen für die hauseigene Prozessorflotte anbietet. Für uns ist die in der Rubrik Tools & Software befindliche „GD32VF103 Firmware Library “ relevant – sie enthält eine Gruppe kleiner Beispiele, aus denen sie den für die Ansteuerung des jeweiligen Peripheriegeräts notwendigen Code entnehmen können. Dies ist erforderlich bzw sinnvoll, weil GigaDevice (derzeit) keinen Codegenerator a la Cube oder MCC / Harmony anbietet.
Der eigentliche Start der IDE erfolgt dann durch Aufruf der Datei NucleiStudio.exe – Eclipse CDT braucht, wie immer, einen Workspace. Nach dem Start erstellen wir ein Projekt auf Basis der Vorlage C Managed Build – die für den GD32 korrekte Vorlage lautet „Nuclei SDK Project for GD32VF103“. Bei der Board-Auswahl empfiehlt sich die Option GD32vf103v_eval auch dann, wenn Sie das kleinere START-Board (bei TME preiswert unter https://www.tme.eu/de/katalog/entwicklungsboards-sonstige_112895/?s_order=desc&search=GD32VF&s_field=1000011 erhältlich) verwenden.
Projektstruktur im Blick
Lohn der Mühen ist die Erzeugung einer vergleichsweise umfangreichen Projektstruktur, die neben dem eigentlichen Samplecode diverse für die Ansteuerung des SoC benötigte Komponenten mitbringt. Am wichtigsten sind die in Abbildung zwei gezeigten Header – Ähnlichkeiten zu CUBE sind rein zufällig.
Ob des Fehlens eines Codegenerators nimmt ihr Projekt auch den gesamten Treibercode auf – Abbildung drei zeigt einen Teil des Komplements an .c-Dateien.
Interessant ist noch der Aufbau der Standardbibliothek: die eigentliche Hardwareinteraktion erfolgt durch Stub-Funktionen, die im in Abbildung vier gezeigten Ordner unterkommen.
Zur Veranschaulichung des Aufbaus hier noch ein Blick auf das Skelett der Methode _open:
1
#undef errno
2
externinterrno;
3
4
__WEAKint_open(constchar*name,intflags,intmode)
5
{
6
errno=ENOSYS;
7
return-1;
8
}
Was weiter?
An dieser Stelle beginnt die eigentliche Programmierung – ergreifen Sie ein oder mehrere Beispielprogramme, fügen Sie sie zusammen und senden Sie sie auf die dank MiniUSB-Stecker direkt ansprechbare Evaluationsplatine.
Tam H. schrieb:> ... und senden Sie sie auf die dank MiniUSB-Stecker direkt ansprechbare> Evaluationsplatine.
Wo und zu welchen Konditionen bekommt man denn die ansprechbare
Evaluationsplatine?
Hallo,
bei TME um etwa 30 Euro für das kleine Board, wenn du in der EU sitzt.
Alternativ dazu kann ich dir vielleicht auch ein kostenloses Board
beschaffen, wenn du auf den in UK sitzenden FA "ausreichend fleischig"
wirkst.
Schreibe mir an tamhan aeht tamoggemon rundesding komm und ich schaue
was ich für dich tun kann!
Oder man nimmt einfach VSCode mit PlatformIO?
Das hat im September 2019 mit dem Longan Nano schon gut funktioniert und
ich konnte das Blink-Beispiel gerade eben immer noch ohne Probleme
compilieren.
SoC?
Tam H. schrieb:> Neben sektiererisch inspirierten (da Opehn Sourz, gim‘me dat‘ VC money,> yo!) Halbleiterhäusern zweifelhafter Provenienz steht mit GigaDevice ein> chinesischer Traditions-Flashhersteller am Start.
Für mich ist das relativ schwer zu lesen. Der schreibstil spricht mich
nicht an. Auch dir Aussage des Artikels verstehe ich nicht, auf was will
er hier raus?
Mw E. schrieb:> Was ist das denn wieder fürn komischer Artikel?> In der Überschrift steht was von IAR, aber im Artikel wird nicht darauf> eingegangen.> Was soll das?
:-)
Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt
echt verwundert das im Artikel auf IAR nicht eingegangen wird?
Du solltest evtl. vor dem Posten noch mal überdenken was Du so
schreibst..
Pille
Pille schrieb:> Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt> echt verwundert das im Artikel auf IAR nicht eingegangen wird?>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so> schreibst..
Ne, denk mal selber nach.
Wieso schreibt mans in eine Überschrift wenn man nicht darauf eingeht
wieso mans nicht mit IAR machen will oder sollte?
Oder am Ende auf Vor- und Nachteile eingeht?
Es ist eben nur wieder der typisch oberflächliche Tam Artikel.
Leider ist dieser und andere Artikel quasi unlesbar. Viel zu viele
Einschübe mit Klammern oder Bindestrichen sowie seltsame Wörter machen
irgendwie nur Lust auf eines: die Seite wieder zu schließen.
Auch inhaltlich werden diese sog. Neuigkeiten immer wertloser für mich.
Schade.
ich habe den EWRISCV-MB "IAR Embedded Workbench for RISC-V, Mobile
license" und der kostet 5000,00 EUR netto wem es interessiert. Mobile
bedeutet, mit einem USB Dongle. Leider kann ich keinen Vergleich zu
anderen Compilern ziehen.
Mw E. schrieb:> Was ist das denn wieder fürn komischer Artikel?> In der Überschrift steht was von IAR, aber im Artikel wird nicht darauf> eingegangen.> Was soll das?
Es steht doch OHNE IAR. OHNE heisst nicht mit.
> Für die Entwicklung von RISC-V-Software steht mit Nuclei Studio eine> kostenlose, auf Eclipse CDT basierende IDE zur Verfügung. Das vor wenigen> Wochen erschienene Update 2021.02 bietet Anlass für erste Gehversuche.
Pille schrieb:> Mw E. schrieb:>> Was ist das denn wieder fürn komischer Artikel?>> In der Überschrift steht was von IAR, aber im Artikel wird nicht darauf>> eingegangen.>> Was soll das?>> :-)>> Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt> echt verwundert das im Artikel auf IAR nicht eingegangen wird?
Ja, manchmal fragt man sich...
> Du solltest evtl. vor dem Posten noch mal überdenken was Du so> schreibst..>> Pille
Danke dir!
Steffen H. schrieb:> ich habe den EWRISCV-MB "IAR Embedded Workbench for RISC-V, Mobile> license" und der kostet 5000,00 EUR netto wem es interessiert. Mobile> bedeutet, mit einem USB Dongle. Leider kann ich keinen Vergleich zu> anderen Compilern ziehen.
Hallo Steffen,
wenn du magst, testen wir im Rudel. Ich kann dir einige Codebeispiele
senden und die Codegröße, die mir meine Nucleo Installation gibt. Du
kannst die dann mit IAR nachkompilieren und wir vergleichen.
Mw E. schrieb:> Pille schrieb:>> Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt>> echt verwundert das im Artikel auf IAR nicht eingegangen wird?>>>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so>> schreibst..>> Ne, denk mal selber nach.> Wieso schreibt mans in eine Überschrift wenn man nicht darauf eingeht> wieso mans nicht mit IAR machen will oder sollte?> Oder am Ende auf Vor- und Nachteile eingeht?
Weil IAR teuer ist? Warum soll man kein Heroin spritzen? Warum nicht die
süsse Nachbarin belästigen. Etc pp.
> Es ist eben nur wieder der typisch oberflächliche Tam Artikel.
Danke. Viele weitere werden folgen.
Billiglohnland schrieb:> Irgendwie hätte man den Text jemanden schreiben lassen sollen, der die> deutsche Rechtschreibung beherrscht.
Sorry, meine westdeutsche Mitarbeiterin ist im Moment krank. Sie wird
wohl ab Donnerstag wieder da sein, und dann kann ich sie nochmal
drüberjagen.
lg aus BUD
Tam
Tam H. schrieb:> Weil IAR teuer ist?
Es liest sich so, als wären die GDV-R bisher nur mit IAR programmierbar
gewesen. Das ging afaik aber schon vorher mit gcc. Es macht ja auch
wenig Sinn einen Open Source Core einzubauen um dann einen speziellen
Compiler zu benötigen. Insofern ist der Titel schon verwirrend.
Tam H. schrieb:> Danke. Viele weitere werden folgen.
Ebenfalls Danke, der etwas andere Stil ist ja mittlerweile bekannt und
die üblichen Jubelstories der anderen sind langweiliger. Wenn man
weitere Fakten möchte, dann kann man immer noch Datenblätter sichten.
leser schrieb:> Tam H. schrieb:>> Neben sektiererisch inspirierten (da Opehn Sourz, gim‘me dat‘ VC money,>> yo!) Halbleiterhäusern zweifelhafter Provenienz steht mit GigaDevice ein>> chinesischer Traditions-Flashhersteller am Start.>> Für mich ist das relativ schwer zu lesen. Der schreibstil spricht mich> nicht an. Auch dir Aussage des Artikels verstehe ich nicht, auf was will> er hier raus?
Hallo,
sorry dass ich da etwas klausuliert schreiben muss.
Sagen wir es so: es gibt Piloten, und es gibt gute Piloten.
GigaDevice ist seit mehr als 10 Jahren am Markt und hat eine Reputation
zu verlieren. Ob das für eine kleine, VC-Kapitalgetriebene Klitsche auch
gilt, weiss ich nicht bzw will ich aus rechtlichen Gründen nicht wissen.
Gern reden wir per Threema offen darüber.
Tam H. schrieb:> Es steht doch OHNE IAR. OHNE heisst nicht mit.
Schöne oberflächliche Antwort.
Genauso oberflächlich wie deine Artikel.
Es hat doch einen Grund, wieso da "ohne IAR" steht.
Also schreib den Grund in den Artikel oder lass es weg in der
Überschrift.
Da könnt auch "ohne Segger Embedded Studio" stehen.
Eigentlöch müssts ja "mit Nuclei Studio" heißen.
-> Egal wie mans dreht und wendet, die Überschrift ist absolut deppert
gewählt.
Tam H. schrieb:> Weil IAR teuer ist? Warum soll man kein Heroin spritzen? Warum nicht die> süsse Nachbarin belästigen. Etc pp.
Dann schreibs in den Artikel!
Nur in der Überschrift ohne Begründung is das absolut dämlich.
Johannes S. schrieb:> Es liest sich so, als wären die GDV-R bisher nur mit IAR programmierbar> gewesen. Das ging afaik aber schon vorher mit gcc. Es macht ja auch> wenig Sinn einen Open Source Core einzubauen um dann einen speziellen> Compiler zu benötigen. Insofern ist der Titel schon verwirrend.
Exakt das.
Tam H. schrieb:> Steffen H. schrieb:>> ich habe den EWRISCV-MB "IAR Embedded Workbench for RISC-V, Mobile>> license" und der kostet 5000,00 EUR netto wem es interessiert. Mobile>> bedeutet, mit einem USB Dongle. Leider kann ich keinen Vergleich zu>> anderen Compilern ziehen.>> Hallo Steffen,> wenn du magst, testen wir im Rudel. Ich kann dir einige Codebeispiele> senden und die Codegröße, die mir meine Nucleo Installation gibt. Du> kannst die dann mit IAR nachkompilieren und wir vergleichen.
Hey, nicht schlecht!
Ich wär Euch sehr verbunden, wenn die Quelltexte und
die entstehenden binary's bei voller Optimierung hier im
Board gepostet werden könnten. :-O
Zum Lernen. :-P
mfg
Wenn ich nun schreibe, dass der Thread absolut belanglos ist, würde es
euch überraschen? Den RISC-V kann man auch mit anderen IDE's bearbeiten
als den IAR. Das ist in sofern auch keine neuer Erkenntnis, dass dies in
der Überschrift bereits suggeriert wurde.
Das Kindergartengezacke mal ad-acta zu legen und zum eigentlichen Thema
zurückkommen, dürfe wohl zuviel verlangt sein.
Tam H. schrieb:> GigaDevice ist seit mehr als 10 Jahren am Markt und hat eine Reputation> zu verlieren.
Naja für den hier diskutierten Typ gibt es nicht mal ein vernünftiges
Datenblatt. Der Artikel hier ist schräg und soll wohl die Raub oder
Lizenz China Chips Salongfähig machen. Dieser Typ ist auf vielen
BluePill Fake Boards drauf und lässt sich nicht einmal korrekt debuggen.
Ohne DB und Doku werde ich das Ding nicht anfassen.
Bernd N schrieb:> Dieser Typ ist auf vielen BluePill Fake Boards drauf und lässt sich> nicht einmal korrekt debuggen.
Sicher das du hier nicht Cortex-M und RISC-V durcheinander haust?
Bernd N schrieb:> Tam H. schrieb:>> GigaDevice ist seit mehr als 10 Jahren am Markt und hat eine Reputation>> zu verlieren.>> Naja für den hier diskutierten Typ gibt es nicht mal ein vernünftiges> Datenblatt. Der Artikel hier ist schräg und soll wohl die Raub oder> Lizenz China Chips Salongfähig machen. Dieser Typ ist auf vielen
Das ist weder Raub noch Lizenz sondern ein komplett eigenes Design.
Und: du beziehst dich auf den F103, der ist ARM und auf den Blue Pills.
Auch der ist ein komplett eigenes Design. GigaDevice hat eine
Zweichiploesung, SGS eine Einchiploesung. Bilder findest du bei Richard
Kaussler.
> BluePill Fake Boards drauf und lässt sich nicht einmal korrekt debuggen.> Ohne DB und Doku werde ich das Ding nicht anfassen.
Sicher dass es ein GigaDevice ist, UND dass du einen GigaDevice Debugger
verwendest? Wenn ja/ja (ich muss fragen) -> tamhan aeht tamoggemon
rundesding komm.
Johannes S. schrieb:> Bernd N schrieb:>> Dieser Typ ist auf vielen BluePill Fake Boards drauf und lässt sich>> nicht einmal korrekt debuggen.>> Sicher das du hier nicht Cortex-M und RISC-V durcheinander haust?
Ohja, tut er. Tun leider viele...
Mw E. schrieb:> Pille schrieb:>> Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt>> echt verwundert das im Artikel auf IAR nicht eingegangen wird?>>>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so>> schreibst..>> Ne, denk mal selber nach.> Wieso schreibt mans in eine Überschrift wenn man nicht darauf eingeht> wieso mans nicht mit IAR machen will oder sollte?> Oder am Ende auf Vor- und Nachteile eingeht?> Es ist eben nur wieder der typisch oberflächliche Tam Artikel.
Unfug. Ich entwickle auf einem Unix System für das es denke ich kein IAR
Entwicklungssystem gibt. Ich kann deshalb also durchaus was mit "ohne
IAR" anfangen. Ich benötige dazu keine zusätzliche Dokumentation über
die Rolle der Bedeutung.
Pille
Mw E. schrieb:> Pille schrieb:>> Ich finds lustig. In der Überschrift steht "ohne IAR" und Du bist jetzt>> echt verwundert das im Artikel auf IAR nicht eingegangen wird?>>>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so>> schreibst..>> Ne, denk mal selber nach.> Wieso schreibt mans in eine Überschrift wenn man nicht darauf eingeht> wieso mans nicht mit IAR machen will oder sollte?> Oder am Ende auf Vor- und Nachteile eingeht?> Es ist eben nur wieder der typisch oberflächliche Tam Artikel.
Unfug. Ich entwickle auf einem Unix System für das es denke ich kein IAR
Entwicklungssystem gibt. Ich kann deshalb also durchaus was mit "ohne
IAR" anfangen. Ich benötige dazu keine zusätzliche Dokumentation über
die Rolle der Bedeutung.
Pille
Lotta schrieb:> Mich würde interessieren, wer nun den kleinereren Maschinencode> macht:> Die IAR Workbench oder das Nuclei-Studio?>> mfg
...aus welchem Sourcecode bei welchem Optimizing-Level?
Käse..
Pille
Tam H. schrieb:> Ja, manchmal fragt man sich...>>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so>> schreibst..>>>> Pille>> Danke dir!
keine Ursache!
Pille
Tam H. schrieb:> Ja, manchmal fragt man sich...>>> Du solltest evtl. vor dem Posten noch mal überdenken was Du so>> schreibst..>>>> Pille>> Danke dir!
keine Ursache!
Pille
Mw E. schrieb:> Tam H. schrieb:>> Es steht doch OHNE IAR. OHNE heisst nicht mit.>> Schöne oberflächliche Antwort.> Genauso oberflächlich wie deine Artikel.>> Es hat doch einen Grund, wieso da "ohne IAR" steht.> Also schreib den Grund in den Artikel oder lass es weg in der> Überschrift.> Da könnt auch "ohne Segger Embedded Studio" stehen.>> Eigentlöch müssts ja "mit Nuclei Studio" heißen.>> -> Egal wie mans dreht und wendet, die Überschrift ist absolut deppert> gewählt.>> Tam H. schrieb:>> Weil IAR teuer ist? Warum soll man kein Heroin spritzen? Warum nicht die>> süsse Nachbarin belästigen. Etc pp.>> Dann schreibs in den Artikel!> Nur in der Überschrift ohne Begründung is das absolut dämlich.>> Johannes S. schrieb:>> Es liest sich so, als wären die GDV-R bisher nur mit IAR programmierbar>> gewesen. Das ging afaik aber schon vorher mit gcc. Es macht ja auch>> wenig Sinn einen Open Source Core einzubauen um dann einen speziellen>> Compiler zu benötigen. Insofern ist der Titel schon verwirrend.>> Exakt das.
Es tut mir wirklich leid Dir bescheinigen zu müssen das Du ein Stück
neben der Spur unterwegs bist. In der Überschrieft steht Nichts von
einem gutes-RISCV-ohne-IAR-Gesetz oder über eine Pandemie ohne
Krankheit. Es geht darum Code ohne IAR schreiben zu können und nicht um
die Begründung in Deinem letzten Steuerbescheid.
Für absolut dämlich halte ich allerdings die Diskussion auch. Macht doch
selber bessere Artikel eher Ihr völlig unkonstruktive Kritik übt!
Pille
Wieder mal der typische Kindergarten. Wie wäre es (bei wenigstens einem
Artikel) auf das Klötzchen einzugehen und sich daran zu halten, statt
sinnlos irgendwelche Beulen zu drücken...
Mich interessiert das RISC-V Thema auf jeden Fall. Leider kommt es nicht
so richtig in die Gänge. Lesestoff ist auch etwas rar. Oder ich fand es
noch nicht.
Der Artikel reißt zum Schluss einfach ab. Ein paar Links, wo und wie es
für Interessenten weiter geht, wäre willkommen. Danke.
"RISC-V [...] ist „nur“ eine Beschreibung einer Prozessorarchitektur"
Nein, es ist "nur" eine Beschreibung einer Befehlssatzarchitektur.
Klingt wie Erbsenzählerrei, ist aber etwas völlig anderes. Es gibt viele
unterschiedliche Prozessorarchitekturen, die diesen Befehlssatz
implementieren, von der 16-Bit Minimal-CPU ohne Pipelining bis zum
64-bit Monster mit 6 oder mehr Stufen, MMU und Hardware-Loops. Das sind
sehr unterschiedliche Prozessorarchitekturen für ein und dieselbe
Befehlssatzarchitektur oder Teilen davon. Zwar stellt der Befehlssatz
bestimmte Minimalanforderungen an die Prozessorarchitektur (z.B. Anzahl
und Größe der Register), aber das bedeutet nicht, dass alle RISC-V
Prozessoren die gleiche Architektur haben.