Forum: Mikrocontroller und Digitale Elektronik Arduino: kleiner Zeileneditor auf dem AVR selbst


von Markus (Gast)


Lesenswert?

Hat schon mal jemand versucht, auf dem Arduino Uno selbst einen kleinen 
Editor zu schreiben?

Ich meine einen Editor, mit dem man sich mit dem Terminalprogramm 
verbinden kann und dann z.B. einen String zu verändern.

von Jacko (Gast)


Lesenswert?

Erinnert mich an gruslige EDLIN-Zeiten unter DOS vor
40 Jahren. Komfort = NULL, oder eher MINUS-MINUS-MINUS.
(Der Editor sollte ja nur wenige KB Speicher kosten!)

- Linuxer tun sich das aber auch heute noch gern an. ;-)
  Muss vielleicht eine seltsame Befriedigung liefern.

Mit RS-232-Terminal?
Nette Idee - besonders, weil du bei neueren PCs keine
Schnittstelle mehr dafür hast. Und bei WIN10 auch große
Schwierigkeiten hast, eine "anerkannte" Serial-Port-Karte
zu beschaffen UND mit Treiber einzubinden.

Naja - Vielleicht gehts über RS232-USB-Umsetzer!

Erzähl doch mal, was du bisher geschafft hast...

von Benedikt S. (benedikt_s)


Lesenswert?

Kann man den AVR Flash überhaupt währendes des Betriebs umschreiben?

von S. R. (svenska)


Lesenswert?

Programmieren auf dem Arduino selbst ist schwierig. Der Arduino-Compiler 
läuft nicht auf einem Arduino. Ein reiner Texteditor ist ein bisschen 
Arbeit, aber kein Problem.

Wichtiger ist aber, wo der Editor seine Daten herholt und wo er sie 
hinschreibt. RAM ist einfach, aber witzlos. Der interne Flash ist 
deutlich schwieriger schreibend anzusteuern und eine externe SD-Karte 
braucht zusätzliche Hardware und Treiber.

Benedikt S. schrieb:
> Kann man den AVR Flash überhaupt währendes des Betriebs
> umschreiben?

Ja, das machen Bootloader auch, um z.B. Updates via UART zu ermöglichen.

: Bearbeitet durch User
von Phil J. (exloermond)


Lesenswert?

Reicht dir ein Terminal Emulator, so aka VT100?

von Einer K. (Gast)


Lesenswert?

Editor, Kompiler, usw...
http://flashforth.com/

von Tja (Gast)


Lesenswert?

Tja, gabs alles schon vor Jahrzehnten...

https://www.pjrc.com/tech/8051/paulmon2.html


Schreibs einfach um;-)

von Tja (Gast)


Lesenswert?

Da fällt einem der Kitt aus der Brille, gelle?

von janu (Gast)


Lesenswert?

Der Ultramon fuer 8+0+5+1 ist viiiiel schicker.

Der kann sogar selber assembliern.

von c-hater (Gast)


Lesenswert?

Benedikt S. schrieb:

> Kann man den AVR Flash überhaupt währendes des Betriebs umschreiben?

Klar. Jedenfalls bei bei allen AT(X)megas und bei den allermeisten 
ATtinies auch.

Natürlich sind jeweils die relevanten Fuses entsprechend zu setzen und 
bei den AT(X)megas ist zumindest die entscheidende Instruktion ("spm") 
explizit im Bootloader-Bereich zu plazieren.

In einer vernünftigen Programmiersprache ist das alles überhaupt kein 
Problem und komplett und leicht nachvollziehbar direkt im Quelltext zu 
schreiben. In C allerdings muss man schwere Syntaxblähungen und 
Linker-Magie bemühen...

Ja, C ist ist schon sowas von geil und einfach...

von Paul (Gast)


Lesenswert?

Wo soll es diesen Ultramon geben?

Nix google...

von Markus (Gast)


Lesenswert?

Zunächst sei erwähnt, dass ich in der Überschrift nach einem 
Zeileneditor gefragt habe und nicht nach einer Programmiersprache.

Aber nichts desto trotz:

>Editor, Kompiler, usw...
>http://flashforth.com/

Mit Forth habe ich schon einiges gemacht.
Meistens wird heutzutage auf Mikrocontrollern in C programmiert und es 
gibt sehr viel Software und Bibliotheken. Deshalb macht Forth für mich 
nur dann Sinn, Wenn man den Forth Interpreter/Compiler in ein 
vorhandenes C-Programm einbinden kann. Dann kann man das Forth oder ein 
Subset davon für Debugging-Zwecke und schnelle Tests im C-Programm 
nutzen.
Damit das Ganze Sinn macht, soll der Speicherabdruck ziemlich klein 
sein. 4-5KByte würde ich dem System zugestehen.

von nicht“Gast“ (Gast)


Lesenswert?

Jacko schrieb:
> Nette Idee - besonders, weil du bei neueren PCs keine Schnittstelle mehr
> dafür hast. Und bei WIN10 auch große Schwierigkeiten hast, eine
> "anerkannte" Serial-Port-Karte zu beschaffen UND mit Treiber
> einzubinden.

Komisch, da habe ich das doch glatt falsch gemacht. Ich hatte einfach 
die erstbeste Karte beim Reichelt bestellt und in den Slot gestopft.

