SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Sistema
operativo
en tiempo
real
(FReertos)
FreeRTOS
Sistema Operativo:
KERNEL:
Multitarea en sistemas embebidos
Sistema operativo en tiempo Real o RTOS
FreeRTOS
FreeRTOS
Es un sistema operativo de tiempo real kernel para dispositivos embebidos que ha
sido portado a 35 plataformas de microcontrolador.​ Está distribuido bajo el MIT
Licencia.
FreeRTOS
FreeRTOS diseñado para ser simple. Proporciona métodos para múltiples subprocesos o hilos , mutexes,
semáforos y temporizadores de software. Además de soportar prioridades de hilos.
Tiene un modo tickless para reducir el consumo energético. En FreeRTOS las aplicaciones pueden
ser asignadas de manera completamente estáticas. Alternativamente en RTOS los objetos pueden ser
asignados de manera dinámica con cinco esquemas previstos de asignación de memoria :
•Solo Asignar.
•Asigna y libera con un algoritmo muy simple y rápido.
• Asignar con un algoritmo más complejo pero rápido de asignación y liberación con coalescencia de memoria
•Asignar con una alternativa al esquema más complejo que incluye la coalescencia de memoria que permite
dividir un montón en múltiples áreas de memoria.
•Biblioteca C asignan y liberan con alguna protección de exclusión mutua.
El énfasis está en la compacidad y la velocidad de ejecución. FreeRTOS se puede considerar como una
'biblioteca de hilos' en lugar de un 'sistema operativo'.
FreeRTOS implementa múltiples subprocesos haciendo que el programa anfitrión llame a un método de
marcación de subprocesos a intervalos cortos y regulares. El método de marca de hilo cambia las tareas en
función de la prioridad y un esquema de programación de turno rotativo. El intervalo habitual es de 1/1000 de
segundo a 1/100 de segundo, a través de una interrupción de un temporizador de hardware, pero este intervalo
a menudo se cambia para adaptarse a una aplicación en particular.
El sitio FreeRTOS.org también contiene una gran cantidad de documentación y tutoriales de RTOS.
FreeRTOS
Funviones de Hilo:
void nombreFuncion (void *argumento);
Estados de hilo
Definición y creación de los hilos
osThreadDef (nombre, funcionHILO, prioridad, instancia, stack);
osThreadID NombreManejador;
NombreManejador=osThreadCreate(osThreadDef(nombre), void argument);
osThreadTerminate(NULL);
FreeRTOS
Funviones de Hilo:
void nombreFuncion (void *argumento);
Estados de hilo
Definición y creación de los hilos
osThreadDef (nombre, funcionHILO, prioridad, instancia, stack);
osThreadID NombreManejador;
NombreManejador=osThreadCreate(osThreadDef(nombre), void argument);
osThreadTerminate(NULL);
FreeRTOS
Escribir un código que permita al sistema operativo en tiempo
real (FreeRTOS) manejar dos hilos de ejecución. En el cual, uno
se encarga de cambiar el estado de un LED cada medio
segundo, mientras que el otro se encargará de trasmitir un
cadena de caracteres utilizando el modulo UART, mostrando
que ambos hilos se “ejecutan” independientemente uno del
otro y en paralelo.
EJEMPLO
FreeRTOS
Seleccionamos el PIN C13 para
colocar el LED que se debe
encender y apagar.
EJEMPLO
GPIO_Output
FreeRTOS
EJEMPLO
Seleccionamos el
USART1 en modo
Asíncrono para
transmitir una cadena
de caracteres. GPIO_Output
FreeRTOS
Habilitamos el FreeRTOS (sistema
operativo que nos permite el
manejo de múltiples hilos)
EJEMPLO
GPIO_Output
FreeRTOS
Habilitamos el cristal externo como
fuente de reloj Externo.
EJEMPLO
GPIO_Output
FreeRTOS
EJEMPLO
FreeRTOS
Cuando se utiliza FreeRTOS, se
debe utilizar otra base de tiempo
que no sea la de la librería HAL. Por
tal motivo, en la opción de SYS en
Timebase Source seleccionamos
TIM1 como el generador de la base
de tiempo.
EJEMPLO
GPIO_Output
FreeRTOS
Configuramos los módulos seleccionados y
algunas opciones del FreeRTOS.
EJEMPLO
FreeRTOS
Configuramos las opciones de la
comunicación USART1, como la
velocidad (la que mas le conviene
al programador, en este caso será
de 9600 baudios), la longitud del la
palabra de bits, etc.
EJEMPLO
FreeRTOS
En la configuración de
FreeRTOS, en la pestaña Tasks
and Queues, aparece una
tarea por defecto llamada
defautTask. Podemos incluir,
por medio del botón Add, mas
tareas, luego podemos
configurar el nombre de estas
tareas y sus funciones
asociadas a estas haciendo
doble click sobre la tarea que
deseamos modificar
EJEMPLO
FreeRTOS
Configuramos dos tareas,
llamadas primeraTarea y
segundaTarea, colocamos los
nombres de las funciones de
los hilos que manejara las
tareas independientes, las
cuales son USART y BLINK
EJEMPLO
EJEMPLO
FreeRTOS
Cofiguramos la prioridades de los Hilos.
Prioridad mas baja(-3)
Prioridad baja(-2)
Prioridad debajo de lo normal(-1)
Prioridad Normal(0)
Prioridad encima de lo normal(1)
Prioridad Alta(2)
Prioridad Muy Alta(3)
FreeRTOS
Seleccionamos el PIN C13 para
colocar el LED que se debe
encender y apagar.
EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
Seleccionamos el
USART1 en modo
Asíncrono para
transmitir una cadena
de caracteres.
EJEMPLO
Configuramos las
opciones de la
comunicación USART1,
como la velocidad (la
que mas le conviene al
programador, en este
caso será de 9600
baudios), la longitud
del la palabra de bits,
etc.
CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
Habilitamos el FreeRTOS (sistema
operativo que nos permite el
manejo de múltiples hilos)
EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO
En la configuración de
FreeRTOS, en la
pestaña Tasks and
Queues, aparece una
tarea por defecto
llamada defautTask.
Podemos incluir, por
medio del botón Add,
mas tareas, luego
podemos configurar el
nombre de estas tareas
y sus funciones
asociadas a estas
haciendo doble click
sobre la tarea que
deseamos modificar
CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO
Configuramos dos tareas,
llamadas primeraTarea y
segundaTarea, colocamos los
nombres de las funciones de
los hilos que manejara las
tareas independientes, las
cuales son USART y BLINK
CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO
Prioridad mas baja(-3)
Prioridad baja(-2)
Prioridad debajo de lo normal(-1)
Prioridad Normal(0)
Prioridad encima de lo normal(1)
Prioridad Alta(2)
Prioridad Muy Alta(3)
CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO
Habilitamos el cristal
externo como
fuente de reloj
Externo.
CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
Cuando se utiliza
FreeRTOS, se debe
utilizar otra base de
tiempo que no sea
la de la librería HAL.
Por tal motivo, en la
opción de SYS en
Timebase Source
seleccionamos TIM1
como el generador
de la base de
tiempo.
EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
FreeRTOS
EJEMPLO
Generamos el código base:
El CubeMx genera de forma
automática:
• El manejador de los Hilos
• Los Hilos implementados
como funciones
• La definición del Hilo
• La creación del Hilo
• La función para iniciar el
proceso del Kernel (las
tareas programadas).
#include "main.h"
#include "stm32f1xx_hal.h"
#include "cmsis_os.h"
UART_HandleTypeDef huart1;
osThreadId primeraTareaHandle;
osThreadId segundaTareaHandle;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
void USART(void const * argument);
void Blink(void const * argument);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
osThreadDef(primeraTarea, USART, osPriorityNormal, 0, 128);
primeraTareaHandle = osThreadCreate(osThread(primeraTarea), NULL);
osThreadDef(segundaTarea, Blink, osPriorityNormal, 0, 128);
segundaTareaHandle = osThreadCreate(osThread(segundaTarea), NULL);
osKernelStart();
while (1)
{
}
}
FreeRTOS
void USART(void const * argument)
{
for(;;)
{
HAL_UART_Transmit(&huart1,(uint8_t*)"HOLA MUNDO !!! ",15,100);
osDelay(300);
}
osThreadTerminate(NULL);
}
void Blink(void const * argument)
{
while (1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
osDelay(500);
}
osThreadTerminate(NULL);
}
Generamos el código base:
El CubeMx genera de forma
automática:
• El cuerpo de las funciones de
los Hilos
EJEMPLO
Tanto for(;;) como while(1)
son usados para generar ciclos
infinitos y pueden ser usados de
manera indistinta.

