Si y no. Si bien hubo un objetivo básico para ARM en las primeras implementaciones de Golang, creo que fue más un demostrador que una herramienta de producción. Lo interesante es que demostró que se podía hacer metal desnudo en GO una vez que se desarrolla la cadena de herramientas. Se están realizando múltiples esfuerzos y puede evaluar si son lo suficientemente estables para sus propósitos.
Una vez que ingrese a los procesadores más grandes (como Intel Atom o ARM cortex A series) Go se convierte en una opción más viable. Usando un sistema operativo base como Yocto Linux, puede compilar el sistema operativo host de destino y desarrollar su código para ejecutarlo en el espacio del usuario. Hay algunas advertencias que debes tener en cuenta.
- La recolección de basura todavía detiene el mundo. Puede minimizar esto con un buen diseño, pero hay aplicaciones que incluso el retraso mínimo es inaceptable.
- Si bien GO puede llamar a toda su API de C, hay un costo de llamada de preparación cada vez que usa esto. En Xeons lo medimos a 150ns. En un Atom, su kilometraje puede ser realmente malo.
- Manipular hardware directamente es posible con GO, pero se ha hecho intencionalmente engorroso. Puede mover el código a C (ver # 2), o simplemente vivir con esto y ocultarlo dentro de un paquete.
- La priorización de tareas no es realmente un concepto en GO. Eso hace que el tiempo real sea más difícil.
Muchas aplicaciones integradas no se preocuparán mucho por los problemas anteriores, pero algunos de estos problemas podrían ser mortales. Elegir sabiamente.
- ¿Cuáles son los fragmentos / trucos / hacks de código C incrustado absolutamente pequeños que debe conocer para un código de sistema incrustado?
- ¿Cuál es la diferencia entre una instrucción y una directiva en lenguaje ensamblador?
- Cómo escribir un programa C incrustado para visualización de 7 segmentos para contar de 00 a 99 en el microcontrolador 8051
- ¿Debería la mayoría de los sistemas embebidos del consumidor tener un botón de reinicio completo?
- Cómo comenzar a aprender rápidamente el desarrollo de aplicaciones de Android para aplicaciones de sistemas integrados