Por lo que se, se escribe el programa en ensamblador (no suele ser muy largo) y se llama a una función para que se ejecute en el segundo procesador. Queda como en "segundo plano". Lo que he visto que usa la segunda cpu son players de música y una librería de 3d.
Creo que la minilib de Rlyeh tiene funciones para ello, pero hay una específica que es la Dualcpu. También está la ogg940 que permite música OGG en segundo plano.
Última edición por hardyx; 09/09/2010 a las 19:48
Sé que hay ejemplos hechos, pero no quería ponerme a leer código, era una mera curiosidad despue´s de ver con la facilidad que se trata el tema en el DSP del OMAP3, porque con una librería de "drivers", se puede acceder al DSP desde la CPU usando una serie de funciones: una de inicialización, otra para que cargue el ejecutable, otra para el manejo de memoria compartida, otra para crear colas de mensajes... Todo muy muy sencillo, como si fuera soft, con todo el control de recursos integrados, y manejando las lineas HW.
¿Pero la segunda CPU se debe guardar el código ensamblador? ¿no vale con copiar el binario compilado desde C a una posición de memoria? No me extraña su fracaso.
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
La razón es que la segunda cpu no tiene MMU y no puede acceder a la memoria de la cpu a la vez que la principal. No son dos núcleos totalmente autónomos. No sé exactamente, pero es algo parecido. Por eso hay que generar un código bastante "artesanal", que sólo se puede conseguir en ensamblador.
Marcadores