2012-05-18 20 views
9

Estoy usando ARM Cortex-R4 para mi sistema. Tiene una Unidad de Protección de Memoria en lugar de una Unidad de Administración de Memoria. Efectivamente, esto significa que hay hardware dedicado para la protección de la memoria, pero que hay una asignación de uno a uno entre las direcciones físicas y virtuales. Estoy un poco confundido acerca de a qué Linux debería ir: kernel estándar de Linux con MMU deshabilitado o uCLinux.Ejecutando MMU-less Linux en ARM Cortex-R4

En la placa de evaluación de ARM, he ejecutado el kernel estándar compilado con MMU deshabilitado. Usé el sistema de archivos cramfs que está disponible en el sitio web oficial de ARM. Después de que el kernel arranca, estoy en el caparazón, pero no pude hacer mucha experimentación ya que descubrí que, la mayoría de las veces, el shell deja de responder (particularmente cuando presiono "tab" para completar automáticamente).

Así que todavía no estoy seguro de si el kernel sin MMU debería ejecutarse sin problemas si uso el sistema de archivos correcto. Además, ¿qué distribución (buildroot?) Debería usar para Linux no VM?

Cualquier idea o sugerencia es bienvenida.

+0

Parece que necesita averiguar qué es exactamente lo que está fallando y por qué, en lugar de especular que es el kernel o el sistema de archivos. Si puede obtener una segunda ruta en el tablero, digamos tanto uart y red, eso ayudaría, ya que puede ver si uno permanece vivo incluso cuando el otro se bloquea. También podría hacer algo como hacer que un daemon de espacio de usuario escriba en el terminal (o incluso un módulo kernel printk) periódicamente para decir "aún aquí", al menos eso lo ayudará a determinar si su caparazón se cuelga mientras el resto del sistema se ejecuta. o si el núcleo está colgando. O en respuesta a un botón de gpio ... –

+0

La sugerencia de printk() es probablemente mejor que un proceso de espacio de usuario. Correr en Real = modo Virtual es desafiante, en el mejor de los casos. Mi voto es para uCLinux. –

Respuesta

2

uClinux es una distribución Linux que usa el núcleo Linux con la MMU "apagado" y añade algunas aplicaciones y bibliotecas en la parte superior de eso No elegirás uno o ninguno ya que son mejores uno encima del otro.

Si llegó al punto en el que tiene un shell en ejecución, ha logrado arrancar Linux sans MMU en su placa, pero ha encontrado un error.

6

Han pasado más de 2 años desde que hice esta pregunta. Ahora es el momento de escribir lo que encontré para mí.

ucLinux fue un proyecto bifurcado desde el kernel de Linux desde hace mucho tiempo con el objetivo de desarrollar Kernel para MMU menos sistemas. Sin embargo, después de cierto tiempo, se fusionó con la rama principal de Linux. Por lo tanto, hoy no existe ninguna distribución activa de ucLinux.

Por lo tanto, si deshabilita MMU de la configuración del kernel principal, obtendrá una versión sin MMU. De hecho, ahora hay opciones de configuración proporcionadas en el kernel en sí mismas, mediante las cuales un usuario puede especificar el diseño de la memoria y los permisos de acceso.

¡Salud!

Cuestiones relacionadas