AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

8051 Emulator in Delphi programmieren

Ein Thema von DelphiManiac · begonnen am 6. Jun 2008 · letzter Beitrag vom 9. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#11

Re: 8051 Emulator in Delphi programmieren

  Alt 7. Jun 2008, 13:03
Hallo,

man braucht doch keinen Treiber, wenn es sich um ein eigenes Projekt handelt (und 8051 Code schon garnicht): hat man die Bediensoftware für das Gerät selbst geschrieben, so kann man ja die "Abbiegestelle" für den Emulator leicht in diese Software verlegen, also bei EMU=On wird die Übergabe an den Emulator aufgerufen und sonst eben die Ausgabe über USB.

Wenn man modern programmiert, hat man ja sowieso für die Kommunikation (USB,Ethernet,Emulator...) austauschbare Klassen geschrieben. Den Emulator selbst kann man je nach Lizenzpolitik getrennt liefern oder gleich mit einbauen.

Auch wenn man mit viel Feind auch viel Ehr ernten kann, sollte man doch einfache Lösungen wählen und nicht alles so kompliziert wie möglich machen, bloss um im Forum damit anzugeben. Eine Treiberentwicklung kostet mit Sicherheit das Vielfache.

Gruss Reinhard
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#12

Re: 8051 Emulator in Delphi programmieren

  Alt 7. Jun 2008, 20:18
Hallo,

danke für eure zahlreichen Antworten.
Nein einen Treiber will ich nicht mit Delphi entwickeln, ist auch gar nicht nötig.

Zitat:
man braucht doch keinen Treiber, wenn es sich um ein eigenes Projekt handelt (und 8051 Code schon garnicht): hat man die Bediensoftware für das Gerät selbst geschrieben, so kann man ja die "Abbiegestelle" für den Emulator leicht in diese Software verlegen, also bei EMU=On wird die Übergabe an den Emulator aufgerufen und sonst eben die Ausgabe über USB.
Genau so hatte ich mir das gedacht, die PC-Software ist an der Stelle natürlich anpassbar. Wie regelt man dann am sinvollsten die Kommunikation zwischen der PC-Software und meinem EMU?

Könnt ihr mir da ein paar Tipps geben?

Gruß
DelphiManiac
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#13

Re: 8051 Emulator in Delphi programmieren

  Alt 7. Jun 2008, 20:22
@sx2008

Zitat:
Das bedeutet aber, dass es nicht nötig (und auch nicht sinnvoll) ist, 8051 Code zu emulieren.
Irgendein Gerät hängt an einer USB-Schnittstelle und das gilt es per Software nachzubilden.
Ja das stimmt, ich muss den 8051 Quellcode in Delphi abbilden, muss ihn nicht unbedingt emulieren, hätte evtl,
Vor und Nachteile, Vorteile der Emulation wäre wohl, dass ich eine neue -Geräte-Firmware einfach übernehmen könnte.
Nachteil wäre wohl der hohe Entwicklungsaufwand.

Gruß
DM
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#14

Re: 8051 Emulator in Delphi programmieren

  Alt 7. Jun 2008, 23:32
Zitat von DelphiManiac:
@sx2008

Vor und Nachteile, Vorteile der Emulation wäre wohl, dass ich eine neue -Geräte-Firmware einfach übernehmen könnte.
Nachteil wäre wohl der hohe Entwicklungsaufwand.

Gruß
DM
Hallo,

da hast du recht, und zwar viel mehr als du wahrscheinlich denkst: du must ja zur Übernahme der Firmware nicht nur einen Emulator für 8051-Code schreiben, sondern auch für die gesamte Hardware - ein Befehl in ein Register eines PWM-Controllers oder einer Schnittstelle geschrieben kann recht komplexe Vorgänge auslösen, das muss dein Emulator ja auch alles können. Also nicht nur einen 8051-Kernel, sondern z.B. einen 80535 mit allem was drin ist.

Nachher nur die neue 8051-Derivat-Firmware in den Emulator zu laden ist eine Idealvorstellung, aber kaum jemand kann sich die Realisierung kostenmässig leisten.

Gruss Reinhard
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#15

Re: 8051 Emulator in Delphi programmieren

  Alt 8. Jun 2008, 14:46
@Apollonius

Zitat:
Warum hookst du nicht einfach CreateFile, ReadFile und CloseHandle?
Wie kann ich mich denn zwischen den Schnittstellenverkehr einhaken?
Wäre natürlich eine interessante geschichte, da ich so die bestehende Software weiternutzen kann.

Gruß
DM
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: 8051 Emulator in Delphi programmieren

  Alt 8. Jun 2008, 16:01
Zu API-Hooking kursiert eine ganze Menge im Netz.
In CreateFile müsstest du dann eben abhängig vom Namen der Datei einfach den Aufruf an Windows weiterreichen oder selbst agieren. In diesem Fall gibst du ein Pseudo-Handle zurück (zum Beispiel -2, -3, -4 - diese werden von Windows praktisch nicht verwendet). In ReadFile prüfst du auf dein Pseudohandle und gibst gegebenenfalls die gewünschten Testdaten heraus, andernfalls leitest du wieder an Windows weiter.
In CloseHandle verfährst du ähnlich.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#17

Re: 8051 Emulator in Delphi programmieren

  Alt 9. Jun 2008, 12:56
Könntest du / ihr mir da mal ein Beispiel geben?
Danke
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: 8051 Emulator in Delphi programmieren

  Alt 9. Jun 2008, 13:34
Ist das Wort 'Interpreter' schon gefallen? Wieso interpretierst Du nicht einfach den Byte-Code? Das habe ich einmal im Rahmen meiner Studienarbeit gemacht (DOS-Emulator). Ist schon 25 Jahre her, aber ich kann mich ganz gut dran erinnern.

Ich weiss nicht, wie beim 8051 I/O realisiert wird (Interrupts oder MMIO?), aber das bekommt man in jedem Falle hin.

Ich würde überhaupt nicht mit der echten Welt kommunizieren, dein Emulator gaukelt also dem Programm irgendeine Realität vor.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#19

Re: 8051 Emulator in Delphi programmieren

  Alt 9. Jun 2008, 15:27
Zitat von Apollonius:
Zu API-Hooking kursiert eine ganze Menge im Netz.
...
Hallo,

wozu denn hooken, wenn man die Software selbst geschrieben hat??? Wenn ich verschiedene Interfaces (ich meine hier physikalische) benutze, dann füge ich einfach eine Case-Anweisung ein, die umschaltet zwischen V24, Ethernet, USB, oder eben einem Simulator für das angeschlossene Gerät. Also etwa so:

Delphi-Quellcode:
function OpenChannel : bollean;
begin
case ActualInterface of
  0 : Result := OpenCOMx;
  1 : Result := OpenTCP;
  2 : Result := OpenUSB;
  3 : Result := OpenSimulator;
  end;
end;
und dazu ebenso WriteChannel, ReadChannel, CloseChannel.

Gruss Reinhard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz