Mi dedicación a la empresa privada comienza en 1986 después de terminar los estudios universitaria e incorporarme a la empresa valencia Etra, ahora Etra I+D, que pertenece al grupo empresarial GrupoEtra.
En todo este tiempo mi labor se ha centrado en el desarrollo de software empotrado para diferentes equipo utilizados en sistemas de control de tráfico y transporte.
Una de mis principales logros ha sido el desarrollo de un sistema operativo de tiempo real llamado POS (Preemtive Operating System) que permite la programación concurrente en arquitecturas i386 que arrancan en MSDOS.
Para programar con el POS se utiliza la versión para MSDOS del compilador gcc de GNU llamado djgpp. Con este compilador se generan programas que se ejecutan en modo protegido, con lo que pueden utilizar toda la memoria del procesador y no están limitados a los 640K del modo real. Para el uso del modo protegido se utiliza el extender CWDPMI, que ofrece los servicios del DPMI 0.9. Estos servicios también están soportados en las ventanas de MSDOS de Windows, con lo que el POS también puede funcionar bajo Windows, pero en este caso restringido a la respuesta temporal de la máquina virtual NTVM asociada a la ventana de MSDOS.
Las tareas en POS son totalmente interrumpibles (preemptives). Cualquier interrupción que active una tarea de más prioridad, puede dejar el control del procesador a la nueva tarea al salir de la interrupción. Esto junto con el bajo tiempo de latencia de los servicios del POS y los mecanicismos incorporados para evitar la inversión de prioridad lo hacen adecuado para su uso en aplicaciones de tiempo real estricto.
Una breve descripción del POS se puede encontrar aquí.
Las aplicaciones desarrolladas con el POS van desde el control de elementos de visualización sencillos basados en paneles de leds hasta complejos sistemas de comunicación por radio que gestionan el intercambio de información entre miles de subsistemas móviles.
En la actualidad mi interés se centra en la utilización del sistema operativo Linux para el desarrollo de sistemas empotrados así como su utilización en sistemas que requieran prestaciones de tiempo real.