2012-07-09 4 views
2

Je peux simplement accéder au port parallèle avec D dans Ubuntu comme ceci.D accès au port parallèle sous Windows

import std.stdio; 
import core.bitop; 

// parallel port address 
const uint port = 0x0c000; 

void main() 
{ 
    /* 
     permission related stuff under linux 
    */ 

    /* data */ 
    ubyte data = 0b_11111111; 
    outp(port, data); 
} 

Mais je voudrais lire et écrire sur un port parallèle sur Windows. Lorsque j'essaie ce code, j'obtiens ce message d'erreur.

object.Error: Privileged Instruction 
---------------- 
41377C 
4135F3 
4025BC 
4021B3 
4BD6F9 
1553C6 
---------------- 

Existe-t-il un moyen simple d'accéder au port parallèle sur Windows en utilisant D? Merci ..

Répondre

3

Windows ne permet pas aux programmes en mode utilisateur d'accéder directement au matériel. Vous aurez besoin d'écrire un pilote (fichier .sys), probablement en C (en utilisant le WINDDK). Vous devrez également acheter un certificat de signature de code pour permettre à votre pilote de s'exécuter sur des versions Windows 64 bits (ou désactiver la signature du pilote, si vous avez seulement besoin de l'exécuter sur votre machine).

+0

J'ai téléchargé Windows Driver Kit 7.1.0. Mais je ne sais rien à propos de C et de la programmation des pilotes Windows. Franchement, je fais du travail de programmation sous Ubuntu. Mais Intel n'a pas encore publié les pilotes graphiques Ubuntu pour mon nouvel ordinateur. Je pense que certaines personnes ont déjà écrit un pilote de périphérique pour le port parallèle. J'ai téléchargé ce [ce pilote de périphérique] (http://retired.beyondlogic.org/porttalk/porttalk.htm) et il semble fonctionner. Ce que je veux faire est de contrôler les LED avec un port parallèle. Mais je ne l'ai pas encore essayé sur une planche à pain. Votre réponse m'a beaucoup aidé. Merci beaucoup. – Erdem