ich möchte gerne von C/C++ Code aus Auf Speicher zugreifen der in einem Treiber festgelegt ist.
Es handelt sich hierbei um eine PCI-Karte die auf das Dual-Port Memory eines Microcontrollers zugreift.
Es gibt ein Programm (exe) womit ich auf diesen Speicher zugreifen kann AcmeView welches man hier finden kann:
www.softlookup.com/display.asp?id=7087 Die Hersteller seite gibt es nicht mehr wirklich und Sourcen schon garnicht. Das Programm ist ein allgemeiner "Speicher-Viewer"
Den Text "Hallo ich bin da" schreibt der Microcontroller in diesen Speicher. Man kann mit AcmeView auch dort reinschreiben und das reingeschrieben im Microcontroller auslesen
Ich möchte jetzt also in C-Code auf diesen Speicher zugreifen. Diese Speicher liegt ausserhalb des Addressraums des Arbeitsspeichers. Der Rechner hat 2GB Arbeitsspeicher.
Ich habe schon die WinIO.dll ausprobiert, damit kann ich allerdings nur innhalb des Arbeitspeichers lesen und schreiben.
Irgendwie muss ja AcmeView auch programmiert worden sein um einfach auf diesen Speicher zugreifen zu können, also muss es ja in C/C++ möglich sein dieses auch lesen zu können.
Du bräuchtest im Prinzip einen Treiber für dein Gerät, welches dir über eine API den Speicherraum des Mikrocontrollers in deiner Anwendung verfügbar macht.
Denke da solltest du dich mal mit dem Windows DDK (Driver Development Kit) auseinander setzen.
AcmeView läd effektiv auch nur einen Treiber, der ihm dann den zugriff auf den Kernelspace erlaubt. -- class God : public ChuckNorris { };
wollt nur mal sagen dass www.zealsoftstudio.com/memaccess/ ein super Tipp war. Damit kann ich PCI-Speicher auslesen. Kost zwar Geld, aber das ist es auch Wert. Die kostenlose version hat ein 5 Sekunden Timer, der beim Debuggen ziehmlich nervt.