Más contenido relacionado

Similar a Diapositiva de Estudio: ppt_freertos-stm32_compress.pdf

CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)Darwin Durand
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpEdgar Solis
 
Config ciscos-v3
Config ciscos-v3Config ciscos-v3
Config ciscos-v3jtecnico
 
El Procesador o CPU 2
El Procesador o CPU 2El Procesador o CPU 2
El Procesador o CPU 2Jorge Pulido
 
Configuacion de estaciones de trabajo
Configuacion de estaciones de trabajoConfiguacion de estaciones de trabajo
Configuacion de estaciones de trabajoHeder Ithamar Romero
 
LAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchLAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchFredPincay
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Marcos Ortiz Valmaseda
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracleelena
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostreamTensor
 
Trabajo acerca de los procesadores
Trabajo acerca de los procesadoresTrabajo acerca de los procesadores
Trabajo acerca de los procesadoresbrian artunduaga
 

Similar a Diapositiva de Estudio: ppt_freertos-stm32_compress.pdf (20)

Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
Curso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmpCurso migración de aplicaciones nsl nk90 a tmp
Curso migración de aplicaciones nsl nk90 a tmp
 
Intro to DTrace
Intro to DTraceIntro to DTrace
Intro to DTrace
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
 
Config ciscos-v3
Config ciscos-v3Config ciscos-v3
Config ciscos-v3
 
El Procesador o CPU 2
El Procesador o CPU 2El Procesador o CPU 2
El Procesador o CPU 2
 
Artículo - Simulador NS (Network Simulator)
Artículo - Simulador NS (Network Simulator)Artículo - Simulador NS (Network Simulator)
Artículo - Simulador NS (Network Simulator)
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
 
Ficheros y semaforos
Ficheros y semaforosFicheros y semaforos
Ficheros y semaforos
 
Disparadores 1213820550525607-9
Disparadores 1213820550525607-9Disparadores 1213820550525607-9
Disparadores 1213820550525607-9
 
Configuacion de estaciones de trabajo
Configuacion de estaciones de trabajoConfiguacion de estaciones de trabajo
Configuacion de estaciones de trabajo
 
LAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witchLAN Switching and Wirelless conceptos básicos y configuracion del witch
LAN Switching and Wirelless conceptos básicos y configuracion del witch
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
 
Thread
ThreadThread
Thread
 
Informixsql
InformixsqlInformixsql
Informixsql
 
Trabajo acerca de los procesadores
Trabajo acerca de los procesadoresTrabajo acerca de los procesadores
Trabajo acerca de los procesadores
 
Oracle
OracleOracle
Oracle
 

Más de jorgejvc777

ENTRADA.pptx--------------------------------
ENTRADA.pptx--------------------------------ENTRADA.pptx--------------------------------
ENTRADA.pptx--------------------------------jorgejvc777
 
Rectificadores_no_Controlados_1.ppt-------------
Rectificadores_no_Controlados_1.ppt-------------Rectificadores_no_Controlados_1.ppt-------------
Rectificadores_no_Controlados_1.ppt-------------jorgejvc777
 
CONFIGURACION DEL ROUTER.pptx---------------------
CONFIGURACION DEL ROUTER.pptx---------------------CONFIGURACION DEL ROUTER.pptx---------------------
CONFIGURACION DEL ROUTER.pptx---------------------jorgejvc777
 
Creación de Documento.pptx-----------------------
Creación de Documento.pptx-----------------------Creación de Documento.pptx-----------------------
Creación de Documento.pptx-----------------------jorgejvc777
 
Potencia_1_SCR__12508__.ppt----------------
Potencia_1_SCR__12508__.ppt----------------Potencia_1_SCR__12508__.ppt----------------
Potencia_1_SCR__12508__.ppt----------------jorgejvc777
 
VIRUS DE COMPUTADORA.pptx---------------------------
VIRUS DE COMPUTADORA.pptx---------------------------VIRUS DE COMPUTADORA.pptx---------------------------
VIRUS DE COMPUTADORA.pptx---------------------------jorgejvc777
 
DIAPO SISE DEL PADRE.ppt---------------------------
DIAPO SISE DEL PADRE.ppt---------------------------DIAPO SISE DEL PADRE.ppt---------------------------
DIAPO SISE DEL PADRE.ppt---------------------------jorgejvc777
 
DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------jorgejvc777
 
Sistemas Lineales.ppt------------------------
Sistemas Lineales.ppt------------------------Sistemas Lineales.ppt------------------------
Sistemas Lineales.ppt------------------------jorgejvc777
 
Sistemas Lineales.ppt-------------------------------
Sistemas Lineales.ppt-------------------------------Sistemas Lineales.ppt-------------------------------
Sistemas Lineales.ppt-------------------------------jorgejvc777
 
Dia del maestro.pptx---------------------
Dia del maestro.pptx---------------------Dia del maestro.pptx---------------------
Dia del maestro.pptx---------------------jorgejvc777
 
TELE 4TO CICLO.ppt-----------------------
TELE 4TO CICLO.ppt-----------------------TELE 4TO CICLO.ppt-----------------------
TELE 4TO CICLO.ppt-----------------------jorgejvc777
 
Subnetting_IP.ppt--------------------------
Subnetting_IP.ppt--------------------------Subnetting_IP.ppt--------------------------
Subnetting_IP.ppt--------------------------jorgejvc777
 
implementacion de servicio wifi---------
implementacion de servicio wifi---------implementacion de servicio wifi---------
implementacion de servicio wifi---------jorgejvc777
 
Direccion_ip.ppt------------------------
Direccion_ip.ppt------------------------Direccion_ip.ppt------------------------
Direccion_ip.ppt------------------------jorgejvc777
 
practica1-3.pptx-------------------------
practica1-3.pptx-------------------------practica1-3.pptx-------------------------
practica1-3.pptx-------------------------jorgejvc777
 
practica1-2.pptx-------------------------
practica1-2.pptx-------------------------practica1-2.pptx-------------------------
practica1-2.pptx-------------------------jorgejvc777
 
practica1-1.pptx------------------------------
practica1-1.pptx------------------------------practica1-1.pptx------------------------------
practica1-1.pptx------------------------------jorgejvc777
 
Wireless2.ppt------------------------------
Wireless2.ppt------------------------------Wireless2.ppt------------------------------
Wireless2.ppt------------------------------jorgejvc777
 
gantt_es.pptx-----------------------------------
gantt_es.pptx-----------------------------------gantt_es.pptx-----------------------------------
gantt_es.pptx-----------------------------------jorgejvc777
 

Más de jorgejvc777 (20)

ENTRADA.pptx--------------------------------
ENTRADA.pptx--------------------------------ENTRADA.pptx--------------------------------
ENTRADA.pptx--------------------------------
 
Rectificadores_no_Controlados_1.ppt-------------
Rectificadores_no_Controlados_1.ppt-------------Rectificadores_no_Controlados_1.ppt-------------
Rectificadores_no_Controlados_1.ppt-------------
 
CONFIGURACION DEL ROUTER.pptx---------------------
CONFIGURACION DEL ROUTER.pptx---------------------CONFIGURACION DEL ROUTER.pptx---------------------
CONFIGURACION DEL ROUTER.pptx---------------------
 
Creación de Documento.pptx-----------------------
Creación de Documento.pptx-----------------------Creación de Documento.pptx-----------------------
Creación de Documento.pptx-----------------------
 
Potencia_1_SCR__12508__.ppt----------------
Potencia_1_SCR__12508__.ppt----------------Potencia_1_SCR__12508__.ppt----------------
Potencia_1_SCR__12508__.ppt----------------
 
VIRUS DE COMPUTADORA.pptx---------------------------
VIRUS DE COMPUTADORA.pptx---------------------------VIRUS DE COMPUTADORA.pptx---------------------------
VIRUS DE COMPUTADORA.pptx---------------------------
 
