windriver conceptos, arquitectura,características y caso práctico eduardo marina almazán juan...

27
WinDriver Conceptos, arquitectura,característica s y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Upload: jose-reyes-moreno

Post on 24-Jan-2016

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

WinDriver

Conceptos, arquitectura,características y

caso práctico

Eduardo Marina Almazán

Juan Carlos Macho Adalia

Juan Antonio Torrico Portero

Page 2: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Vamos a ver...

¿Porqué un lenguaje 4GL? ¿Qué es WinDriver? Ventajas de WinDriver Desarrollo genérico de un

Driver Driver para un USB Driver para una tarjeta

PCI/ISA/CardBus Ejemplo Práctico

Page 3: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

¿Porqué un lenguaje 4GL?

Reducen tiempos y costes de desarrollo El usuario solo se preocupa de lo que hace,

no de cómo lo hace Orientados a entornos específicos Generadores de informes Entornos de desarrollo

Page 4: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

¿Qué es WinDriver?

¿Qué es lo que hace realmente WinDriver?

¿Qué sistemas operativos soporta?

¿Qué arquitecturas soporta?

Características

Page 5: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Veamos las características

Plataforma cruzada Asistentes Performance en modo Kernel

Page 6: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ventajas de WinDriver

Facil desarrollo

Friendly Wizards

Facilidad de uso de Driver Wizards

Page 7: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Desarrollo genérico de un Driver en Windows y Linux

Page 8: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Desarrollo de un driver genérico

1. Inicio de DriverWizard

2. DriverWizard genera código.

3. Modificar código

4. Ejecutar y depurar

Page 9: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Driver para un USB

Módulos generados:- O windrvr.h

- O wdu_lib.h

- O windrvr_int_thread.h

- O windrvr_events.h

- O utils.h

- O status_strings.h

Page 10: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Driver para un USB

• Graphical Debugger

• WinDriver consola

• WinDriver paquete de distribución

• UTILIDADES

- Usb_diag.exe

- Pci_dump.exe

Page 11: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

DRIVER PARA PCI/ISA/CardBus

Módulos generados- O windrvr.h

- O wdu_lib.h

- O windrvr_int_thread.h

- O windrvr_events.h

- O utils.h

- O status_strings.h

Page 12: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

DRIVER PARA PCI/ISA/CardBus

• DriverWizard• Graphical Debugger

• WinDriver paquete de distribucion.

• Utilidades: - Pci_dump.exe

- Pci_diag.exe

- Pci_scan.exe

- Pcmcia_diag.exe

Page 13: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

EJEMPLO PRÁCTICO

GENERAREMOS UN DRIVER PARA ACCEDER AL

RELOJ DE TIEMPO REAL DEL SISTEMA

Page 14: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Dirección de la CMOS Contenido00 Segundos02 Minutos04 Horas06 Día de la semana07 Día del mes08 Mes09 Año

Page 15: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Lanzamos la aplicación

Page 16: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Crear nuevo dispositivo

Page 17: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Debemos definir el mapa de entrada y salida

Page 18: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Definimos registros de direcciones y datos

Page 19: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Comprobamos la definición de dichos registros

Page 20: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Seleccionamos el registro de datos

Page 21: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Generamos el código del driver

Page 22: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Código generado

* Cmos_clock_diag.c

* Cmos_clock_lib.h

* Cmos_clock_lib.c

* Windriver/simples/shared/wdc_diag_lib.h

* Windriver/simples/shared/wdc_diag_lib.c

Page 23: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Inserción del código nuevo1. Modificar el programa de diagnostico 2. Crear una función.3. Conseguir que se ejecute System_Time()4. Modificar la definición de System_Time()

i. inicializar espacio de direccionesii. Inicializar el dispositivoiii. Configurar el offsetiv. Configurar modo de accesov. Realizar escrituras y lecturasvi. Dar formato.

Page 24: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

Código del driver. (parte que añadimos nosotros)int System_Time(WDC_DEVICE_HANDLE perif)

{

DWORD dwOffset; BYTE bHora;

BYTE bMinutos;BYTE bSegundos;BYTE bDiaMes;BYTE bMes;BYTE bAnyo;

UINT32 u32Data = 0; BYTE Datos;};

Page 25: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

CMOS_CLOCK_Writedireccion (perif, 04);// Escribimos en el registro de direccionesbHora=CMOS_CLOCK_Readdatos (perif);// Leemos del registro de datos y lo almacenamos en bHoraCMOS_CLOCK_Writedireccion (perif, 02);// Escribimos en el registro de direccionesbMinutos=CMOS_CLOCK_Readdatos (perif);// Leemos del registro de datos y lo almacenamos en bMinutosCMOS_CLOCK_Writedireccion (perif, 00);// Escribimos en el registro de direccionesbSegundos=CMOS_CLOCK_Readdatos (perif);// Leemos del registro de datos y lo almacenamos en bSegundosCMOS_CLOCK_Writedireccion (perif, 07);// Escribimos en el registro de direccionesbDiaMes=CMOS_CLOCK_Readdatos (perif);

Page 26: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

// Leemos del registro de datos y lo almacenamos en bDiaMesCMOS_CLOCK_Writedireccion (perif, 8);// Escribimos en el registro de direccionesbMes=CMOS_CLOCK_Readdatos (perif);// Leemos del registro de datos y lo almacenamos en bMesCMOS_CLOCK_Writedireccion (perif, 9);// Escribimos en el registro de direccionesbAnyo=CMOS_CLOCK_Readdatos (perif);// Leemos del registro de datos y lo almacenamos en bAnyoprintf("Anyo:200%x ", bAnyo);printf("Mes:%x ", bMes);printf("Dia:%x ", bDiaMes);printf("Hora:%x ", bHora);printf("Minuto:%x ", bMinutos);printf("Segundo:%x ", bSegundos);return 0;

Page 27: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero

Ejemplo práctico

case MENU_MAIN_SYSTEM_TIME: // Si ponemos un 3 saltamos a ejecutar

// System_Time, pasandole el Handle

System_Time(*phDev);

break;