¿En qué casos se necesitaría usar Linux incrustado o un núcleo en un microcontrolador?

4

Ya escribí software básico y utilicé FreeRTOS en dispositivos integrados. Pero me gustaría entender por qué algunas personas optan por usar Linux incrustado o un kernel en un dispositivo integrado. ¿En qué casos, por ejemplo? Es inevitable que necesite utilizar Linux incrustado o un kernel en un dispositivo integrado. ¿Cómo llegaría a la conclusión de que necesita una de esas dos cosas?

    

2 respuestas

7

En general, no usaría un sistema operativo en algo que esté realizando verdaderas tareas de microcontroladores. En tales casos, el sistema operativo se interpone más de lo que ayuda. Los sistemas operativos se tratan de virtualizar los recursos de hardware y proporcionar abstracciones como subprocesos y procesos. Estas cosas son de poca utilidad cuando el hardware que está manejando es fácil de controlar directamente, no hay problema de portabilidad y no es el tipo de cosa que los sistemas operativos virtualizan para usted de todos modos. Los sistemas operativos de propósito general tampoco manejan bien los requisitos de tiempo real, o lo son en absoluto, y eso es algo que a menudo es importante en las aplicaciones de verdadero controlador.

La razón por la que a veces se ven sistemas operativos en microcontroladores de gama alta es porque esos procesadores realmente se utilizan como computadoras integradas, no como controladores. Cuando desee conectarse a un teclado o mouse estándar, manejar una pantalla estándar, conectarse a una red, ser un host USB, almacenar archivos en una estructura de árbol arbitraria o hacer alguna de las otras cosas con las que el sistema operativo está destinado a ayudar, entonces un sistema operativo puede ser útil.

    
respondido por el Olin Lathrop
0

¿Linux en los microcontroladores? Sólo se utilizan versiones sin MMU (Unidad de gestión de memoria) - ej. uC Linux. Cortex-M (M - microcontrolador) tiene MPU (unidad de protección de memoria). Cortex-A (A - aplicación) tiene MMU. Por lo general, los microprocesadores no incorporaban periféricos comunes que se encuentran en los microcontroladores comunes. Aunque es muy rápido, ejecute el sistema operativo y las aplicaciones del usuario. No manejan muy bien los pines y protocolos de E / S que exigen una baja latencia , pero son ideales para manejar imágenes, audio y la transferencia de megabytes de datos en un alto rendimiento (USB , Ethernet, etc.). Una Raspberry-PI es buena para ver una película, pero no es adecuada para implementar el control FOC de un motor trifásico, por ejemplo. Por razones similares a las que ya se mencionaron, no es raro encontrar soluciones que incluyan una placa con dos procesadores: una Cortex-A que ejecute Linux y una Cortex-M a cargo de las tareas críticas (por ejemplo, la placa UDOO). El BeagleBone es ligeramente diferente cuando se incluye en el mismo chip, control dedicado y periféricos de tiempo.

    
respondido por el Dirceu Rodrigues Jr

Lea otras preguntas en las etiquetas