µC Emulator [V# 0.0.3][Kernel/Parser OpenSource]

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

µC Emulator [V# 0.0.3][Kernel/Parser OpenSource]

Beitrag von cxAlex »

Servus.

Ein kleines Projekt von mir das ich in den letzten 3 Tagen entwickelt habe, eher etwas für die etwas bastlerisch veranlagten hier.

Es handelt um einen µC - Emulator der Byte - Code ausführen kann. Programmiert wird das ganze in einer Assembler - ähnlichen Sprache, es ist ein Editor mit Syntax-Highlighting, Auto-Completion und Befehls-Hilfen enthalten. Der Emulator stellt 4 32 Bit Ports zur Verfügung, an jeden können wahlweise Taster/Leds/7-Segment LED mit/ohne vorgeschaltenen Dezimal zu BCD Encoder/oder eine direkte Eingabe. Des weiteren lacht dich ein fröhliches Gesicht vom µC an und sorgt immer für gute Laune.
Der Emulator kann ~ theoretisch 2 Milliarden Ports ansprechen, wobei Port 0 ein direkter Input/Output vom User ist (InputRequester, MessageBox), die nächsten 32K Ports Storage Ports die einfach alles zurückspiegeln was man an sie sendet und die nächsten 32K Ports Special Function Ports sind (Bestimmte Anzahl Millisekunden warten, ...)
Sämtliche weiter Ports sind frei belegbar, etwa die 4 Ports des Emulators. In einer späteren Version möchte ich die Anzahl frei einstellbar machen, ist nur eine Frage wie ich die Ports am besten alle aufs Fenster bringe.

In Arbeit befinden sich derzeit mehr Input/Output - Mods (Voltmeter, Spannungsqellen/ Funktionsgeneratoren an ADC Convertern), Timer und ein Interrupt-Controller.

Der Editor und der Emulator sind eigenständig lauffähig, damit der bei einem Crash des Emulators (Stack Overflow, ...) beispielweise nicht der Emulator mit abstürzt. Der Emulator arbeitet nach Von Neumann Architektur und hat standardmäßig 1024 Stack-Einträge à 4 Byte Daten + 1 Byte OpCode zur Verfügung. Die Stack-Größe werde ich in einem späteren Release frei einstellbar machen.

Es sind bereits ein paar Beispielcodes verfügbar. Diese kann man mit µCEdit bearbeiten und danach per Execute->Send to Emulator an den Emulator senden oder direkt per µCEmulator ausführen. Das ganze funktioniert nach dem Schema: Datei auswählen->Program->Run (Stop->Reset). Einfach mal ein wenig ausprobieren.

Als kleines Beispiel das KidLed.txt, ein 8-Bit Lauflicht:
Port A auf LED, Port B aus Taster und Port C auf Direct stellen. Der Wert den man in Port C einstellt ist ein Delay um das Lauflicht zu verlangsamen. Taster 0 schaltet die Laufrichtung der LEDs um (Rechtslauf/Linkslauf) und Taster 1 aktiviert den "KIDMode" (abwechselnder Rechts/Linkslauf)

Den Source des Bytecode-Interpreter/ByteCode-Compiler und des Parsers, der Virtuellen I/O Schnittstelle, Virtuellen RAM - Verwaltung und Virtuellen Register werde ich als OpenSource veröffentlichen, es fehlt nur noch etwas Dokumentation.

Das ganze wurde zu Lernzwecken entwickelt, also nicht zu kritisch sein :wink:

Der Editor:
Bild

Der Emulator:
Bild

Download:
http://files.cxalex.bplaced.net/secure. ... uC_Emu.zip

Gruß, Alex
Zuletzt geändert von cxAlex am 13.07.2011 14:47, insgesamt 4-mal geändert.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: µC (Micro Controller) Emulator

Beitrag von DarkDragon »

Hmm naja, ich würde mir wünschen, dass da wenigstens ein offizielles System dahintersteckt. Sowas wie die 8051 oder PIC Simulatoren. Ansonsten ganz nett mal anzusehen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: µC (Micro Controller) Emulator

Beitrag von cxAlex »

Ich habe mich sogar bewusst dagegen entschieden mich genau an ein offizielles System zu halten. Ich kenne ein paar dieser Simulatoren, aber die Bedienung usw. ist nicht wirklich Benutzerfreundlich, bzw. wenn man sich nicht wirklich mit der Architektur des jeweiligen µC auskennt stößt man schnell an Grenzen. Das hier ist eher für Anfänger gedacht die überhaupt einmal verstehen wollen wie ein µC funktioniert ohne bereits an ein bestimmtes System gebunden zu werden.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: µC (Micro Controller) Emulator

Beitrag von RSBasic »

Kann es sein, dass die Datei "uC_Emu.zip" (267 KB (273.702 Bytes)) beschädigt ist? Bei mir wurde deine Anwendung 2x verpackt und ich muss daher auch 2x wieder extrahieren. Aber das zweite Archiv kann ich nicht entpacken, weil ich jedesmal bei jeder Datei die folgende Fehlermeldung bekomme: "Fehler 0x80004005: Unbekannter Fehler" / "Unbekannte Methode"
Ich habe die Datei auch erneut heruntergeladen, aber das zweite Archiv lässt sich nicht entpacken.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: µC (Micro Controller) Emulator

Beitrag von ts-soft »

winrar hat geschrieben:! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\Examples\GGT_PushPop_Recursive.txt.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\Examples\KidLed.txt.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\Examples\PortA_To_PortB.TXT.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\help\Help.htm.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\Scintilla.dll.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\µCEdit.exe.
! D:\TS-TEMP\test\µC Emu.zip: Unbekannte Methode in µC Emu\µCEmulator.exe.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: µC (Micro Controller) Emulator

Beitrag von cxAlex »

Wah. Bitte mit 7zip entpacken. Ich hab das letztens neu installiert,hat anscheinend die Std Packmethode umgestellt, das hatten wir schon mal :-P

Bin gerade nicht an meinem PC werde das so schnell es geht korregieren!

Gruß Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: µC (Micro Controller) Emulator

Beitrag von rolaf »

7zip sagt alles in Ordnung. Aber in der Tat doppelt gezippt. :mrgreen:

Bei 7zip Kompressionstärke bei ZIP immer auf "Normal" lassen, dann klappts auch mit anderen Entpackern.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
chi
Beiträge: 90
Registriert: 17.05.2007 09:30
Wohnort: Linz - Austria

Re: µC (Micro Controller) Emulator

Beitrag von chi »

"KIDMode" (abwechselnder Rechts/Linkslauf)
Hmm, ich glaube du meinst doch eher K.I.T.TMode oder?

Ansonsten... :allright:

Des weiteren lacht dich ein fröhliches Gesicht vom µC an und sorgt immer für gute Laune.

Werde µC nun täglich starten... Gute Laune kann ich immer brauchen <)


cheers, chi
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: µC (Micro Controller) Emulator

Beitrag von cxAlex »

Jup. Meine Ich ^^ War wohl doch schon müder als ich dachte.

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: µC (Micro Controller) Emulator [V# 0.0.2]

Beitrag von cxAlex »

Update V# 0.0.2

Einige GUI - Verbesserungen am Editor und Emulator, neue Beispiele Dezimal2BCD Encoder und Reaktions-Tester.
Der Source des Emulator-Kerns wurde nun als OpenSource beigelegt. Gegenüber der 1. Version wurde bereits ein Genereller Interrupt-Controller eingebaut auf dem später Timer usw. ansetzen werden.

Download im 1. Post

Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Antworten