¿Desglose de la huella de uCLinux?

Otra pregunta que hice me hizo hacer esta pregunta... La pregunta anterior era sobre la instalación de Linux en Cortex M3. Algunas buenas respuestas demostraron que no es factible. ALGUIEN sugirió ucLinux. He estado investigando uClinux como alternativa.

Tengo una pregunta crítica, la huella de uClinux. Miré a mi alrededor para encontrar un desglose de los requisitos, no hay buena información en la red. Los módulos de interés son:

  • Núcleo central
  • pila TCPIP
  • Controlador de serie
  • DHCP
  • Soporte WiFi (cualquiera de la pila de proveedores está bien)

Estoy buscando un desglose de RAM/Flash. No necesito un sistema de archivos, sin embargo, existe la posibilidad de que lo necesite debido al modelo de controlador de Linux.

Pregunta adicional: - Portar controladores de Linux a uClinux. Sé que la arquitectura de la memoria es diferente. Teniendo en cuenta que el controlador no hace nada especial en la memoria wrt, ¿podría volver a compilar el controlador y esperar que funcione en uClinux?

Encontré información en los foros de STM32 de que la imagen comprimida es de aproximadamente 300 Kb y sin comprimir de aproximadamente 600 Kb. El requisito de RAM no está claro.
Los números exactos dependerán de su compilador. ¿Que estas usando? CCG?
@Kevin-vermeer sí, uso GCC. En realidad, puedo usar Keil o algo más. Sin embargo, para los fines de esta discusión, podemos asumir gcc.

Respuestas (1)

Tenga en cuenta que uClinux está estrechamente relacionado con Linux; En cuanto al kernel, es solo un parche contra el árbol fuente estándar de Linux.

A partir de la versión 2.6.26, el parche agrega soporte de máquina para algunas de las placas m68k, así como algunos cambios en algunos controladores, relevantes para esas placas. Sin embargo, para las plataformas ARM, el parche uClinux probablemente no le dará ningún beneficio, ya que no toca ningún código ARM.

Por lo tanto, las cifras proporcionadas para un kernel de Linux estándar también se aplican a uClinux.

Encontrará exactamente los mismos controladores disponibles que el kernel estándar de Linux, por lo que no tendrá que realizar ningún tipo de portabilidad.

Respuesta adicional adicional: si no está accediendo a un dispositivo de almacenamiento externo (y tiene su sistema de archivos raíz integrado en la imagen del kernel), no necesitará un sistema de archivos.

muchas gracias. La idea es usar los controladores de Linux existentes y no molestarse en migrar a RTOS que usamos. Es por eso que estoy jugando con Linux. Sin embargo, parece que el tamaño de uClinux es prohibitivo con los recursos del chip de Cortex M3.
@Frank - Sí, Cortex M3 no está diseñado para Linux y Linux no está diseñado para Cortex M3. ¿Alguna razón especial por la que estés realmente apegado a esta clase de fichas? Parece un poco pequeño para su aplicación....
@Kevin-vermeer, básicamente dos razones por las que me gustan estos chips. El ADC en ellos es realmente bueno, 12 bits, 2 Mmuestras/seg. No pude encontrar un brazo de costo9 decente para mi aplicación. El ADC fue realmente el factor impulsor. Estoy usando STM32F2. Sin embargo, tengo que portar un controlador WiFi a esta plataforma y resulta que es un dolor de espalda. Estoy buscando una salida fácil. Por lo tanto, estoy jugando con ucLinux porque todos esos controladores están disponibles en Linux y migrarlos a rtos llevará tiempo.