Los foros del Guille

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 

Ya está a la venta Novedades de Visual Basic 9.0

Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

21/nov/2005
Por favor no repitas el mismo mensaje en varios foros, ya que sino, al final tendré que tomar medidas con los "repetidores".
Gracias.

  Foro: C / C++.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 54469 - Entrada/Salida de bajo nivel
IDAsuntoFechaNick 
54469 Entrada/Salida de bajo nivel19/12/10 21:03Mr. VB 6   
Hola a todos:
Quisiera acceder a los puertos de la maquina. Se que estan las funciones inp y outp, pero mi duda es donde estan los puertos, en que direccion de memoria. Hay forma de preguntarle al sistema o alguna funcion que te diga donde estan los puertos. Por otro lado se que muchos puertos tienen direccion estandar, aun asi me gustaria verificarlo mediante una funcion para no meter la pata.

Un saludo y gracias.
IDAsuntoFechaNick 
54489 Re: Entrada/Salida de bajo nivel (Resp: 54469)22/12/10 00:51Asterixco   
Hola.

Ningún sistema operativo serio te va a permitir hacer eso desde una aplicación, ya que violaría su integridad; existe por ahí un driver para Windows (solamente 32 bits) que permite entrada/salida directa, pero la no cooperación con el sistema operativo supone un riesgo muy alto de inestabilidad, bloqueos o incluso corrupción de datos. Necesitarías un equipo que ejecutase DOS (y en consecuencia unas herramientas de programación capaces de generar programas para DOS) o un Windows "de juguete", por ejemplo una máquina virtual con Windows 98, aunque la experiencia no sería la misma que sobre hardware real.

Existen puertos de hardware bien definidos (y fijos) casi desde los orígenes del PC, como el viejo controlador de interrupciones programable (PIC; los equipos con varios procesadores usan APIC, controlador avanzado de interrupciones), el temporizador de intervalos programables (PIT), la interfaz de teclado PS/2, los puertos serie (COM) y paralelo (LPT), o los canales IDE (interfaz ATA). La documentación sobre cómo programar algunos de ellos también es abundante. Sin embargo, con la introducción del Plug & Play y el bus PCI hace lo menos quince años, lo más normal es que otros dispositivos se configuren automáticamente en direcciones de puerto arbitrarias. Además, el espacio de puertos hardware de los procesadores x86 es limitado, solamente 64 KB, por lo que en muchos otros casos se "prefiere" la comunicación mediante entrada/salida mapeada en memoria. A lo mejor se puede obtener la información de los puertos asignados con alguna función del API de Plug & Play de Windows, de la misma forma que el administrador de dispositivos cuando pedimos "menú Ver, Recursos por tipo". Sin embargo, una cosa es saber la correspondencia de los puertos con los dispositivos y otra muy distinta cómo interactuar con ellos.

¿Qué quieres conseguir exactamente?

--------------------------------
Ramón Sola
(Para ayudar en lo que se pueda)


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
54493 Re: Entrada/Salida de bajo nivel (Resp: 54489)22/12/10 14:37Mr. VB 6   
Mi idea mas que nada era generar una clase que me permita trabbajar con el tiempo. Por eso buscaba acceder al puerto del timer, aunque solo para leerlo. Actualmente uso la funcion clock que tiene una presicion de 15-16 milisegundos.

Un saludo y muchas gracias por la respuesta.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
54566 Re: Entrada/Salida de bajo nivel (Resp: 54469)10/01/11 14:55dbarcena   
Si solo quieres trabajar con precisión utiliza las funciones del API QueryPerformanceFrequency y QueryPerformanceCounter.








Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 83 - App. iniciada: 18/11/2017 18:43:39 GMT - La hora GMT del servidor es: 18/11/2017 19:37:51 GMT