User Tag List

Resultados 1 al 2 de 2

Tema: Replicando la funcionalidad de DSP del Falcon con el STM32 del UltraSantito

  1. #1

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,197
    Mencionado
    102 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    254
    Agradecer Thanks Received 
    877
    Thanked in
    Agradecido 430 veces en [ARG:2 UNDEFINED] posts

    Replicando la funcionalidad de DSP del Falcon con el STM32 del UltraSantito

    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

  2. Los siguientes 4 usuarios agradecen a masteries este post:

    fbustamante (25/05/2022), romeroca (27/05/2022), selecter25 (24/05/2022), swapd0 (24/05/2022)

  3. #2

    Fecha de ingreso
    Sep 2006
    Ubicación
    Malaga
    Mensajes
    6,706
    Mencionado
    43 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,269
    Agradecer Thanks Received 
    1,335
    Thanked in
    Agradecido 915 veces en [ARG:2 UNDEFINED] posts
    Mola! Estaria bien meterle algo para hacer las transformaciones 3D en punto fijo. Así tener la parte de cálculos en 3D "gratis".

    Cita Iniciado por masteries Ver mensaje
    Usé el entorno AGT y el compilador de Vincent Riviere para compilar el código Atari.
    ¿Cual es ese compilador? Ok, creo que es una versión del gcc, pero IIRC es un poco antigua, 4.6.4 pone en la pagina.

    Podrías probar con una version mas moderna del gcc

    https://github.com/ggnkua/bigbrownbuild-git



    By the way, no te recomiendo el vbcc, ya que compila como si el 68000 fuese un procesador de 32bits haciendo todo mas lento (aunque le pases un int16_t a una función, dentro te expande el signo a 32bits y usa operaciones de 32bits...)

    Mira lo que me paso cuando lo cambie al gcc 8.2 u 8.3 no me acuerdo.


    -----Actualizado-----

    Que pena que solo tenga 10KB de RAM, con 32KB podrias tener un Frame buffer...
    Última edición por swapd0; 24/05/2022 a las 15:13
    No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •