GigaDevice RISC-V: erste Schritte ohne IAR

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
extern int errno;
3

4
__WEAK int _open(const char *name, int flags, int mode)
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.

Zuerst erschienen bei Mikrocontroller.net News

Quelle: Read More