masteries
24/05/2022, 14:24
Hace tiempo tuve una idea loca, de esas muy locas...
si el disco duro UltraSantito, es en esencia un procesador de 32 bits
y después del firmware de disco duro le sigue quedando algo de ROM y RAM libres... y el Atari ST/E se comunica con él mediante órdenes y envío/recepción de datos a través de DMA
¿Por qué no inventar nuevas órdenes, enviar (casi gratis) datos para que los procese el ARM y recibir los resultados de gratis?
Hoy estuve probando, usando las funciones de disco duro de ejemplo del dispositivo CosmosEx,
¡He logrado enviar un comando personalizado y recibir la multiplicación de dos datos!
pero debido a que no uso comandos estándar de 6 bytes u 11 bytes, el controlador DMA del ST/E cuelga, después de esto, la máquina de estado del disco duro cuelga ... jeje pero no es nada, necesito mantenerme en el tamaño de comando estándar en lugar de experimentos de tamaño de 3 bytes. :)
Hasta donde he podido contabilizar, la respuesta del controlador del disco duro STM32 es casi inmediata, tarda unos poco microsegundos y algunas decenas en enviar el resultado de vuelta al ST/E. Debido a que la tarjeta SD no está involucrada en todo esto, sólo intervienen el 68000, que da las órdenes al controlador interno de disco duro y éste envia y recibe los datos.
=> Inicialmente, quiero integrar en la ROM STM32 una función de conversión de "chunky a planar" y una función de mezcla de audio para 3 y 4 voces.
Debido a que casi todas las unidades de disco duro vendidas están basadas en STM32F103C6, es decir, un microcontrolador de ROM de 32 KB y RAM de 10 KB; después del firmware del disco duro hay 9136 bytes de ROM libre y 6840 bytes de RAM libre.
Además, quiero replicar algo similar al DSP del Falcon (no es exactamente igual, pero me entendéis; es un ARM de 32 bits a 72 MHz); agregando la posibilidad de cargar una función overlay en la RAM del STM32 desde el Atari ST/E; al menos 3 o 4 KB de código ARM personalizado, no es una tarea fácil pero es la más interesante.
Usé el entorno AGT y el compilador de Vincent Riviere para compilar el código Atari.
Trabajaré más en estas funciones DSP añadidas :)
si el disco duro UltraSantito, es en esencia un procesador de 32 bits
y después del firmware de disco duro le sigue quedando algo de ROM y RAM libres... y el Atari ST/E se comunica con él mediante órdenes y envío/recepción de datos a través de DMA
¿Por qué no inventar nuevas órdenes, enviar (casi gratis) datos para que los procese el ARM y recibir los resultados de gratis?
Hoy estuve probando, usando las funciones de disco duro de ejemplo del dispositivo CosmosEx,
¡He logrado enviar un comando personalizado y recibir la multiplicación de dos datos!
pero debido a que no uso comandos estándar de 6 bytes u 11 bytes, el controlador DMA del ST/E cuelga, después de esto, la máquina de estado del disco duro cuelga ... jeje pero no es nada, necesito mantenerme en el tamaño de comando estándar en lugar de experimentos de tamaño de 3 bytes. :)
Hasta donde he podido contabilizar, la respuesta del controlador del disco duro STM32 es casi inmediata, tarda unos poco microsegundos y algunas decenas en enviar el resultado de vuelta al ST/E. Debido a que la tarjeta SD no está involucrada en todo esto, sólo intervienen el 68000, que da las órdenes al controlador interno de disco duro y éste envia y recibe los datos.
=> Inicialmente, quiero integrar en la ROM STM32 una función de conversión de "chunky a planar" y una función de mezcla de audio para 3 y 4 voces.
Debido a que casi todas las unidades de disco duro vendidas están basadas en STM32F103C6, es decir, un microcontrolador de ROM de 32 KB y RAM de 10 KB; después del firmware del disco duro hay 9136 bytes de ROM libre y 6840 bytes de RAM libre.
Además, quiero replicar algo similar al DSP del Falcon (no es exactamente igual, pero me entendéis; es un ARM de 32 bits a 72 MHz); agregando la posibilidad de cargar una función overlay en la RAM del STM32 desde el Atari ST/E; al menos 3 o 4 KB de código ARM personalizado, no es una tarea fácil pero es la más interesante.
Usé el entorno AGT y el compilador de Vincent Riviere para compilar el código Atari.
Trabajaré más en estas funciones DSP añadidas :)