RTOS para Cortex M4 con 802.15.4 / 6LoWPAN stack

8

Estoy evaluando sistemas operativos para usar en un Proyecto de Internet de las Cosas y no sé cuál es la mejor manera de proceder.

Estoy usando un MCU TM4C123GH6PM con 32k de RAM y un transceptor CC2520 802.15.4, sería genial si el sistema ya proporcionara controladores para esos.

El sistema ejecutará una tarea (interactiva) que dibuja una pantalla de matriz de puntos y reacciona a la entrada del usuario. Almacenará la configuración y los datos de la aplicación en spi flash. Habrá una malla de módulos múltiples (basados en 802.15.4) para sincronizar datos entre los módulos, extraer datos de sensores de los módulos y enviarlos a una puerta de enlace (rpl viene a la mente) y también distribuir actualizaciones de firmware OtA en forma de chismes. como la moda Todo mientras se ejecuta una aplicación que consume mucha memoria también.

Hasta ahora he investigado estos sistemas:

RIOT :

pros

  • buena abstracción de hardware
  • huella pequeña
  • comunidad muy activa y útil
  • pila 802.15.4 / 6LoWPAN completa

cons

  • inestable, aún en cambios fundamentales
  • todavía contiene condiciones de carrera / accidentes
  • no hay soporte para el sistema de archivos
  • algunos protocolos de red

Contiki :

pros

  • sistema maduro, usado en productos comerciales
  • pila 802.15.4 / 6LoWPAN completa con muchos protocolos útiles
  • soporte del sistema de archivos
  • compatibilidad con cc2520

cons

  • el desarrollo se ha vuelto obsoleto
  • base de código 'crecido', mucha pudrición de bits
  • mala calidad tiva c port
  • poco soporte para plataformas modernas
  • la programación no preferente puede causar problemas con la aplicación

FreeRTOS :

pros

  • poca complejidad adicional
  • programador confiable y fácil de usar
  • proyecto maduro, usado en muchos productos
  • muchos puertos

cons

  • no hay sistema de archivos
  • sin abstracción de hardware para controladores / sin controladores de hardware
  • sin pila de red
  • uso un tanto alto de memoria dinámica

NuttX :

pros

  • muy rico en características, casi parece Linux, pero aún así pequeño
  • soporte del sistema de archivos
  • buena abstracción de hardware
  • Puerto Tiva C, muchos otros puertos

cons

  • algo complejo
  • no hay soporte para 802.15.4 / 6LoWPAN, solo netstack 'clásico'

Mi conclusión sería tomar las partes buenas de Contiki (el netstack, el sistema de archivos) y trasladarlas a FreeRTOS. Pero no estoy del todo cómodo con un tenedor como ese. Probablemente estaría agregando errores y no sería capaz de realizar una copia de seguridad de los arreglos en sentido ascendente, también tengo que inventar mi propia abstracción de hardware para poder cambiar la MCU en el futuro. Así que terminaría con mi propio sistema operativo por algo que parece ser un problema que muchas otras personas también deberían tener. ¿Alguien no lo ha hecho antes? (Quiero decir que encontré algo, pero la idea de ejecutar todo el contiki-os como una tarea de FreeRTOS me hace incómodo)

¿Hay algo que me falta? ¿Tal vez el dolor valga la pena y debería intentar que Contiki alcance un estado funcional en mi hardware? ¿O hay algún otro sistema que no haya solucionado mis problemas?

Además, no estoy seguro de si necesito 6lowPan en absoluto, pero cuando eso signifique poder construir sobre protocolos existentes / ser compatible con otros sistemas (por ejemplo, Linux), estaría dispuesto a asumir el costo adicional.

    
pregunta user1273684

3 respuestas

2

Si no está casado con ese procesador específico (o es lo suficientemente inteligente como para copiar / pegar el código de todos modos), con frecuencia utilizo MCU de Freescale con CodeWarrior y Processor Expert. PEX incluye una serie de componentes que incluyen FreeRTOS, MQX, FAT, etc. Se pueden descargar componentes adicionales y, al final, es solo un generador de código basado en GUI, por lo que, como se sugiere, puede copiar / pegar el código C resultante. en tu proyecto.

Editar:

-MQX incluye pila de IP

-FNET

Gran paquete precompilado de muchos componentes útiles: enlace

    
respondido por el Jon
1

Te estás perdiendo sistema operativo mbed :

pros

  • directamente apoyado (promovido) por el diseñador principal - ARM Ltd.

cons

  • su primer lanzamiento estable se espera (planeado) solo en Nov15: -]
respondido por el asndre
1

Si esto es para uso comercial, le sugiero encarecidamente que mire las opciones no gratuitas, el soporte lo es todo, si es un proyecto personal, entonces puedo entenderlo.

Sí, hay un costo involucrado, pero con algunos desarrolladores de RTOS, no son tan grandes en absoluto, realmente ganan dinero en el desarrollo personalizado y las licencias pueden ser gratuitas hasta que realice una venta. A continuación se muestra un enlace a un artículo que compara algunos competidores pagados:

Comparación de sistemas operativos en tiempo real con microcontroladores

Soy un administrador de proyectos, y cambiamos de usar los controladores ofrecidos por ST a Unison. IIRC, la licencia fue sorprendentemente pequeña, y obtuvimos una "prueba completa" hasta que estuvimos convencidos, pero el apoyo directo constante fue lo que nos llevó al límite y lo que realmente ayudó a acelerar nuestro desarrollo. Creo que ya tienen soporte para varios chips inalámbricos de TI, no estoy seguro sobre CC2520.

El tipo que hace la mayor parte de las ventas es realmente personal y no ofrece precios por dos razones, según me dicen 1) porque quieren escuchar lo que usted necesita, realmente quieren clientes devueltos y una palabra de referencias orales, y 2) concurso.

Para tu información, el sitio web de Unison es realmente malo.

    
respondido por el reaver shadow

Lea otras preguntas en las etiquetas