20.04.2013 Views

Descarga este documento en formato PDF - Ucontrol

Descarga este documento en formato PDF - Ucontrol

Descarga este documento en formato PDF - Ucontrol

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5 de 22<br />

facultad de quitarle el procesador y dárselo a otro si usted se ha excedido <strong>en</strong> su tiempo o hay algui<strong>en</strong> que ti<strong>en</strong>e<br />

mayor prioridad.<br />

En cuanto al destino hay unas cuantas clasificaciones pero me voy a conc<strong>en</strong>trar <strong>en</strong> los RTOS. Un RTOS<br />

(Sistema Operativo de Tiempo Real) es un sistema operativo concebido para dispositivos pequeños como los<br />

uC. Aunque el concepto de "tiempo real" es muy controversial, la idea es ejecutar determinadas tareas de<br />

forma que parece que cada tarea se está ejecutando <strong>en</strong> un sistema indep<strong>en</strong>di<strong>en</strong>te, donde el procesador y el<br />

resto de los recursos son sólo para ella.<br />

Los RTOS pued<strong>en</strong> ser utilizados también para computadoras grandes, pero la idea sigue si<strong>en</strong>do la misma,<br />

ejecutar las tareas cumpli<strong>en</strong>do estrictam<strong>en</strong>te con los requisitos temporales de cada una, sin violaciones de<br />

ninguna índole. Otro caso de SO, son los de propósito g<strong>en</strong>eral como UNIX, LINUX, Windows, <strong>en</strong> <strong>este</strong> caso a<br />

difer<strong>en</strong>cia de los RTOS, las tareas cambian de prioridades <strong>en</strong> función de satisfacer las exig<strong>en</strong>cias de los<br />

humanos que actúan como usuarios, no importa si algunas cosas se ejecutan o no cumpli<strong>en</strong>do tiempos<br />

estrictos.<br />

En la próxima <strong>en</strong>trega ya t<strong>en</strong>dremos código para ejecutar y ver como funciona un RTOS.<br />

[Volver al Índice]<br />

> Introducción al RTOS de CCS<br />

Después de teorizar un poco sobre los Sistemas Operativos, vamos a introducirnos <strong>en</strong> la programación de<br />

aplicaciones empleando un RTOS.<br />

En nuestro caso, para com<strong>en</strong>zar, utilizaremos el RTOS que vi<strong>en</strong>e con el compilador de CCS. Las razones de mi<br />

elección las expongo a continuación:<br />

- S<strong>en</strong>cillez <strong>en</strong> la implem<strong>en</strong>tación de aplicaciones.<br />

- El RTOS está integrado <strong>en</strong> el propio compilador de CCS.<br />

- Abundante experi<strong>en</strong>cia <strong>en</strong> el foro con <strong>este</strong> compilador.<br />

- Gran cantidad de dispositivos soportados por el compilador de CCS.<br />

La versión del compilador que t<strong>en</strong>go instalada <strong>en</strong> estos mom<strong>en</strong>tos es la 3.249, así que si <strong>en</strong> versiones<br />

posteriores han aparecido nuevas características, les ruego que lo inform<strong>en</strong> para tomar las debidas<br />

provid<strong>en</strong>cias <strong>en</strong> el mom<strong>en</strong>to oportuno, y com<strong>en</strong>zar a utilizar esas nuevas características.<br />

El RTOS de CCS es un Sistema Operativo de Tiempo Real que implem<strong>en</strong>ta la técnica de multiprocesami<strong>en</strong>to<br />

cooperativo (non preemptive), por lo que es responsabilidad del programador asegurarse de que el control del<br />

procesador retorna al planificador de tareas <strong>en</strong> algún mom<strong>en</strong>to. Así que cuando programemos nuestra<br />

aplicación, t<strong>en</strong>emos que asegurarnos de que no llamamos a una función que se queda esperando por algún<br />

ev<strong>en</strong>to largo como es el caso de gets(), o d<strong>en</strong>tro de un lazo infinito o demasiado ext<strong>en</strong>so.<br />

Planificador de tareas<br />

Uno de los elem<strong>en</strong>tos fundam<strong>en</strong>tales de cualquier SO es el planificador de tareas, éste señor es el<br />

administrador de nuestros recursos. Su misión fundam<strong>en</strong>tal es determinar d<strong>en</strong>tro de las tareas que están listas<br />

para ejecutarse, a cuál de ellas le <strong>en</strong>trega el procesador. La política de planificación empleada por CCS no la<br />

conozco, pero eso no importa porque el RTOS funciona y para lo que queremos hacer, nos sirve bi<strong>en</strong>.<br />

Directivas del preprocesador<br />

Exist<strong>en</strong> dos directivas del preprocesador para el uso del RTOS, ellas son:<br />

#USE RTOS: Se utiliza para indicarle al compilador que se va a utilizar el RTOS<br />

#TASK: Se utiliza para indicarle al compilador se la función definida a continuación es una tarea a ejecutar por<br />

el RTOS<br />

Vamos a ver más det<strong>en</strong>idam<strong>en</strong>te cada una de las directivas, así como sus parámetros de configuración:<br />

#USE RTOS : Opciones del RTOS:<br />

timer: especifica que temporizador, de los disponibles, es el que se utilizará para la ejecución de las tareas.<br />

Este temporizador solam<strong>en</strong>te debe ser utilizado por el RTOS y típicam<strong>en</strong>te se escoge Timer0.<br />

minor_cycle: especifica la cantidad de tiempo mínima que una tarea t<strong>en</strong>drá para ejecutarse, y los tiempos de<br />

ejecución de cada tarea deb<strong>en</strong> ser múltiplos de esta cantidad. Si por ejemplo decimos que el tiempo mínimo de<br />

ejecución para todas las tareas es de 1ms, debemos conocer que cada tarea se ejecutará, <strong>en</strong> m<strong>en</strong>os tiempo<br />

que <strong>este</strong>. Lo realm<strong>en</strong>te importante de <strong>este</strong> dato es que ayuda a establecer la frecu<strong>en</strong>cia con que se ejecutan<br />

las tareas, luego veremos un ejemplo de esto. Este parámetro, si no se especifica, es calculado por el<br />

compilador <strong>en</strong> el mom<strong>en</strong>to de la compilación.<br />

statistics: le indica al compilador que lleve las estadísticas de las tareas, esto sirve para conocer que tiempo

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!