C/Visual C - como leer una bios

 
Vista:

como leer una bios

Publicado por diego (5 intervenciones) el 11/07/2003 05:38:04
hola saludos , alguien podria decirme como hago para leer la informacion de una bios fuera de mi placa, es decir en una bios ubicar los pines de vcc , gnd , clck, y los de entrada y salida , que seguro tiene y leerla por programa , con que funcion en lenguaje C podria hacerlo?, si alguien tiene un pedacito de codigo se lo agradeceria, hasta ahora puedo mandar o recibir un byte por lpt 1, gracias diego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo leer información de una BIOS externa y comunicarte con ella usando C

Publicado por Alejandro (1286 intervenciones) el 15/07/2025 20:19:31
Diego, para leer la información de una BIOS fuera de tu placa, especialmente si quieres acceder a los pines de VCC, GND, CLK, y las entradas y salidas, necesitas trabajar con la interfaz hardware adecuada y usar funciones que permitan manipular los pines de entrada/salida a nivel bajo.

Aquí tienes una solución general y algunos pasos que puedes seguir:

1. Identificación de los pines y conexión física:
- Primero, debes identificar los pines en la BIOS externa y conectarlos a un microcontrolador o a un puerto paralelo (LPT) que puedas controlar desde tu programa en C.
- Los pines de VCC y GND deben estar conectados a la fuente de alimentación y tierra, respectivamente.
- Los pines de CLK, entrada y salida, deben conectarse a los pines de entrada/salida del microcontrolador o del puerto paralelo.

2. Uso del puerto paralelo (LPT) en C:
- En sistemas Windows, puedes acceder al puerto paralelo usando funciones específicas o librerías que permitan manipular los pines del puerto LPT.
- En C, en entornos Windows, una opción es usar funciones de bajo nivel o librerías como `inpout32.dll` para acceder a los puertos I/O.

3. Ejemplo de código en C para comunicación con puerto paralelo:
- Aquí tienes un ejemplo básico para enviar y recibir un byte usando el puerto LPT1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <windows.h>
#include <stdio.h>
 
#define BASEPORT 0x378  // Dirección del puerto LPT1
 
// Función para escribir en el puerto paralelo
void writePort(BYTE data) {
    outp(BASEPORT, data);
}
 
// Función para leer del puerto paralelo
BYTE readPort() {
    return inp(BASEPORT);
}
 
int main() {
    // Abre el acceso a los puertos
    if (Out32) {
        printf("Acceso a los puertos obtenido.\n");
    } else {
        printf("Error al acceder a los puertos.\n");
        return 1;
    }
 
    // Ejemplo: enviar un byte
    writePort(0xFF);
    // Leer un byte
    BYTE valor = readPort();
    printf("Valor leído: 0x%02X\n", valor);
 
    return 0;
}

> Nota importante: Para usar `inp` y `outp`, necesitas incluir `<conio.h>` en algunos compiladores antiguos o usar librerías específicas como `inpout32.dll` en Windows. Además, trabajar con puertos I/O requiere permisos de administrador y puede ser peligroso si no se realiza correctamente.

4. Alternativa más segura y moderna:
- Usar un microcontrolador (como Arduino) para leer los pines de la BIOS y enviar los datos a tu PC vía USB o serie, y desde C en PC, leer esa comunicación.

5. Resumen:
- Identifica los pines y conecta a un puerto controlable.
- Usa funciones de acceso a puertos en C (`inp`, `outp`) o librerías específicas.
- Implementa la lógica para leer los pines y procesar la información.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar