SlideShare una empresa de Scribd logo
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

Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
Juan Guillermo Escobar Uribe
 
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 tmp
Edgar Solis
 
Intro to DTrace
Intro to DTraceIntro to DTrace
Intro to DTrace
Iban Nieto Castillero
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
RicardoMartinGomez
 
Config ciscos-v3
Config ciscos-v3Config ciscos-v3
Config ciscos-v3
jtecnico
 
El Procesador o CPU 2
El Procesador o CPU 2El Procesador o CPU 2
El Procesador o CPU 2
Jorge Pulido
 
Artículo - Simulador NS (Network Simulator)
Artículo - Simulador NS (Network Simulator)Artículo - Simulador NS (Network Simulator)
Artículo - Simulador NS (Network Simulator)
Andrés Felipe Montoya Ríos
 
Lenguaje transact
Lenguaje transactLenguaje transact
Lenguaje transact
isaac david janampa tarrillo
 
Ficheros y semaforos
Ficheros y semaforosFicheros y semaforos
Ficheros y semaforos
Thalia Regalado Juape
 
Disparadores 1213820550525607-9
Disparadores 1213820550525607-9Disparadores 1213820550525607-9
Disparadores 1213820550525607-9
Angelica Garcia Garcia
 
Configuacion de estaciones de trabajo
Configuacion de estaciones de trabajoConfiguacion de estaciones de trabajo
Configuacion de estaciones de trabajo
Heder 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 witch
FredPincay
 
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
Marcos Ortiz Valmaseda
 
Manual basico de_oracle
Manual basico de_oracleManual basico de_oracle
Manual basico de_oracle
elena
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
Tensor
 
Thread
ThreadThread
Thread
David Lilue
 
Informixsql
InformixsqlInformixsql
Informixsql
Jesus Cortes
 
Trabajo acerca de los procesadores
Trabajo acerca de los procesadoresTrabajo acerca de los procesadores
Trabajo acerca de los procesadores
brian artunduaga
 
Oracle
OracleOracle
Oracle
Ruth Romero
 

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

SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
Augusto César Dávila Callupe
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
munozvanessa878
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
elsanti003
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
KristianSaavedra
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
Edgar Najera
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
EgorRamos1
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
DiegoAlexanderChecaG
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
JaimmsArthur
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
angiepalacios6170
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
AlejandroArturoGutie1
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
BrusCiriloPintoApaza
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
GERARDO GONZALEZ
 

Último (20)

SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdfMETRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
METRADOS_Y_PRESUPUESTO_EN_SISTEMA_DRYWALL_24-05.pdf
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
 
Aletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdfAletas de transferencia de calor o superficies extendidas dylan.pdf
Aletas de transferencia de calor o superficies extendidas dylan.pdf
 
Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
 
Ducto Barras para instalaciones electricas
Ducto Barras para instalaciones electricasDucto Barras para instalaciones electricas
Ducto Barras para instalaciones electricas
 
PPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdfPPT suelos ensayo Proctor - laboratorio 4.pdf
PPT suelos ensayo Proctor - laboratorio 4.pdf
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
380378757-velocidades-maximas-y-minimas-en-los-canales.pdf
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
Informe Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de TacnaInforme Municipal provincial de la ciudad de Tacna
Informe Municipal provincial de la ciudad de Tacna
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
 

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.