Vor vielen Jahren habe ich AVRBasic compiler entwickelt, in Delphi. Das war echt viel Arbeit damals.
Jetzt habe ich mehrmals darüber nachgedacht das es wäre gut einen Basic Compiler für RISC-V zu haben. Naja bis gestern! Gestern habe ich Claude prompt gegeben für RiscBasic compiler. Heute läuft es auf echten FPGA hardware, ein kleines Beispiel demo was console input liest und was auf UART rausgibt gibt es auch.
BASCOM für RISC-V. ☺
Darauf hat die Welt gewartet.
Aber nicht schlecht. Further so!
Das ist mehr AVRBasic (war früher da als BASCOM!) für RISC-V
Es ist für FPGA SoftCores, da ist mal wenig Speicher verfügbar.
RiscBasic ist für Konfigurationen mit 8K oder 4K Speicher.
Das ist erstaunlich was man mit KI in ein paar stunden hinkriegt. Bespiele laufen auf echten FPGA hardware, LED blinky, button lesen, UART read-write, einfaches PRINT, usw, vieles geht schon.
Das ist mehr AVRBasic (war früher da als BASCOM!) für RISC-V
Bei BASCOM würden sich wohl die Rentner und Pensionäre leichter tun.
Und schon die Messer wetzen. ☺
Es ist für FPGA SoftCores, da ist mal wenig Speicher verfügbar.
RiscBasic ist für Konfigurationen mit 8K oder 4K Speicher.
Mit einen RV32 auf Cy1 habe ich auch schon getestet.
Das ist erstaunlich was man mit KI in ein paar stunden hinkriegt.
Bespiele laufen auf echten FPGA hardware, LED blinky, button lesen, UART
read-write, einfaches PRINT, usw, vieles geht schon.
Naja,
Das ist für so etwas sicher unkritisch. Meine Innovationen teile
ich nicht mit einer K.I..☻
Da künnt ich sie ja auch gleich ans schwarze Brett heften.
RISC-V ist nicht RISC-V; was genau für eine Variante ist das?
Interessant könnte Dein Compiler sein, wenn er die RISC-V-Cores unterstützt, die der Hersteller WCH in seinen Microcontrollern der CH32V-Reihe verwendet, wie z.B. WCH32V003.
Hier gibt es eine Auflistung der verwendeten RISC-V-Cores:
Weiter unten auf der Seite sind drei Manuals verlinkt, die die Details der Cores beschreiben.
Diese Microcontroller sind für viele vermutlich leichter zugänglich als ein FPGA-Board; den erwähnten CH32V003 und auch andere gibt es in noch halbwgs einfach verarbeitbaren Gehäusebauformen (ab SO-8), und die einfacheren Modelle sind, da sie auch mit 5V betreiben werden können, auch recht "bastelfreundlich".
RISC-V ist nicht RISC-V; was genau für eine Variante ist das?
Interessant könnte Dein Compiler sein, wenn er die RISC-V-Cores
unterstützt, die der Hersteller WCH in seinen Microcontrollern der
CH32V-Reihe verwendet, wie z.B. WCH32V003.
Der compiler is sehr generisch, sollte auf jeden RV32I/RV32IC laufen.
Leider haben ich NUR FPGA Platinen was ich verwenden kann :(
Das ist eine einfache Platine mit einem CH32V003 drauf, einem USB-Programmier- und Debug-Adapter dafür und noch fünf weiteren CH32V003.
Der Händler bei Aliexpress ist die Firma WCH höchstselbst, über den kann man auch die µCs beziehen (die Verfügbarkeit schwankt aus irgendwelchen Gründen im Wochenverlauf).
Der CH32V003 wurde auch hier im Forum schon ausführlich beleuchtet.
Danke für den Link. Aber ich glaube ich bleibe bei FPGA's.
Das GitHub repo da sind 2 beispiele für AMD MicroBlaze v MCS
subsystem, mit GPIO und UART unterstützung
Das ist bedauerlich, denn Du könntest mit einem Compiler für real existierende Microcontroller sicherlich eine deutlich größere Zielgruppe erreichen.
Du wirst auch einsehen, daß ein "AMD MicroBlaze v MCS subsystem" sowohl deutlich mehr Platz auf der Platine wegnimmt als auch ganz erheblich mehr Geld kostet als ein CH32V003 im SO-8 oder SO-14 ... (die bekommt man im 50er-Gurtabschnitt für ca. 10 Euro)
GPIO und UART haben solche Microcontroller selbstverständlich auch, und mehr (auch SPI, I2C und ADCs gibt es).
Das ist bedauerlich, denn Du könntest mit einem Compiler für real
existierende Microcontroller sicherlich eine deutlich größere Zielgruppe
erreichen.
Das projekt ist ja öffentlich und kostenlos in GitHub, jeder kann da unterstützung
für Microcontroller einbauen. Hier ein beispiel wie man UART device definiert:
1
DEVICE UART0 AT &H8000_0000
2
REG RXDATA AT +0 READONLY ' RX FIFO
3
REG DATA AT +4 : 8
4
REG STAT AT +8 READONLY
5
BIT RXREADY = STAT.0 ' RX FIFO has data
6
BIT TXREADY = NOT STAT.3
7
END DEVICE
Der compiler erzeugt kleines code was sehr gut in 4K/8K system reinpasst, da kann man
auch kleine FPGA's nehmen die auch gehäusemässig klein sind, die von Lattice oder Gowin
Das ist bedauerlich, denn Du könntest mit einem Compiler für real
existierende Microcontroller sicherlich eine deutlich größere Zielgruppe
erreichen.
Du wirst auch einsehen, daß ein "AMD MicroBlaze v MCS subsystem" sowohl
deutlich mehr Platz auf der Platine wegnimmt als auch ganz erheblich
mehr Geld kostet als ein CH32V003 im SO-8 oder SO-14 ...
Ich habe CH32V003 include datei jetzt bei dem Kompiler, ist nicht komplett, aber
mindestens CPU type und ROM/RAM sind definiert. Dass heisst CH3V003 support is etwas
näher schon, nur ein datei ändern und dann sollten die Basic demos auf dem chinese
chip auch laufen. Aber wie gesagt TESTEN kann ich nur an FPGA boards...
BASCOM für RISC-V. ☺
Darauf hat die Welt gewartet.
Die Frage ist, was ist toter: RISC-V oder BASCOM?
RISC-V ist sicherlich nicht tot. Sehr lebendig sogar.
Da kann ein einfacher Basic Compiler schon sinn machen.
Zweifellos.
BASCOM ist sicher auch nicht so schnell tot zu bekommen.
Da schwirrt genug Code dafür herum, den man (ich) gelegentlich
für eigene Zwecke anpassen möchte. Oft wird da nicht mehr als
I2C an die Pins geschoben, Tasten abgefragt, und ein LCD angesteuert.
Mit den ESP32C3 existieren ja auch recht ausgewachsene Exemplare.