Cómo transferir controladores de Linux a RTOS

6

Probablemente todos vayan en la otra dirección, moviendo sus sistemas, etc. a Linux. Tengo el siguiente problema. Me gusta usar un chipset WiFi junto con su controlador de Linux en mi RTOS (FreeRtos). Si hago esto de manera convencional, me llevará 3 meses portarlo. (Ahora trabajo para una pequeña empresa, por lo tanto, no espero ningún soporte por parte del proveedor del conjunto de chips 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. 5 $ módulo wifi aquí)

¿Existe una forma sencilla o tengo que entender realmente el controlador y trasladarlo lentamente? No conozco Linux pero conozco los conceptos de RTOS relativamente bien. Estoy buscando una envoltura de algún tipo que traduzca las llamadas del sistema Linux a cosas RTO más convencionales.

Sé que es una posibilidad remota, pero tuve que intentarlo.

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

Pregunta extra: cualquier experto en WiFi que pueda recomendar un conjunto de chips b / g con controladores RTOS que estén disponibles. He analizado CSR, Realtek y Nanoradio, todos ellos proporcionan controladores de Linux pero no son compatibles con RTOS. Atheros ni siquiera se entretuvo en hablar conmigo, supongo que el efecto de Qualcomm.

    
pregunta Frank

1 respuesta

6

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

Tres meses es probablemente una estimación conservadora del esfuerzo de adaptación; Si puede identificar las API utilizadas (red, interrupción, temporizadores, espera / bloqueo, E / S, devolución de llamada, operación de archivos, etc.) y crear 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 puedes comenzar a apagar la llamada a la API de Linux utilizada y "traducirla" a la API y las estructuras de datos utilizadas en tu 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 transferencia. Buena suerte!

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas