Console de jeu portable (bras MCU Team) (6 / 6 étapes)

Étape 6: Noyau et Middleware - MCU ARM CORTEX M3

Haut niveau API graphiques

Notre objectif est de mettre en place une carte graphique à l’aide des FPGA 3 Nexys. Le microcontrôleur STM32 sera celui exécutant le système d’exploitation et d’envoyer les commandes pour le FPGA. Les commandes sont envoyées via un bus assurant la communication des deux des cartes en utilisant le périphérique de l’EFM. Pour faciliter ce processus, nous avons créé des primitives, des structures et des macros. Ces trois utilitaires outre une documentation DOXYGEN aident l’utilisateur à contrôler plus facilement la carte graphique. C’est la même idée en ce qui concerne les bibliothèques de la STM.

Macros

La configuration d’un système exigent un très dur travail de recherche dans les fichiers de documentation et de source différentes disponibles. Bien sûr, les fonctions des fichiers sources peuvent être directement modifiées par l’utilisateur, mais nous devons éviter cela. Toute modification peut provoquer un dysfonctionnement dans n’importe quel programme précédent, l’utilisation de ces fichiers source et écrit par un autre utilisateur. Pour éviter tous ces risques, nous avons ajouté dans un fichier (macro) les informations qui ont besoin de modification afin de rendre le programme de travail.

Il existe deux catégories principales pour les macros :

  • Macros de configuration :

Ces macros donnent à l’utilisateur la possibilité de modifier les différents périphériques mis à profit au cours de la communication. Ce faisant, il n’y a pas besoin de changer quoi que ce soit dans le fichier source. Par exemple, cette macro pouvez entièrement configurer la durée des cycles de l’EFM.

  • Macros en définissant les spécifications techniques :

L’objectif principal de cette macro est d’indiquer les spécifications de notre système, comme la taille de l’écran, les adresses initiales des plans et les adresses de l’EFM. Ces garanties de macros une API qui peut être utilisé n’importe où. Nous pouvons changer par exemple un écran plus grand en modifiant simplement la constante de la droite.

La documentation Doxygen comprend toutes les explications nécessaires pour utiliser les macros.

Ouvrages d’art

Avec la même idée que les pilotes créés pour le STM32, toutes les structures créées pour cette API sont conçues pour faciliter l’utilisation des primitives et le stockage des données. Par exemple, il est important de garder à l’esprit en tenant compte de la RAM une image a été stocké. Comme une question de fait, l’adresse d’une image peut éventuellement changer dans le FPGA après une opération telle que le Bit Blit par exemple. Si l’adresse d’origine n’est pas stocké quelque part, l’utilisateur perdra l’image.

  • Structure de l’image :

Il est utilisé pour chaque image créée. L’utilisateur identifier son nom, de taille et de son adresse. Tout ce que nous devons faire après que c’est de mettre cette structure en tant que paramètre dans un mouvement de type primitif pour l’opération sur l’image puisse avoir lieu. La mise à jour de ces paramètres est inclus dans les opérations.

  • Structure Color

Il est très utile pour les fonctions en utilisant des couleurs. Cette structure est appliquée pour éviter de donner les 3 couleurs primaires et le niveau de transparence alpha à chaque utilisation.

  • Structure Plane affichage

Notre GPU peut gérer jusqu'à 4 avions. C’est pourquoi nous avons créé la structure de type avion 4 pour chacun des plans 4 affichage. Nous avons déclaré que la référence dans une variable globale. Il n’est pas nécessaire de créer un nouveau plan d’affichage sur ce FPGA, 4 étant le nombre maximal autorisé. Cette structure contient toutes les données nécessaires pour configurer une couche : largeur, longueur, adresse RAM, défilement ovec X et de Y.

  • ConfPlane Structure

Il s’agit de la structure de configuration pour les 4 couches. Il n’y a qu’un seul type de cette structure déclarée dans le programme, avec une référence comme une variable globale. Il permet à l’utilisateur de choisir quelle couche pour activer, activer la transparence ou non, de lancer une procédure d’essai pour la communication et pour activer l’affichage de 4 avions ou

Ces 4 structures ne sont pas créés pour être directement modifiées. Il est conseillé d’utiliser les fonctions de chaque structure afin d’initialiser ou les modifier. En fait, les données écrites dans ces structure sont juste la réflexion de ce qui est à l’intérieur de la carte FPGA. Il est inutile de modifier uniquement les paramètres de la STM. Par exemple, si nous voulons modifier manuellement la taille d’un calque, il ne changera sur le GPU parce que la commande ne sera pas envoyée. Les fonctions associées permet également d’établir la communication entre les deux des cartes.

Pilotes

Cette couche est utilisée pour configurer les périphériques différents utilisés pour la communication entre les deux cartes. Par exemple, nous pouvons l’utiliser pour initialiser l’EFM. L’EFM sont initialisé de façon à avoir le même comportement tel que décrit dans la Section 2.b. Un GPIO est également initialisé afin de jouer le rôle de la ligne occupée utilisé dans l’interface MCU.

On trouve aussi dans cette couche des fonctions initiales utilisées pour lire et écrire à l’adresse associée de la broche reliée à la FPGA. Les paramètres de ces fonctions sont l’adresse du Registre à modifier dans le FPGA et les données à écrire dans ce registre.

Les fonctions associées à ces pilotes ne sont pas faites pour être utilisées directement. Ils sont déjà utilisés dans la couche de service. Néanmoins, l’utilisateur peut dans certains cas accéder à ces fonctions afin de changer la configuration du logiciel.

Fonctions de service :

Les fonctions de service sont les principales fonctions de notre carte graphique. Dans cette couche, on retrouve toutes les fonctions nécessaires à l’exécution des différentes opérations du GPU.

Les détails de ces fonctions seront disponibles dans la section de documentation doxygen. Nous devons juste préciser qu’il est possible d’appliquer une couche excessive afin de réaliser des opérations plus complexes en utilisant les fonctions originales écrites dans la couche de service. Par exemple, il est possible de créer une fonction pour pouvoir gérer une animation. Cette fonction utilise pour ce faire l’opération de déplacement.

Le haut niveau API audio et le système d’exploitation temps réel ne sont pas encore implémentées.

Articles Liés

Console de jeu portable Pi framboise 20 $

Console de jeu portable Pi framboise 20 $

Il y a des tonnes d'émulateurs jeu rétro Raspberry Pi autour sur l'internet, mais la plupart sont assez cher. Avec le nouveau $5 Raspberry Pi Zero, dans ce Instructable je vais vous montrer comment construire une batterie complètement portable alimen
Raspi Pip-boy, console de jeu Portable / ordinateur

Raspi Pip-boy, console de jeu Portable / ordinateur

Salut, je voudrais présenter mon premier projet de framboise-pi.Un Pip-boy comme ordinateur personnel (si vous êtes un Fan de Fallout, vous voyez ce que je veux dire) ! :Vue d'ensemble :- Framboise-pi modèle B + un écran tactile 2.8 LCD 8bits en para
Console de jeu portable (équipe de GPU)

Console de jeu portable (équipe de GPU)

CadrePour notre projet d'ingénierie, nos tuteurs voulaient nous faire face aux défis de la conception d'un système en temps réel avec des performances relativement élevé des ressources limitées (mémoire, bande passante).Les spécifications exigent une
Console de jeu Portable RetroPie pauvre

Console de jeu Portable RetroPie pauvre

J'aime les jeux vidéo. Je voudrais être capable de les emmener n'importe où que je vais pour jouer eux. Mais, j'ai un problème. Je n'ai pas trop d'argent à dépenser sur les jeux vidéo. C'est pourquoi j'ai pris une des choses que j'aime (jeux vidéo),
Comment faire une poche portable Nintendo 64 N64 console de jeu - iNto64

Comment faire une poche portable Nintendo 64 N64 console de jeu - iNto64

Ever voulais faire votre console de jeu Nintendo 64 (N64) dans un appareil portable portatif pour « sur le pouce » jouer ?Ce système fonctionne sur des batteries Li-ion sont assez puissants pour faire fonctionner le système, qui sont également des pi
Fait maison de Console de jeu Pentium III

Fait maison de Console de jeu Pentium III

Bonjour à tous ! Il y a plusieurs mois, je me suis embarqué sur un projet de construction d'une console de jeu 100 % à partir de zéro, basé sur le processeur Pentium III. Eh bien, tout, sauf la fourniture de CD drive et puissance. Il s'agit d'un trav
Système de jeu portable

Système de jeu portable

récemment, j'ai construit un système de jeu portable qui vous permet de jouer 12 * jeux Namco totalement RADICAL comme Pac Man, Dig Dug et tout ce que de bonnes choses.Maintenant, je tiens à rendre parfaitement clair cinq choses avant de commencer...
Comment faire un système de jeu Portable

Comment faire un système de jeu Portable

jamais pensé être capable de jouer de votre système de jeu préféré n'importe où ? Je suis sûr que vous avez. Suivant ce guide, vous pouvez apprendre à « portablize » la Nintendo Entertainment System.Dans ce Instructable je vais vous apprendre tout ce
Console de jeu matricielle Arduino

Console de jeu matricielle Arduino

Téléphone intelligent & iPad jeu est grand et tout amour Candy Crush & Angry Birds, mais rien ne peut toucher le charme de faire une console de jeu en propre et jouer avec lui. Il a été 2003 quand j'ai eu un portable Nokia 3310, et j'avais l'habit
Faire un système de jeu Portable-dans Photoshop !

Faire un système de jeu Portable-dans Photoshop !

C'est mon premier instructable qui visite l'univers puissant et extraordinaire de photoshop, j'espère que vous aimez !J'ai été surpris qu'il y avait rien de tel sur instructables jusqu'ici, alors j'ai pensé que je voudrais vous montrer tout mon proje
Console de jeu ultime classique manette pour adaptateur USB

Console de jeu ultime classique manette pour adaptateur USB

Cet article décrit comment utiliser un Arduino Leonardo ou Arduino Micro pour mettre à la disposition d'un ordinateur modern (p. ex. Windows PC, Mac ou Linux) jusqu'à trois manettes de console classique (Atari 2600, ColecoVision et éventuellement d'a
Console de jeu ultime Cooler

Console de jeu ultime Cooler

ce Instructable est pour le jeu Console Cooler ultime.  Après avoir ma PS3 et la Xbox 360 envoyé en réparation (plusieurs fois), que j'ai décidé que je devais arriver à une meilleure façon de garder la chaleur vers le bas à ces consoles de jeux cher.
El Jugador : Console de jeu DIY Retro

El Jugador : Console de jeu DIY Retro

sais un peu BASIC ou C ? Vous pouvez faire des jeux avec El Jugador, une console de jeu open source rétro basée sur une hélice de parallaxe.Nouveau!  Nous avons amélioré El Jugador, ça s'appelle Joueur rapide et vous pouvez le vérifier ici.Caractéris
Consoles de jeu vidéo!!!

Consoles de jeu vidéo!!!

S'il vous plaît jeter un oeil à ce que d'autres disent de mon travail comme MTV , PC WORLD , 1UP.COM , FANBOY et CRAZIESTGADGETSMerci de vérifier sur mon entrée.  J'ai fait des consoles de jeu vidéo et de l'électronique personnalisé depuis 04' - 05'.