Consola portátil (brazo equipo de MCU) (6 / 6 paso)

Paso 6: Núcleo y Middleware - MCU ARM CORTEX M3

API de gráficos de alto nivel

Nuestro objetivo es implementar una tarjeta de gráficos mediante el FPGA de 3 SDMONexys. El microcontrolador STM32 será la ejecuta el sistema operativo y enviar los comandos a la FPGA. Los comandos son enviados a través de un autobús asegurando la comunicación de dos de las tarjetas usando el periférico de la FSMC. Para facilitar este proceso, hemos creado primitivas, estructuras y macros. Estas tres utilidades además de una documentación DOXYGEN ayudan al usuario a controlar fácilmente la tarjeta gráfica. Es la misma idea en cuanto a las bibliotecas STM.

Macros

La configuración de un sistema requiere un trabajo realmente duro de la investigación en los diferentes archivos de documentación y fuente disponibles. Por supuesto las funciones de los archivos de origen pueden ser modificadas directamente por el usuario, pero debemos evitar. Cualquier modificación puede causar una disfunción en cualquier programa anterior utilizando estos archivos de origen y escrito por otro usuario. Para evitar todos estos riesgos, hemos añadido en un archivo (macro) la información que necesitan modificación para que el programa funcione.

Hay dos categorías principales para las macros:

  • Macros de configuración:

Estas macros dan al usuario la capacidad de modificar los periféricos diferentes para utilizar durante la comunicación. Haciendo esto, no hay que cambiar algo en el archivo de origen. Por ejemplo, esta macro puede configurar totalmente la duración de los ciclos de la FSMC.

  • Definir las especificaciones técnicas de macros:

El principal objetivo de esta macro es indicar la especificación de nuestro sistema, como el tamaño de la pantalla, las direcciones iniciales de los planos y las direcciones de la FSMC. Estas garantías de macros una API que puede utilizan en cualquier lugar. Podemos cambiar por ejemplo una pantalla más grande solo modificando la constante correcta.

La documentación Doxygen incluye todas las explicaciones necesarias para poder utilizar las macros.

Estructuras

Con la misma idea que los controladores para el STM32, todas las estructuras creadas para esta API están diseñadas para facilitar el uso de los primitivos y el almacenamiento de datos. Es importante por ejemplo tener en cuenta en que dirección del RAM una imagen ha sido almacenada. De hecho, la dirección de una imagen puede posiblemente cambie en el FPGA después de una operación como la Bit Blit por ejemplo. Si la dirección original no se almacena en algún sitio, el usuario perderá la imagen.

  • Estructura de la imagen:

Se utiliza para cada imagen creada. El usuario identifica su nombre, el tamaño y su dirección. Todo lo que tenemos que hacer después de esto es que esta estructura como un parámetro en un movimiento de tipo primitivo en orden para la operación sobre la imagen para tomar lugar. La actualización de estos parámetros se incluye en las operaciones.

  • Estructura de color

Es muy útil para las funciones de uso de los colores. Esta estructura se aplica para evitar dar los 3 colores primarios y el nivel de transparencia alfa en cada uso.

  • Estructura de pantalla plano

El GPU puede manejar hasta 4 planos. Por esta razón hemos creado 4 plano tipo estructura para cada uno de los planos de pantalla de 4. Declaramos la referencia en una variable global. No es necesario crear un nuevo plano de la pantalla en este FPGA, porque 4 es el número máximo permitido. Esta estructura contiene todos los datos necesarios para configurar una capa: anchura, longitud, dirección de la RAM, desplazamiento ovec X y sobre Y.

  • Estructura ConfPlane

Esta es la estructura de la configuración de 4 capas. Existe sólo un tipo de esta estructura declarada en el programa, con una referencia como una variable global. Ayuda al usuario a elegir que la capa para activar, para activar la transparencia o no, para poner en marcha un procedimiento de prueba para la comunicación y activar la pantalla 4 planos o

Estas 4 estructuras no se crean para ser directamente modificados. Altamente se recomienda utilizar las funciones asociadas de cada estructura para inicializar o modificarlas. De hecho, los datos escritos en la estructura de estos son solo el reflejo de lo que está dentro de la tarjeta FPGA. Cambiar los parámetros en el STM es inútil. Por ejemplo, si queremos modificar manualmente el tamaño de una capa, no se cambió en la GPU porque el comando no se enviará. Las funciones asociadas también ayuda a establecer la comunicación entre ambos de las tarjetas.

Controladores

Esta capa se utiliza para configurar los diferentes periféricos utilizados para la comunicación entre las dos tarjetas. Por ejemplo, podemos utilizarlo para inicializar la FSMC La FSMC se inicializa de forma que el mismo comportamiento como se describe en la sección 2.b. También se inicializa una GPIO para desempeñar el papel de la señal de ocupado en la interfaz MCU.

También encontramos en esta capa las funciones originales utilizadas para leer y escribir en la dirección asociada de la clavija conectada a la FPGA. Los parámetros de estas funciones son la dirección del registro a modificar en la FPGA y los datos a escribir en ese registro.

Las funciones asociadas para estos controladores no están hechas para ser utilizado directamente. Ya se utilizan en la capa de servicio. Sin embargo, el usuario puede en algunos casos acceder a estas funciones para cambiar la configuración del software.

Funciones de servicio:

Las funciones de servicio son las principales funciones de nuestra tarjeta gráfica. En esta capa, podemos encontrar todas las funciones necesarias para la ejecución de las diferentes operaciones de la GPU.

Los detalles de estas funciones estarán disponibles en la sección de documentación doxygen. Sólo debemos aclarar que es posible colocar una capa excesiva para cumplir con operaciones más complejas mediante las funciones originales escritas en la capa de servicio. Por ejemplo es posible crear una función para poder manejar una animación. Esta función se utilizará la operación de movimiento para ello.

