¿Se puede ejecutar un código personalizado junto con el sistema operativo en Allwinner A20? [cerrado]

0

Mi diseño utiliza un AttTiny programable para administrar cosas como eventos en el PMIC principal, manejo de reinicios en el wifi y el bluetooth, etc., y los LED de estado. Quería comunicarme con la CPU principal del AttTiny. He escrito un firmware. pero soy consciente de que el Allwinner A20 es solo un SoC, pero tiene una gran cantidad de IO útil, justo después de la mejor manera de ejecutar un poco de firmware, sé que puedo proporcionar sistemas operativos que inician una C / Ruby / etc script que puede utilizar el IO, pero eso es un montón de problemas.

Me gustaría ejecutar el código en el propio SOC y no en el sistema operativo, ya que me gustaría permitir que el usuario ejecute el sistema operativo que quiera y no tenga que descargar un montón de scripts para el Computadora para que funcione correctamente.

Por él, me refiero al chip en sí mismo, no a los scripts ruby / python / etc en el sistema operativo.

    
pregunta Tom

1 respuesta

0

El sistema operativo se ejecuta "en el propio SoC": el SoC tiene una CPU que procesa cualquier código que se le indique. El sistema operativo tiene un gestor de arranque y un kernel que se carga en el espacio de direcciones de la CPU y comienza a ejecutarse en la CPU.

Si desea que sus cosas se ejecuten también, necesita escribir su propio cargador de arranque / kernel para ejecutar su código y luego secuenciar la carga del sistema operativo (básicamente como cargar una máquina virtual), o mucho más simplemente aceptar que Los fabricantes de sistemas operativos ya han hecho el arduo trabajo de lograr que su sistema operativo comparta el tiempo de CPU con los programas que se ejecutan en él.

La forma más fácil de hacer esto es hacer que el sistema operativo cargue su código. Se puede hacer con cualquier programa que integre en el sistema operativo, ya sea el software de modo de usuario (por ejemplo, el intérprete de script Python / Ruby) o un controlador de modo de núcleo.

Parece que estás intentando hacer algo de bajo nivel para ayudar al sistema operativo a ejecutarse en el hardware. Ese es el propósito exacto de los controladores: ayudar al código del sistema operativo a interactuar con el hardware del host. Por lo tanto, debe escribir controladores para su hardware que "cualquiera que desee ejecutar cualquier sistema operativo que desee" podrá instalar.

Si lo piensas bien, cualquier hardware que instales en una computadora requiere un controlador (ya sea que se distribuya con el sistema operativo o se instale por separado). Las "personas" están perfectamente acostumbradas a instalar los controladores para el hardware con el que están trabajando (por ejemplo, los controladores de la tarjeta gráfica) o para descargar distribuciones de sistemas operativos específicamente para un hardware determinado (por ejemplo, Raspbian para RasPi). Debe liberar un controlador para instalarlo en el sistema operativo o liberar distribuciones específicamente para su hardware.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas