WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan...
-
Upload
jose-reyes-moreno -
Category
Documents
-
view
227 -
download
1
Transcript of WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan...
![Page 1: WinDriver Conceptos, arquitectura,características y caso práctico Eduardo Marina Almazán Juan Carlos Macho Adalia Juan Antonio Torrico Portero.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/1.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/2.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/3.jpg)
¿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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/4.jpg)
¿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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/5.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/6.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/7.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/8.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/9.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/10.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/11.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/12.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/13.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/14.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/15.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/16.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/17.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/18.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/19.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/20.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/21.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/22.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/23.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/24.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/25.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/26.jpg)
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.](https://reader036.fdocument.pub/reader036/viewer/2022062309/5665b4b01a28abb57c933b89/html5/thumbnails/27.jpg)
Ejemplo práctico
case MENU_MAIN_SYSTEM_TIME: // Si ponemos un 3 saltamos a ejecutar
// System_Time, pasandole el Handle
System_Time(*phDev);
break;