2012-07-09 4 views
2

이렇게 우분투에서 D로 병렬 포트에 액세스 할 수 있습니다.D 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); 
} 

하지만 읽고 창에 병렬 포트에 쓰고 싶습니다. 이 코드를 사용하면이 오류 메시지가 나타납니다.

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

D를 사용하여 Windows에서 병렬 포트에 액세스하는 간단한 방법이 있습니까? 감사합니다 ..

답변

3

Windows는 사용자 모드 프로그램에 직접 하드웨어 액세스 권한을 부여하지 않습니다. 드라이버 (.sys 파일)를 작성해야하며, C (WINDDK 사용)가 가장 가능성이 큽니다. 또한 드라이버가 64 비트 Windows 버전에서 실행될 수 있도록 코드 서명 인증서를 구매해야합니다 (또는 컴퓨터에서만 실행해야하는 경우 드라이버 서명을 사용하지 않도록 설정).

+0

Windows 드라이버 키트 7.1.0을 다운로드했습니다. 하지만 C와 윈도우 드라이버 프로그래밍에 대해서는 아무 것도 모른다. 솔직히 말하면 우분투에서 관련된 작업을 프로그래밍합니다. 하지만 인텔은 내 새 컴퓨터 용 우분투 그래픽 드라이버를 아직 발표하지 않았다. 나는 어떤 사람들은 이미 병렬 포트 용 장치 드라이버를 작성했다고 생각한다. 이 [이 장치 드라이버] (http://retired.beyondlogic.org/porttalk/porttalk.htm)를 다운로드했는데 작동하는 것 같습니다. 내가하고 싶은 것은 병렬 포트로 LED를 제어하는 ​​것이다. 하지만 브레드 보드에서 아직 시도하지 않았습니다. 당신의 대답은 제게 많은 도움이되었습니다. 고마워. – Erdem

관련 문제