Buenos días a todos,
Alguien por aquí que domine el uso de RTOS en uC para dar su opinión y hablar de su experiencia?
No llevo largos años dedicándome a esto así que no alcanzo a tener un criterio totalmente fiable para mí misma.
Hasta ahora he estado creando aplicaciones, sobretodo, para ARM y PIC; desde 0, empezando por los módulos de drivers hasta módulos de más alto nivel de abstracción como las tareas (código de aplicación), gestión de interrupciones y montando los schedulers más básicos con contadores de ticks (basándome en timer). Donde aquí la prioridad la marca el orden en que coloco las llamadas en este contador. Las tareas de periodicidad más corta irán en el contador de menor valor y las más tardías en el de mayores valores, etc.
Cuando ya quieres o necesitas algo más sofisticado, puedes recurrir a los RTOS disponibles en el mercado, algunos gratis otros de pago. Pero la gente que conozco me comenta que integrar RTOS en un uC y crear un proyecto basado en este, es parecido a andar por el infierno.
Desconozco dónde radica la dificultad o el motivo por el cual son tan temidos, puesto que no tengo ese background. Si vienen con sus APIs debería facilitar más las cosas. Sería como usar librerías de terceros. Es mi suposición. No sé si el infierno estaría más en la compilación o en la depuración, quizás en ambas!
Por eso si alguien tiene experiencia a ver si puede comentar algo aquí. Me gustaría conducir el hilo hacia el tema de: cómo elegir un RTOS para tu proyecto, saber cuándo realmente es más práctico usar un RTOS para gestionar tus tareas y comunicaciones o simplemente buscarte un stack que integre servicios que tu código pueda necesitar. Como puede ser el caso ejemplo de querer hacer hablar un uC con un chip de Ethernet para enviar datos a otro destinatario que le pasa el uC.
Que tengáis un lindo día. Saludos a todos.
Buenos días a todos,
Alguien por aquí que domine el uso de RTOS en uC para dar su opinión y hablar de su experiencia?
No llevo largos años dedicándome a esto así que no alcanzo a tener un criterio totalmente fiable para mí misma.
Hasta ahora he estado creando aplicaciones, sobretodo, para ARM y PIC; desde 0, empezando por los módulos de drivers hasta módulos de más alto nivel de abstracción como las tareas (código de aplicación), gestión de interrupciones y montando los schedulers más básicos con contadores de ticks (basándome en timer). Donde aquí la prioridad la marca el orden en que coloco las llamadas en este contador. Las tareas de periodicidad más corta irán en el contador de menor valor y las más tardías en el de mayores valores, etc.Cuando ya quieres o necesitas algo más sofisticado, puedes recurrir a los RTOS disponibles en el mercado, algunos gratis otros de pago. Pero la gente que conozco me comenta que integrar RTOS en un uC y crear un proyecto basado en este, es parecido a andar por el infierno.
Desconozco dónde radica la dificultad o el motivo por el cual son tan temidos, puesto que no tengo ese background. Si vienen con sus APIs debería facilitar más las cosas. Sería como usar librerías de terceros. Es mi suposición. No sé si el infierno estaría más en la compilación o en la depuración, quizás en ambas!
Por eso si alguien tiene experiencia a ver si puede comentar algo aquí. Me gustaría conducir el hilo hacia el tema de: cómo elegir un RTOS para tu proyecto, saber cuándo realmente es más práctico usar un RTOS para gestionar tus tareas y comunicaciones o simplemente buscarte un stack que integre servicios que tu código pueda necesitar. Como puede ser el caso ejemplo de querer hacer hablar un uC con un chip de Ethernet para enviar datos a otro destinatario que le pasa el uC.
Que tengáis un lindo día. Saludos a todos.
--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Qué gran explicación, creo que ya sé a qué se refieren.Aquí dónde estoy me he encontrado un proyecto ejecutado por un Coldfire II casi obsoleto al que le metieron uTasker 1.3. Hoy hablo con el chico que lo hizo, pero por lo que me cuentan no creo que tuvieran en cuenta las problemáticas que mencionaste. Más bien la idea que hay con respecto a meter RTOS en los uC de parte de su electrónica era y es disponer de un stack de Ethernet. Lo cual me genera gran incertidumbre cuando me piden que para un diseño nuevo que piense en un RTOS o que le metamos el uTasker más actual. Comunican electrónica con sw propio en PC. La cosa es que no sé si habrá sido suerte o estaba todo muy bien pensado, pero en 10 años no se les ha descalabrado nada y parece que estos conceptos problemáticos y poco triviales no están dando problemas.
La verdad no me vería capaz de diseñar una aplicación usando un RTOS sin tener los problemas que mencionas porque no domino esos conceptos para saber lo que hago, sobretodo a la práctica. Después de lo que me dices de los requisitos de trabajar con Ethernet entiendo más la necesidad de un RTOS.
- Y ya que mencionas el tema de la memoria, hay alguna forma de controlar la memoria que se consume y de monitorearla aunque sea en modo debug?
- Luego tengo una pregunta respecto a algo que comentas. A qué te refieres con "reinventar un RTOS" y con "NO HAGAN RTOSs PARA UN TRABAJO DE VERDAD!! dedíquense a usar soluciones que les han fallado a otros"?
Muchas gracias por el tiempo que te has tomado en compartir tu experiencia y conocimiento. Ha sido muy útil.
Buenos días,me sumo a ésta charla para realizar una pregunta acorde.Estoy trabajando con un equipo de investigación para el departamento de ingeniería de la UNLAM (Universidad Nacional de La Matanza). Aclaro que somos de Sistemas y no de Electrónica.Estamos trabajando en un dispositivo para asistir a personas con movilidad reducida y reportar sucesos que a éste le ocurra con su posterior notificación a familiares y/o personas interesadas.Estamos utilizando este procesador BluePill (STM32F103C8T6) con 72 MHZ, memoria de 128 KB y estuvimos implementando desde las herramientas STM32CUBE y Eclipse System Workbench.Para realizar ésto utilizamos un acelerometro MPU6050 para implementar un algoritmo detector de caídas, un GPS C3-470 como sensor de geolocalización, un SIM800L como GSM/GPRS para el envío de las notificaciones, un Bluethoot HM-10 para supervisar otros sensores biométricos como por ejemplo un pulsometro.Al día de hoy nos encontramos con una disyuntiva a resolver en los próximos meses que consta de lo siguiente:Hemos desarrollado drivers para acceder a los distintos dispositivos conectados a éste y vemos que estamos haciendo "demasiadas cosas" en un único hilo de ejecución. Estamos evaluando la posibilidad de utilizar un FreeRTOS como SO para utilizar distintos hilos pero tenemos el temor de que no sea la mejor solución. El STM32CUBE nos permite agregar FreeRTOS.
Consulto con uds cual sería la solución más adecuada para realizar ésta implementación.