Lief ohne Probleme.

von Hurra (Gast)


Lesenswert?

Benedikt S. schrieb:
> Kann man den AVR Flash überhaupt währendes des Betriebs
> umschreiben?

Wie macht der AVR aus Text dann Maschinencode?
Packst du den Compiler/Assembler mit auf den AVR?
Passt der denn ins Flash?

Fragen über Fragen ;-)

Falls gemeint sein sollte:
Einen Text sereiell empfangen und im Speicher des AVR bearbeiten, 
dagegen spricht gar nichts. C stellt viele Stringfunktionen zur 
Verfügung, mit denen das wunderbar geht.
Mein MP3-Player hat zum Beispiel ein DOS-Ähnliches Benutzerinterface 
über USB-CDC zum Testen von Funktionen. Mit Sachen wir "dir" "cd musik" 
"play test.mp3" "set volume 60" und ähnlichem.
Das geht sehr schön mit strstr(); atoi(); snprintf(); und ähnlichem.
Koppel das mit FATFS, und einem richtgem "edit" steht nichts im Wege.

Warnung: String-Funktionen sind NICHT billig, was Flash angeht.

von Cyblord -. (cyblord)


Lesenswert?

nicht“Gast“ schrieb:
> Jacko schrieb:
>> Nette Idee - besonders, weil du bei neueren PCs keine Schnittstelle mehr
>> dafür hast. Und bei WIN10 auch große Schwierigkeiten hast, eine
>> "anerkannte" Serial-Port-Karte zu beschaffen UND mit Treiber
>> einzubinden.
>
> Komisch, da habe ich das doch glatt falsch gemacht. Ich hatte einfach
> die erstbeste Karte beim Reichelt bestellt und in den Slot gestopft.
>
> Lief ohne Probleme.

Als wenn es heute noch Probleme damit gäbe. Entweder Karte oder USB-TTL 
Wandler (mit machgeschaltetem MAX232 wers braucht).
Diese Horrorgeschichten stammen aus der dunklen Übergangszeit, als die 
HW mäßigen seriellen Schnittstellen verschwunden sind, und die 
USB-Wandler der ersten Stunde noch ein paar Macken hatten.
Manche Zeitgenossen bleiben eben ewig auf einem Stand und erzählen noch 
ihren Urenkeln von Problemen die es schon lange nicht mehr gibt.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Markus schrieb:
> Hat schon mal jemand versucht, auf dem Arduino Uno selbst einen kleinen
> Editor zu schreiben?

In MCURSES ist ein Zeileneditor eingebaut, siehe 
MCURSES: getnstr. Diese Funktion lässt sich aber nur innerhalb der 
MCURSES-Umgebung nutzen, d.h. Du machst sämtliche Ausgaben 
ausschließlich über MCURSES.

: Bearbeitet durch Moderator
von Amateur (Gast)


Lesenswert?

Irgendwie erschließt sich mir der Sinn des Ganzen nicht!

Um einen Editor zu betreiben braucht man das volle Programm der 
Eingabemöglichkeiten - sprich einen Tastenathur.

Aus meiner Sicht nicht sonderlich sinnvoll - es sei denn - der User soll 
seinen Namen, seine Adresse, und seine Schuhgröße eingeben.

Dazu ist aber wiederum eine Ausreichende Anzeige vonnöten.

Hoppla: Die Dinger nennen sich Terminal...

von olaf (Gast)


Lesenswert?

Die Frage ist wofuer man das braucht.
Wenn es fuer Debuggingzwecke sein soll, ich nehme dafuer flex.
Da kann ich mir einfach beliebige Testwoerte und Datenbereiche
definieren und der dazugehoerige Parser wird automatisch erzeugt
und ruft dann meine Testfunktionen mit den uebergebenen Parametern
auf. Erfordert am Anfang vielleicht 2-3h einarbeitung, aber die lohnen
sich.

Olaf

von bitwurschtler (Gast)


Lesenswert?

Jacko schrieb:
> Erinnert mich an gruslige EDLIN-Zeiten unter DOS vor
> 40 Jahren. Komfort = NULL, oder eher MINUS-MINUS-MINUS.
> (Der Editor sollte ja nur wenige KB Speicher kosten!)

mit kbytes kannste schon ein Textverarbeitung schreiben, für einen 
Zeileditor reichen ein paar Bytes. Was soll der denn auch mehr können 
als char einfügen und Cursor_pointer hochzählen???

frühe Homecomputer brauchtes dergleichen im BIOS-RAM mit und einen 
Basic-Interpreter oben drauf, plus Zeichensatz und hexmoni -> 20 kbyte.

von Markus (Gast)


Lesenswert?

>Wenn es fuer Debuggingzwecke sein soll, ich nehme dafuer flex.

Das kenne ich nicht:
https://www.tutorialspoint.com/flex/flex_overview.htm
Aber es hört sich eher nach etwas an, was man für Web-Applikationen 
nutzt.

von M.N. (Gast)


Lesenswert?

Hm, so ein vi(m) auf nem µC wäre schon interessant.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

M.N. schrieb:
> Hm, so ein vi(m) auf nem µC wäre schon interessant.

Eher wohl ein Hex-Editor:

 MCURSES: Beispielanwendung

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.