Publicado el 9 de Junio del 2020
977 visualizaciones desde el 9 de Junio del 2020
943,3 KB
44 paginas
Creado hace 19a (23/03/2006)
Departamento
Electrónica
H
A
U
-
A
C
E
P
E
D
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
ENEN
MICROCONTROLADORES
MICROCONTROLADORES
Seminario de Microrrobots
21 – 23 de Marzo 2006
Oscar González Martínez
Departamento
Electrónica
Introducción
● Queremos construir un robot complejo.
¿Cómo lo podemos hacer?
Memoria
Motores
USB
Sensores
Cámara FW
Acceso a redes
Hombrecillo,
pensativo:
Programador
Departamento
Electrónica
Introducción
● Introducción
– Gracias al aumento de las prestaciones de los
Microcontroladores y Microprocesadores cada vez:
● su uso se ha extendido a muchos campos.
– Ordenadores, Teléfonos, Alarmas ... Robots
● Su tamaño y consumo se reducen más
● Permite creación de aplicaciones más potentes y
variadas.
● Ofrecen mayor velocidad y capacidad de cómputo
Departamento
Electrónica
Introducción
– Todo esto viene acompañado de un incremento de
la complejidad del dispositivo
Z80,8086 HC11,M68k ...
Pentium M, HC12, AT91X
Antes
Ahora
– Consecuencia:
D
A
T
L
U
C
F
D
I
I
INCREMENTO de la
dificultad en el diseño
de las aplicaciones,
programas
Departamento
Electrónica
Introducción
● ¿Cómo podemos implementar un sistema
complejo (robot) donde...:
– Existen diversos subsistemas que han de ser
controlados?
● Motores
● Sensores
● Control de Baterias...
MICROCONTROLADOR
MICROCONTROLADOR
Departamento
Electrónica
Introducción
– Deben funcionar de forma coordinada unos con
– Deben funcionar de forma coordinada unos con
– Deben funcionar de forma coordinada unos con
otros?.
otros?.
otros?.
– Dos opciones:
– Dos opciones:
– Dos opciones:
● 1ª: Nos lo “curramos” nosotros.
● 1ª: Nos lo “curramos” nosotros.
● 1ª: Nos lo “curramos” nosotros.
● 2ª: Usamos un “programa” que nos ayude.
● 2ª: Usamos un “programa” que nos ayude.
● 2ª: Usamos un “programa” que nos ayude.
PLANIFICADOR
PLANIFICADOR
Departamento
Electrónica
Introducción
– Necesitamos tener seguridad de que:
● Reaccione ante eventos en un tiempo máximo?
– Restricciones temporales: Sistema de Tiempo Real
● Se pueda recuperar ante errores leves y/o graves?
– Métodos para llevar al sistema a estados “estables” y conocidos
cuando se produzca algún tipo de error.
– Mecanismos de “Traza inversa”.
● Sea móvil y autónomo (consumo y tamaño reducidos)?
Sistema
Sistema
EMPOTRADO
EMPOTRADO
Departamento
Electrónica
Programación en uC
● DISEÑO DEL SISTEMA:
– Hasta ahora:
● Para la atención ante eventos
Rutinas de atención
a las Interrupciones
TAREA en
EJECUCIÓN
Microcontrolador
Evento
Planificación
de
Temporicación
Departamento
Electrónica
Programación en uC
– El desarrollo del software del sistema consistía en:
Programación de la aplicación EN SÍ
Planificación
Planificación de la temporización a nivel
de interrupción, estudiando su viabilidad
junto a la tarea principal en ejecución.
TIEMPO DE DESARROLLO ALTO
● Además de la dependencia directa con el microcontrolador
Programación
● COMPLICADO SI EL NÚMERO DE TAREAS AUMENTA
Departamento
Electrónica
Programación en uC
● Pero... ¿Y si utilizamos un “programa
específico”, sobre el que ejecutamos
nuestros programas, que conoce las
capacidades de nuestro hardware y nos
ayuda a manejarlo?
● Nos aporta funciones para “quitarnos”
trabajo, entre otras cosas, en:
– La ejecución “a la vez” de multiples tareas.
– La planificación y temporización de las tareas.
Departamento
Electrónica
Programación en uC
● Este modelo de desarrollo aporta:
– Disminuye la complejidad en la programación del
sistema.
● Se dedica más tiempo a la programación de la
aplicación en sí.
● Se incrementa la portabilidad de los programas al no
“hablar” estos directamente con el hardware.
PROGRAMAS
SO
HARDWARE
Departamento
Electrónica
Programación en uC
● Se hace uso de funciones genéricas que ahorran trabajo.
● Aumenta la seguridad ante errores simples/graves del
sistema.
a++;
int a;
while(CONDICION_VERDADERA)
{
}
/* CONDICION_VERDADERA sucede que nunca es
falsa */
– Posible error de desbordamiento de la variable “a”.
– Espera activa
EL SISTEMA SE PUEDE “COLGAR”
Departamento
Electrónica
Programación en uC
● Solución:
MICROCONTROLADOR
SISTEMA OPERATIVO
+
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
● ¿Qué es un Sistema Operativo?
– Conjunto de programas destinados a abstraer el
HW de un dispositivo al Usuario, gestionando sus
recursos de forma eficiente.
– Todos las aplicaciones del usuario se ejecutarán
haciendo uso de las PRIMITIVAS(funciones) que
aporta el S.O., evitando la comunicación directa de
éstos con el hardware.
SISTEMAS OPERATIVOS EN
Departamento
Electrónica
MICROCONTROLADORES
● ¿Por qué y para qué el uso de un SO?
– Ofrecen una visión menos compleja del HW
– Facilitan el manejo del HW aportando funciones al
usuario.
– Portabilidad de las librerias y programasº
– Hace parecer al usuario que se ejecutan todas las
aplicaciones al mismo tiempo.
– Aportan seguridad en el funcionamiento del sistema
y/o uso malintencionado de él mismo.
– Soporte ante posibles fallos de las aplicaciones que
se ejecutan.
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
Departamento
Electrónica
● Partes de un SO:
Programa 2
Programa 1
Programa 3
Aplicaciones
de Usuario
HAL(Hardware Abstration Layer)
MANEJADORES de DISPOSITIVOS
KERNEL del
S. O.
HARDWARE
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
● ¿Dónde se utilizan los SSOO?
– Dependiendo:
● de las funciones que nos ofrezcan:
– Sistemas Operativos Genéricos
– Sistemas Operativos Específicos
● del dispositivo que se emplee:
– uProcesador
– uControlador
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
Departamento
Electrónica
● Requisitos:
– El microcontrolador necesitará mayores recursos
que en el caso de no ejecutar un SO.
– Existen procesos que siempre se estarán
“ejecutando” consumiendo recursos.
● Hecho cada vez “menos relevante”, pues lo dispositivos
cada vez son más potentes.
– Aunque abstraiga el HW, es necesario por parte del
programador conocerlo y saber sus posibilidades.
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
– Los requisitos variaran en función de la aplicación,
pero como elementos básicos, son necesarios:
● Un dispositivo de almacenamiento no volátil:
– Lugar donde se almacenan el SO y los programas cuando
sistema está apagado.
– Memoria NVRAM, Flash...
● Memoria de ejecución: RAM
– Al arrancar se cargan el Kernel(SO), los programas y los datos
de usuario.
– Opcionales:
● Gestor de Memoria: MMU, DMA ...
– Cuando se use “Memoria Virtual” y/o “acceso directo a
memoria”
● Periféricos: Sensores, Teclado, Pantalla, etc.
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
● La Portabilidad
– Los microcontroladores se pueden programar
usando:
● Lenguaje Máquina:
– 000010011110111001...
● Lenguajes de Bajo Nivel: ENSAMBLADOR
– MOV AX, BX
● Lenguajes de Alto Nivel: BASIC, C, C++...
– A = B
– Al emplear lenguajes de alto nivel, “sólo” es
necesario compilar el programa para la arquitectura
del microcontrolador que se va a usar.
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
● El Planificador
– Programa que junto al “conmutador” decide que
tareas se ejecutan en cada momento.
– Distribuye el tiempo de ejecución en el
microcontrolador de las diferentes tareas de
usuario.
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
APLICACIONES DE
USUARIO
Compilador + Enlazador
Librerias
MÓDULOS
Sistema Operativo (KERNEL)
8051
AVR
ARM
MC68K
x86
uSPARC
PPC
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
● Tipos de SSOO
– Según la clase de sistema en el que se ejecutan:
● Ordenador Personal
● Dispositivo móvil: “Sistema Empotrado”
– PDA's, Móviles, Routers, Fotocopiadoras ... Robots
Departamento
Electrónica
SISTEMAS OPERATIVOS EN
MICROCONTROLADORES
– Según el tipo de licencia:
● Propietaria
– Código de los programas = CERRADO. No se pueden modificar
– Su obtención es a partir de un PAGO por licencia de uso
● Libre distribución
– Código de los programas puede ser leido por cualquier persona
– Su obtención a partir de diversas fuentes GRATUITAS
SISTEMAS OPERATIVOS EN
Departamento
Electrónica
MICROCONTROLADORES
– Según su tipo de respuesta ante eventos:
● Interactivos:
– Existe “interfaz” de usuario ya sea físico o visual.
– Su tiempo de respuesta ante eventos producidos por el usuario
tiende a ser corto.
● Tiempo Real
– Usados para aplicaciones donde el tiempo de ejecución es muy
importante.
– El tiempo de respuesta ante eventos está acotado a un valor
máximo.
Departamento
Electrónica
GNU/Linux - Kernel
● Breve Historia y Evolución
– 1991: Linus Torvalds escribe el Kernel de Linux en la Universidad de
Helsinki en 6 meses empleando su PC 80386.
– 1991: Linus comparte su kernel en la red, haciendo que los
programadores se queden asombrados, y deciden contribuir en el
proyecto de desarrollo del nuevo núcleo.
– 1992: Linux se libera bajo la licencia GNU General Public License
– 1994: La version 1.0 de Linux 1.0
– 1994: Se funda la empresa Red Hat por Bob Young y Marc Ewing,
creando un nuevo modelo de negocio entorno a Linux..
– 1995: GNU/Linux y el desarrollo de software libre se ponen a
disposición en los servidores de Internet.
– 2001: IBM invierte un 1 billion de dólares en Linux
– 2002: GNU/Linux comienza a adoptarse en diversos sectores de la
industria.
Departamento
Electrónica
GNU/Linux - Kernel
● Es el núcleo del Sistema Operativo
● Su código fuente es abierto. Se puede modificar.
● Es portable entre arquitecturas, además de
“configurable” a medida, sólo es necesario
compilarlo con las opciones y servici
Comentarios de: Sistemas Operativos en Microcontroladores (0)
No hay comentarios