DIAPO SISE DEL PADRE.ppt---------------------------
DIAPO SISE DEL PADRE.ppt---------------------------DIAPO SISE DEL PADRE.ppt---------------------------
DIAPO SISE DEL PADRE.ppt---------------------------
 
DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------DIAPOSITIVA - GUIDE.pptx-----------------------------
DIAPOSITIVA - GUIDE.pptx-----------------------------
 
Sistemas Lineales.ppt------------------------
Sistemas Lineales.ppt------------------------Sistemas Lineales.ppt------------------------
Sistemas Lineales.ppt------------------------
 
Sistemas Lineales.ppt-------------------------------
Sistemas Lineales.ppt-------------------------------Sistemas Lineales.ppt-------------------------------
Sistemas Lineales.ppt-------------------------------
 
Dia del maestro.pptx---------------------
Dia del maestro.pptx---------------------Dia del maestro.pptx---------------------
Dia del maestro.pptx---------------------
 
TELE 4TO CICLO.ppt-----------------------
TELE 4TO CICLO.ppt-----------------------TELE 4TO CICLO.ppt-----------------------
TELE 4TO CICLO.ppt-----------------------
 
Subnetting_IP.ppt--------------------------
Subnetting_IP.ppt--------------------------Subnetting_IP.ppt--------------------------
Subnetting_IP.ppt--------------------------
 
implementacion de servicio wifi---------
implementacion de servicio wifi---------implementacion de servicio wifi---------
implementacion de servicio wifi---------
 
Direccion_ip.ppt------------------------
Direccion_ip.ppt------------------------Direccion_ip.ppt------------------------
Direccion_ip.ppt------------------------
 
practica1-3.pptx-------------------------
practica1-3.pptx-------------------------practica1-3.pptx-------------------------
practica1-3.pptx-------------------------
 
practica1-2.pptx-------------------------
practica1-2.pptx-------------------------practica1-2.pptx-------------------------
practica1-2.pptx-------------------------
 
practica1-1.pptx------------------------------
practica1-1.pptx------------------------------practica1-1.pptx------------------------------
practica1-1.pptx------------------------------
 
Wireless2.ppt------------------------------
Wireless2.ppt------------------------------Wireless2.ppt------------------------------
Wireless2.ppt------------------------------
 
gantt_es.pptx-----------------------------------
gantt_es.pptx-----------------------------------gantt_es.pptx-----------------------------------
gantt_es.pptx-----------------------------------
 

Último

TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSCarlosHuamulloDavila1
 
herrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxherrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxDiegoSuarezGutierrez
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPOSegundo Silva Maguiña
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdffernandolozano90
 
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfPRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfjorge477728
 
DIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.pptDIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.pptalisonsarmiento4
 
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdfMirkaCBauer
 
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTS
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTSCONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTS
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTSrobinarielabellafern
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxElybe Hernandez
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfWaldo Eber Melendez Garro
 
las humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenierolas humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenieroJsValdez
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfSegundo Silva Maguiña
 
TYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxTYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxLilibethBallesteros1
 
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxAnonymousk8JgrnuMSr
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZvarichard
 
Trabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayoTrabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayoAntonioCardenas58
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdfThe16Frame
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfSalomeRunco
 

Último (20)

TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
 
herrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxherrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptx
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfPRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
 
DIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.pptDIAGRAMAS PID automatizacion y control.ppt
DIAGRAMAS PID automatizacion y control.ppt
 
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
 
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
647913404-06-Partes-principales-de-las-Perforadoras-manuales-1.pdf
 
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTS
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTSCONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTS
CONCEPTOS BASICOS DE ROBOTICA, CLASES DE ROBOTS
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptx
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
las humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenierolas humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingeniero
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
 
TYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxTYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptx
 
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
 
Trabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayoTrabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayo
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt
 
S01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdfS01.s1 - Clasificación de las Industrias.pdf
S01.s1 - Clasificación de las Industrias.pdf
 

