Forum: Mikrocontroller und Digitale Elektronik Interpreter kleinstmöglich im Cortex


von dotm (Gast)


Lesenswert?

Hallo!
ich spiele mit dem Gedanken einem Messgerät an dm ich grade bastle über 
die bereits implementierte Consolenoberfläche noch eine 
benutzerprogrammierbare Scriptschnittstelle anzufügen, damit sich der 
ambitionierte Benutzer seine eigenen Algorithmen zusamenbasteln kann um 
z.B. einen Alarm auszulösen oder einen neuen Messwert abzuleiten.
Mal eine generelle Frage, gibt es sowas:
- Kleiner Scriptinterpreter in c geschrieben, egal welche Sprache.
- Kann mit float rechnen und hat auch einige mathematische Bibliotheken
- Gespeichertes Program besonders klein, RAM-schonend. Anweisungen 
möglicherweise abgekürzt oder so.
- verwendet keinen Heap (geht das überhaupt?!)
- Bietet eine Schnittstelle zu internen Variablen zb einfach so
1
int RunScript(int input_a, int input_b)
Nur mal der Interesse halber.
Guten Morgen.
M.

von LTC1043 (Gast)


Lesenswert?

Ich weiss nicht obs der kleinste ist, aber schau mal hier:

http://micropython.org/

Cheers

von LTC1043 (Gast)


Lesenswert?

Falls du dich mit Forth auskennst....

https://github.com/ekoeppen/CoreForth

von dotm (Gast)


Lesenswert?

LTC1043 schrieb im Beitrag #3775515:
> Falls du dich mit Forth auskennst....
>
> https://github.com/ekoeppen/CoreForth

Das ist halt assembler nicht c.

LTC1043 schrieb im Beitrag #3775513:
> Ich weiss nicht obs der kleinste ist, aber schau mal hier:
>
> http://micropython.org/
>
> Cheers

Das ist viel zu gigantisch! Ich hab etwa 2k ram übrig..

von Axel S. (a-za-z0-9)


Lesenswert?

Lua

von Bastler (Gast)


Lesenswert?

Wollt ich auch nennen, aber braucht laut eLua min. 256k Flash/64k RAM.

von MaWin (Gast)


Lesenswert?


von ggaasstt (Gast)


Lesenswert?

Alternativ könnte man sich mit yacc oder ähnlichen Tools einen eigenen 
kleinen Parser für eine eigene simple Sprache erstellen, die Programme 
erstellen einen passenden Parser in c.

von Dr. Sommer (Gast)


Lesenswert?

Warum muss das denn ein Script sein? Man könnte sich auch ein nettes API 
in C(++) bauen und dem User eine einfache Programmierumgebung geben. 
Mittels ein bisschen Linkerscriptmagic sorgt man dafür dass das 
User-Programm nachgeladen wird und auf die Funktionen des Hauptprogramms 
zugreifen kann. Mit der MPU kann man dafür sorgen dass es das 
Hauptprogramm nicht beeinträchtigen kann.

von gnuopfer (Gast)


Lesenswert?

Hier mal eine vernünfige sprache:

https://code.google.com/p/picoc/

Läuft auf einem STM32F103ZE ohne probleme...

von dotm (Gast)


Lesenswert?

gnuopfer schrieb:
> Hier mal eine vernünfige sprache:
> https://code.google.com/p/picoc/
>
> Läuft auf einem STM32F103ZE ohne probleme...

MaWin schrieb:
> https://sites.google.com/site/smallbasicinterprete...

Vielen dank euch beiden!

von dotm (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Mittels ein bisschen Linkerscriptmagic sorgt man dafür dass das
> User-Programm nachgeladen wird

Das geht systembedingt nicht da die einzige Userschnittstelle die 
textconsole ist (und sein soll).
Wisst ihr ob irgendeiner der genannten lösungen ohne heap auskommt?

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.