La API de audio nivel alta y sistema operativo de tiempo Real no se aplican todavía.

Artículos Relacionados

Consola portátil de RetroGame (frambuesa Pi)

Consola portátil de RetroGame (frambuesa Pi)

Este instructable es escrito para el curso FabLab haciendo de las Rotterdam University of Applied Sciences.Para este curso voy a hacer una consola de juego portátil en combinación con una Raspberry Pi y una carcasa personalizada.Para una asignación d
Consola portátil frambuesa Pi $20

Consola portátil frambuesa Pi $20

Hay toneladas de emuladores retros juego frambuesa Pi alrededor en el internet, pero la mayoría son bastante cara. Con el nuevo $5 frambuesa Pi cero, en este Instructable te voy a mostrar cómo construir una batería totalmente portátil alimentado por
Cómo construir un sistema de computadora de mano consola portátil de Nintendo N64

Cómo construir un sistema de computadora de mano consola portátil de Nintendo N64

Emuladores de N64 no funciona muy bien, que el tartamudeo con video, problemas de framerate, problemas de compatibilidad. Es la única manera de jugar correctamente los juegos de N64 en el hardware original; hecho.Hacer un portable de mano básicamente
Consola portátil (equipo de GPU)

Consola portátil (equipo de GPU)

ContextoPara nuestro proyecto de ingeniería, nuestros tutores quiso enfrentar los desafíos del diseño de un sistema en tiempo real con un relativamente alto rendimiento sobre los limitados recursos (memoria, ancho de banda).Las especificaciones requi
PlayCase v1.5: consola portátil modular caso, completo HD 19 pulgadas, que lleva añadido altavoces!

PlayCase v1.5: consola portátil modular caso, completo HD 19 pulgadas, que lleva añadido altavoces!

Haz un completo monitor de HD en el formato más pequeño posible: 19,5 pulgadasEl bisel de la tira y poner el marco en un caso de vueloAñadir un sistema de fijación modular para adaptarse a la mayoría de consolas; PlayStation 3 o Playstation 4, decodi
¿Cómo hacer una ordenador de mano portátil Nintendo 64 N64 consola de juegos - iNto64

¿Cómo hacer una ordenador de mano portátil Nintendo 64 N64 consola de juegos - iNto64

siempre quería hacer su consola de juegos Nintendo 64 (N64) en una unidad portátil de mano para "sobre la marcha" jugando?Este sistema escurr las baterías del Li-ion que son lo suficientemente potente como para ejecutar el sistema y son también
Caja de consola de juego portátil todo-en-uno

Caja de consola de juego portátil todo-en-uno

construcción de caja de esta consola portátil todo-en-uno fue una gran decisión! No sólo lo hace fácil de transportar, también protege a mi sistema de juego y mantenerlo organizado.Esto es sólo una descripción, Ve el Instructable completa aquí!¿Por q
Hacer una NES portátil. (sistema de entretenimiento portátil de nintendo)

Hacer una NES portátil. (sistema de entretenimiento portátil de nintendo)

me ha encantado la idea de mano portátil de juegos de azar ya que mi primera Game Boy y yo hemos amado la idea de hacer consolas portátiles aún más! VI unos walkies NES e hicieron todo muy bien. Decidí hacer mi propio y publicar un vídeo de cómo hace
Hacer un sistema de juegos portátil-en Photoshop!

Hacer un sistema de juegos portátil-en Photoshop!

Este es mi primer instructivo que visitas el potente y extraordinario mundo de photoshop, les espero guste!Me sorprendió que había nada como esto en instructables hasta ahora, así que pensé que mostraría todo mi proyecto que hice con photoshop CS4. P
Carga Solar de 5W de Tim, 12V 4.5AH fuente de alimentación portátil.

Carga Solar de 5W de Tim, 12V 4.5AH fuente de alimentación portátil.

Este proyecto es principalmente diseño para cargar gadgets como ordenadores portátiles y equipos de comunicación, mano teléfonos, GPS, luces al hacer la misión de trabajan en áreas remotas sin suministro de electricidad de la red.La capacidad de la f
Cómo jugar en una consola en un ordenador portátil (NTSC solamente)

Cómo jugar en una consola en un ordenador portátil (NTSC solamente)

en este instructable te ser mostrando cómo jugar un juego de consola en cualquier portátil decente con puerto usb libre 1. Im sorry pero fácil cap no funciona con NTSC solo PALUsted puede hacer esto con una torre, pero hay una manera más eficaz de ha
Consola de juegos portátil RetroPie del pobre

Consola de juegos portátil RetroPie del pobre

Me encanta los juegos de video. Me gustaría poder llevarlos dondequiera que vaya a jugar. Pero tengo un problema. No tengo demasiado dinero para gastar en juegos de video. Que tomé una de las cosas que me encantan (video juegos), hecho portable y lo
Vesa brazo portátil soporte ajustable

Vesa brazo portátil soporte ajustable

se trata de la edición del martes de las 5 ibles en 5 días combate de jaula (como cailtinsdad).Hoy tenemos un proyecto que he estado trabajando durante un tiempo (algunos de ustedes podrían haber vistolo que acechan en el fondo)Encima de hasta hace p
Consola de juegos portátil frambuesa Pi

Consola de juegos portátil frambuesa Pi

Esta consola de juegos portátil es posiblemente lo más divertido que he tenido usando un Raspberry Pi. Y no es sólo la acumulación que es divertido; Ahora tengo una consola de juegos pleno funcionamiento, por lo que puedo jugar todos mi favorito arca