Portar controladores de Linux a RTOS

Probablemente todo el mundo va en la otra dirección, moviendo sus sistemas, etc. a Linux. Tengo el siguiente problema. Me gusta usar un conjunto de chips WiFi junto con su controlador de Linux en mi RTOS (FreeRtos). Si hago esto de la manera convencional, me tomará 3 meses portarlo. (Ahora trabajo para una pequeña empresa, por lo tanto, no espero ningún soporte del proveedor del chipset con mis volúmenes. Sin embargo, tengo un objetivo de costos muy estricto, por lo que no puedo usar estos módulos realmente costosos pero fáciles de usar. Estoy apuntando a sub 5 $ módulo wifi aquí)

¿Hay una manera simple o tengo que realmente entender profundamente el controlador y portarlo lentamente? No conozco Linux pero conozco relativamente bien los conceptos de RTOS. Estoy buscando un contenedor de algún tipo que traduzca las llamadas del sistema Linux a cosas RTO más convencionales.

Sé que es una posibilidad remota, pero tenía que intentarlo.

Y, no sugiera uCLinux como sistema operativo, he recorrido ese camino, parece ser la mejor manera, sin embargo, el tamaño del código es prohibitivo para ejecutarse con los recursos del chip de mi CPU.

Pregunta adicional: cualquier experto en WiFi que pueda recomendar un conjunto de chips ab/g con controladores RTOS que estén fácilmente disponibles. He examinado CSR, Realtek y Nanoradio, todos proporcionan controladores de Linux pero no son compatibles con RTOS. Atheros ni se entretuvo en hablar conmigo, supongo que efecto de Qualcomm.

No soy abogado, pero tenga cuidado al hacer esto. Parece que los dos proyectos tienen licencias incompatibles. Si este es el caso, no podrá distribuir los controladores portados.
Buen punto de @jeremy-kerr. Tendría que pensar en eso, sin embargo, por ahora estoy más orientado al aspecto técnico de las cosas.

Respuestas (1)

Portar el controlador manualmente es la única forma de hacerlo si no está dispuesto a escribir el controlador desde cero. @ jeremy-kerr tiene razón, tiene problemas de licencia con los que debe tener cuidado, pero esencialmente lo que esto significará si el controlador es GPL es que su controlador portado también será GPL. No tendrá que abrir todo el código fuente de RTOS.

Tres meses es probablemente una estimación conservadora para el esfuerzo de portabilidad; si puede identificar las API utilizadas (red, interrupción, temporizadores, espera/bloqueo, E/S, devolución de llamada, operación de archivos, etc.) y cree un mapa aproximado entre la API de Linux utilizada y lo que está disponible en su RTOS hará que el proceso sea MUCHO más rápido, especialmente porque luego puede comenzar a desconectar la llamada API de Linux utilizada y "traducirla" a la API y las estructuras de datos utilizadas en su RTOS.

No será una tarea sencilla, pero ciertamente es factible y si el controlador de Linux está bien escrito, tendrá una muy buena idea de lo que hace cada parte y por qué, lo que siempre facilita la migración. ¡Buena suerte!

Muchas gracias. Excelente respuesta. Mientras tanto, estoy haciendo muchas otras cosas, de ahí los 3 meses. Además, todavía no sé nada sobre Linux.