Diapositiva de Estudio: ppt_freertos-stm32_compress.pdf

  • 2. FreeRTOS Sistema Operativo: KERNEL: Multitarea en sistemas embebidos Sistema operativo en tiempo Real o RTOS FreeRTOS
  • 3. FreeRTOS Es un sistema operativo de tiempo real kernel para dispositivos embebidos que ha sido portado a 35 plataformas de microcontrolador.​ Está distribuido bajo el MIT Licencia.
  • 4. FreeRTOS FreeRTOS diseñado para ser simple. Proporciona métodos para múltiples subprocesos o hilos , mutexes, semáforos y temporizadores de software. Además de soportar prioridades de hilos. Tiene un modo tickless para reducir el consumo energético. En FreeRTOS las aplicaciones pueden ser asignadas de manera completamente estáticas. Alternativamente en RTOS los objetos pueden ser asignados de manera dinámica con cinco esquemas previstos de asignación de memoria : •Solo Asignar. •Asigna y libera con un algoritmo muy simple y rápido. • Asignar con un algoritmo más complejo pero rápido de asignación y liberación con coalescencia de memoria •Asignar con una alternativa al esquema más complejo que incluye la coalescencia de memoria que permite dividir un montón en múltiples áreas de memoria. •Biblioteca C asignan y liberan con alguna protección de exclusión mutua. El énfasis está en la compacidad y la velocidad de ejecución. FreeRTOS se puede considerar como una 'biblioteca de hilos' en lugar de un 'sistema operativo'. FreeRTOS implementa múltiples subprocesos haciendo que el programa anfitrión llame a un método de marcación de subprocesos a intervalos cortos y regulares. El método de marca de hilo cambia las tareas en función de la prioridad y un esquema de programación de turno rotativo. El intervalo habitual es de 1/1000 de segundo a 1/100 de segundo, a través de una interrupción de un temporizador de hardware, pero este intervalo a menudo se cambia para adaptarse a una aplicación en particular. El sitio FreeRTOS.org también contiene una gran cantidad de documentación y tutoriales de RTOS.
  • 5. FreeRTOS Funviones de Hilo: void nombreFuncion (void *argumento); Estados de hilo Definición y creación de los hilos osThreadDef (nombre, funcionHILO, prioridad, instancia, stack); osThreadID NombreManejador; NombreManejador=osThreadCreate(osThreadDef(nombre), void argument); osThreadTerminate(NULL);
  • 6. FreeRTOS Funviones de Hilo: void nombreFuncion (void *argumento); Estados de hilo Definición y creación de los hilos osThreadDef (nombre, funcionHILO, prioridad, instancia, stack); osThreadID NombreManejador; NombreManejador=osThreadCreate(osThreadDef(nombre), void argument); osThreadTerminate(NULL);
  • 7. FreeRTOS Escribir un código que permita al sistema operativo en tiempo real (FreeRTOS) manejar dos hilos de ejecución. En el cual, uno se encarga de cambiar el estado de un LED cada medio segundo, mientras que el otro se encargará de trasmitir un cadena de caracteres utilizando el modulo UART, mostrando que ambos hilos se “ejecutan” independientemente uno del otro y en paralelo. EJEMPLO
  • 8. FreeRTOS Seleccionamos el PIN C13 para colocar el LED que se debe encender y apagar. EJEMPLO GPIO_Output
  • 9. FreeRTOS EJEMPLO Seleccionamos el USART1 en modo Asíncrono para transmitir una cadena de caracteres. GPIO_Output
  • 10. FreeRTOS Habilitamos el FreeRTOS (sistema operativo que nos permite el manejo de múltiples hilos) EJEMPLO GPIO_Output
  • 11. FreeRTOS Habilitamos el cristal externo como fuente de reloj Externo. EJEMPLO GPIO_Output
  • 13. FreeRTOS Cuando se utiliza FreeRTOS, se debe utilizar otra base de tiempo que no sea la de la librería HAL. Por tal motivo, en la opción de SYS en Timebase Source seleccionamos TIM1 como el generador de la base de tiempo. EJEMPLO GPIO_Output
  • 14. FreeRTOS Configuramos los módulos seleccionados y algunas opciones del FreeRTOS. EJEMPLO
  • 15. FreeRTOS Configuramos las opciones de la comunicación USART1, como la velocidad (la que mas le conviene al programador, en este caso será de 9600 baudios), la longitud del la palabra de bits, etc. EJEMPLO
  • 16. FreeRTOS En la configuración de FreeRTOS, en la pestaña Tasks and Queues, aparece una tarea por defecto llamada defautTask. Podemos incluir, por medio del botón Add, mas tareas, luego podemos configurar el nombre de estas tareas y sus funciones asociadas a estas haciendo doble click sobre la tarea que deseamos modificar EJEMPLO
  • 17. FreeRTOS Configuramos dos tareas, llamadas primeraTarea y segundaTarea, colocamos los nombres de las funciones de los hilos que manejara las tareas independientes, las cuales son USART y BLINK EJEMPLO EJEMPLO
  • 18. FreeRTOS Cofiguramos la prioridades de los Hilos. Prioridad mas baja(-3) Prioridad baja(-2) Prioridad debajo de lo normal(-1) Prioridad Normal(0) Prioridad encima de lo normal(1) Prioridad Alta(2) Prioridad Muy Alta(3)
  • 19. FreeRTOS Seleccionamos el PIN C13 para colocar el LED que se debe encender y apagar. EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 20. FreeRTOS Seleccionamos el USART1 en modo Asíncrono para transmitir una cadena de caracteres. EJEMPLO Configuramos las opciones de la comunicación USART1, como la velocidad (la que mas le conviene al programador, en este caso será de 9600 baudios), la longitud del la palabra de bits, etc. CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 21. FreeRTOS Habilitamos el FreeRTOS (sistema operativo que nos permite el manejo de múltiples hilos) EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 22. FreeRTOS EJEMPLO En la configuración de FreeRTOS, en la pestaña Tasks and Queues, aparece una tarea por defecto llamada defautTask. Podemos incluir, por medio del botón Add, mas tareas, luego podemos configurar el nombre de estas tareas y sus funciones asociadas a estas haciendo doble click sobre la tarea que deseamos modificar CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 23. FreeRTOS EJEMPLO Configuramos dos tareas, llamadas primeraTarea y segundaTarea, colocamos los nombres de las funciones de los hilos que manejara las tareas independientes, las cuales son USART y BLINK CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 24. FreeRTOS EJEMPLO Prioridad mas baja(-3) Prioridad baja(-2) Prioridad debajo de lo normal(-1) Prioridad Normal(0) Prioridad encima de lo normal(1) Prioridad Alta(2) Prioridad Muy Alta(3) CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 25. FreeRTOS EJEMPLO Habilitamos el cristal externo como fuente de reloj Externo. CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 26. FreeRTOS EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 27. FreeRTOS Cuando se utiliza FreeRTOS, se debe utilizar otra base de tiempo que no sea la de la librería HAL. Por tal motivo, en la opción de SYS en Timebase Source seleccionamos TIM1 como el generador de la base de tiempo. EJEMPLO CONFIGURACION EN LA NUEVA VERSIÓN DE CUBEMX
  • 28. FreeRTOS EJEMPLO Generamos el código base: El CubeMx genera de forma automática: • El manejador de los Hilos • Los Hilos implementados como funciones • La definición del Hilo • La creación del Hilo • La función para iniciar el proceso del Kernel (las tareas programadas). #include "main.h" #include "stm32f1xx_hal.h" #include "cmsis_os.h" UART_HandleTypeDef huart1; osThreadId primeraTareaHandle; osThreadId segundaTareaHandle; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); void USART(void const * argument); void Blink(void const * argument); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); osThreadDef(primeraTarea, USART, osPriorityNormal, 0, 128); primeraTareaHandle = osThreadCreate(osThread(primeraTarea), NULL); osThreadDef(segundaTarea, Blink, osPriorityNormal, 0, 128); segundaTareaHandle = osThreadCreate(osThread(segundaTarea), NULL); osKernelStart(); while (1) { } }
  • 29. FreeRTOS void USART(void const * argument) { for(;;) { HAL_UART_Transmit(&huart1,(uint8_t*)"HOLA MUNDO !!! ",15,100); osDelay(300); } osThreadTerminate(NULL); } void Blink(void const * argument) { while (1) { HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); osDelay(500); } osThreadTerminate(NULL); } Generamos el código base: El CubeMx genera de forma automática: • El cuerpo de las funciones de los Hilos EJEMPLO Tanto for(;;) como while(1) son usados para generar ciclos infinitos y pueden ser usados de manera indistinta.