Buenas,
tal y como dije el otro día en el foro general, aquí os dejo la libreria que he hecho para control de ambos procesadores con ejemplos.
La libreria en cuestion se llama cpuctrl.c y contiene metodos para:
- Apagar el 940t
- Cargar un programa en el 940t
- Parar el 940t
- Poner en marcha el 940t
- Ajustar/leer la frecuencia de reloj
- Ajustar/leer los divisores de frecuencia para 920, 940 y DCLK
- Tambien dispone un metodo para salvar/cargar ciertos registros para volver al sistema con los valores correctos
Me he basado en los fuentes de squidge y tambien en los fuentes publicados hasta ahora y por supuesto, la minimal library 0.5 de rlyeh que he utilizado en mi programa Pintor.
El ejecutable de prueba se llama dualcpu.gpe y lo que hace es poner como frecuencia de trabajo 200Mhz (el firm que yo tengo trabaja a 220Mhz!), cargar el ejecutable del 940t y esperar a que pulses A para calcular una operacion en el 940t de forma paralela.
OBSERVACIONES:
- Si se saliera del programa si usar la funcion load_system_regs() y se hace ajustes en los divisores o en la frecuencia o se apaga el 940t, los programas del sistema (como el reproductor de MP3) se ven afectados. asi que es una buena forma de ahorrar pilas ahí tambien
-Si compilais el codigo de 940, recordad copiar 940tcode.h al directorio dualcore para que se enlace con la aplicacion al compilar
En fin, un saludete y espero vuestros comentarios y sugerencias
ACTUALIZADO: Version 1.02 que corrige DEFINITIVAMENTE los problemas de ajuste de reloj de los que se ha hablado a lo largo del hilo
Marcadores