Bärbar spelkonsol (ARM MCU Team) (6 / 6 steg)

Steg 6: Kernel och Middleware - MCU ARM CORTEX M3

Hög nivå grafik API

Vårt mål är att genomföra ett grafikkort med Nexys 3 FPGA. STM32 mikrokontroller kommer att vara den som kör operativsystemet och skicka kommandon till FPGA. Kommandona skickas via en buss försäkra meddelandet av båda korten med FSMC perifera. För att underlätta denna process, skapat vi primitiver, strukturer och makron. Dessa tre verktyg förutom en DOXYGEN documentation hjälpa användaren att enkelt styra grafikkortet. Det är samma idé som för STM bibliotek.

Makron

Konfigurationen av ett system kräver en riktigt hårt arbete av forskning i de olika dokumentation och källkod filerna tillgängliga. Naturligtvis fungerar av källfiler direkt kan ändras av användaren, men vi bör undvika att. Eventuella ändringar kan orsaka en dysfunktion i någon tidigare program använder dessa källfilerna och skriven av en annan användare. För att undvika alla dessa risques, La vi i en fil (makro) den information som behöver ändras för att se till att programmet fungerar.

Det finns två huvudsakliga kategorier för makron:

  • Konfiguration makron:

Dessa makron ger användaren möjlighet att ändra de olika kringutrustning sätta för att använda under meddelandet. Genom att göra detta finns det ingen anledning att ändra något i källfilen. Exempelvis kan detta makro fullt konfigurera cykler av FSMC varaktighet.

  • Makron definiera de tekniska specifikationerna:

Huvudsyftet med detta makro är att ange specifikationen av vårt system, som skärmstorlek, första adresserna till hyvlar och adresserna till FSMC. Dessa makron garanterar ett API som kan användas var som helst. Vi kan till exempel ändra en större skärm genom att bara ändra den rätta konstanten.

Doxygen documentation innehåller alla nödvändiga förklaringar för att använda makron.

Strukturer

Med samma idé som de drivrutiner som skapats för STM32, är alla strukturer som skapats för detta API utformade för att göra användningen av primitiver och datalagringen mycket enklare. Till exempel är det viktigt att komma ihåg i vilken adress ram en bild har lagrats. Som ett faktum, kan adressen till en bild eventuellt ändra i FPGA efter en operation som Bit Blit till exempel. Om den ursprungliga adressen inte lagras någonstans, förlorar användaren bilden.

  • Bild struktur:

Det används för varje bild skapat. Användaren att identifiera dess namn, storlek och dess adress. Allt vi behöver göra efter detta är att sätta denna struktur som en parameter i ett drag skriver primitiva för drift på bilden ska äga rum. Uppdateringen av dessa parametrar ingår i verksamheten.

  • Färg struktur

Det är mycket användbart för funktionerna med hjälp av färger. Denna struktur används för att undvika att de 3 primära färgerna och alfagenomskinlighet nivå vid varje användning.

  • Display plan struktur

Vår GPU kan hantera upp till 4 plan. Det är därför vi skapat 4 plan typ struktur för var och en av de 4 display flygplan. Vi förklarade hänvisningen i en global variabel. Det är inte nödvändigt att skapa en ny display plan på denna FPGA, eftersom 4 är det maximala antalet tillåtna. Denna struktur innehåller alla uppgifter som krävs för att konfigurera ett lager: bredd, längd, RAM-minne adress, rullning ovec X och Y.

  • ConfPlane struktur

Detta är konfigurationsstruktur för de 4 lagrarna. Det finns bara en typ av denna struktur som deklarerats i programmet, med en referens som en global variabel. Det hjälper användaren att välja vilket lager till aktivera, Aktivera genomskinlighet eller inte, att lansera ett provningsförfarande för kommunikation och att aktivera 4 visning flygplan eller

Dessa 4 strukturer skapas inte ska ändras direkt. Det rekommenderas starkt att använda varje struktur för att initiera eller ändra dem tillhörande funktioner. Som ett faktum, är skriftliga uppgifterna i dessa struktur bara en reflexion av vad som finns inuti kortet FPGA. Ändra parametrarna endast i STM är värdelös. Till exempel om vi vill att manuellt ändra storleken på ett lager, kommer det inte att ändras på GPU eftersom kommandot inte skickas. De tillhörande funktionerna bidrar också till att fastställa kommunikationen mellan båda korten.

Förare

Detta lager används för att konfigurera olika kringutrustning används för kommunikation mellan de två korten. Till exempel kan vi använda det för att initiera FSMC. FSMC initieras på ett sätt att ha samma beteende som beskrivs i avsnitt 2.b. En GPIO initieras också för att spela rollen av den upptagetsignal som används i gränssnittet MCU.

Vi kan också hitta i detta lager de ursprungliga funktioner används för att läsa och skriva in PIN ansluten till FPGA associerade adressen. Parametrarna av dessa funktioner är adressen till registret ändras i FPGA och data skrivs i registret.

De tillhörande funktionerna för dessa förare görs inte kan användas direkt. De används redan i service-skiktet. Ändå, användaren kan i vissa fall komma åt dessa funktioner för att ändra konfigurationen av programvaran.

Servicefunktioner:

Tjänsten fungerar är de viktigaste funktionerna i våra grafikkort. I detta lager, kan vi hitta alla funktioner nödvändiga för utförandet av de olika operationerna av GPU.

Information om dessa funktioner blir tillgängliga i avsnittet doxygen documentation. Vi bör bara klargöra att det är möjligt att placera en över lager för att uppfylla mer komplexa verksamheter med hjälp av de ursprungliga funktioner skrivna i tjänst lager. Det är till exempel möjligt att skapa en funktion för att kunna hantera en animering. Denna funktion kommer att använda åtgärden flytta för att göra det.

Hög nivå ljud API och realtidsoperativsystem genomförs inte ännu.

Se Steg
Relaterade Ämnen

Bärbar spelkonsol (GPU Team)

SammanhangFör vårt engineering projekt ville vår handledare vi att möta utmaningar för att utforma en verklig-tid system med relativt hög prestanda på begränsade resurser (minne, bandbredd).Specifikationerna kräver en spelplattform med följande hårdv...

Raspberry Pi bärbara spelkonsol

Bygga denna bärbara spelkonsol är kanske det roligaste jag haft med en Raspberry Pi. Och det är inte bara att bygga som är kul; Jag har nu fått en fullt fungerande spelkonsol, så jag kan spela alla mina favorit gamla arkad spel, on-the-go!Det finns e...

Raspi Pip-boy, bärbar spelkonsol / dator

Hej, skulle jag vilja presentera min första hallon-pi projekt.En Pip-boy som personlig computern (om du är en Fallout fläkt, du ser vad jag menar)! :Översikt :- Hallon-pi modell B + en 2,8 LCD 8bits parallella TouchScreen ansluten på GPIOS.-Lxde Desk...

Hur man bygger ett Nintendo N64 bärbar spelkonsol System

N64 emulatorer fungerar inte bra, förvänta stamning med video, framerate frågor kompatibilitetsproblem. Det enda sättet att spela N64 spel ordentligt är på original hårdvara; faktum.Att göra en handheld bärbar i grunden innebär följande:* ta bort all...

Hur man gör en handheld bärbar Nintendo 64 N64 spelkonsol - iNto64

någonsin velat göra din Nintendo 64 (N64) gaming konsolen till en handheld bärbar enhet för "på språng" spela?Detta system kör av Li-ion batterier som är kraftfull nog att köra systemet och är även laddningsbara celler.Med denna serie av omfatta...

Bärbara RetroGame konsolen (Raspberry Pi)

Detta instructable är skriven för FabLab att göra kursen för Rotterdam University of Applied Sciences.För denna kurs ska jag göra en bärbar spelkonsol i kombination med en Raspberry Pi och ett anpassat skal.För en skoluppgift tvungen jag att göra obj...

Göra ett bärbara spelsystem-i Photoshop!

Detta är min första instructable som besöker den kraftfulla och extraordinära världen av photoshop, jag hoppas du gillar det!Jag blev förvånad att det fanns inget som detta på instructables förrän nu, så jag tänkte jag skulle visa er mitt projekt som...

Bärbar allt-i-ett spel konsol rutan

bygga den här All-i-en bärbar spelkonsol du var ett bra beslut! Inte bara gör det lätt att transportera, det skyddar min spelsystem och håller den organiserade.Detta är bara en beskrivning, Visa den kompletta Instructable här!Varför bygga något sådan...

Hur du sätter din dator (eller annan enhet) till en Retro Arcade med Lakka

Om du letar efter ett roligt sätt för att använda en gammal PC, Lakka kan förvandla det till en fantastisk retro gaming maskin. Denna lätt installation kräver inte någon avancerad Linux kunskap, och du kan även använda de domänkontrollanter som du re...

Planet lander på 4D Systems' PoGa

4D system PoGa - bärbara spelkonsol - är en sofistikerad spelkonsol som innehåller en uLCD skärm, en Goldelox mikrokontroller, en uSD-kortläsare och de regelbundna kontrollerna för spel (upp/ner/vänster/höger för din vänstra hand, och A / B för din r...

Smarta hem med arduino och jubito

jubito är en programvara som jag utvecklar jaNETramverk. En smart home server som skapas gränssnitt mellan olika hårdvara (som arduino) och programvarukomponenter, att förmågan att interagera varandra och låt mig tillgång automatiseringar och mer öve...

Raspberry Pi Solar väderstation

Sporrad av slutförandet av mina två tidigare projekt, den kompaktkamera och bärbar spelkonsol, ville jag hitta en ny utmaning. Det naturliga förloppet var ett utomhus remote system...Jag ville bygga en Raspberry Pi väderstation som kunde hålla sig ut...

Avlägsen kontrollerade relay

I detta projekt ska jag visa dig hur man gör en billig fjärr kontrollerade relä med en sändare och mottagare. Denna trådlösa relay kan användas på något och du kan upptåg dina vänner genom att ansluta den till en lampa och skrämma dem ;)Steg 1: Delar...

Öppna och modding ett Li-ion batteri och ansluter i en gadget att ladda vid behov

varför är detta användbart? När du gör en elektronik projekt, som en bärbar handhållen video spel konsolen system, det är inte lätt att hysa ett stort batteripaket innanför höljet; men om batteriet kan delas upp i två delar, det innebär att det är my...

Hur man gör en Sega DreamCast-konsol till en ackumulatorn driv handheld portable

första pic är av den färdiga artikeln, enligt sista sidan i guiden.INLEDNING:Det har bara varit om ett dussin sådana enheter i förflutnan från olika datorbyggare, en av dem var min för några år sedan. Därför tänkte jag det skulle vara trevligt att gö...

Namnet ritning CNC

Detta instructable skapades enlighet projektet kravet på Makecourse vid University of South Florida (www.makecourse.com).Med detta i åtanke är slutresultatet av detta projekt en CNC som helt klarar av att köra bort av GRBL, utan att uppfylla kraven i...

Driva din Arduino/AVR med ett Hand-Cranked batteri

om du någonsin velat driva din Arduino eller AVR från ett batteri för utveckling testning (batterierna har olika makt leverans kvaliteter än, säg, transformerad AC eller ens en reglerad vägg vårta i DC) testning men var trötta för att gå igenom batte...

En annan Arduino Counter

Adaptiv rapportering delar batch räknareEn räknare som kan anpassas till maskinen är monterad och rapportera data tillbaka till andra platser t.ex. handledare skrivbordHär är counter jag byggt som en fungerande prototyp för ett företag jag arbetade e...

DIY LED-tecken med MAX7219 Dot Matrix modul STM8S003F3 MCU för AVR PIC MSP430 Arduino ARM STM32

för att tillfredsställa DIY elektronikhobby, ICStation har utvecklat MAX7219 Dot Matrix modul. Det använder Max7219 chip som gör ett bra jobb på besparingen av MCU i /. Det inte bara kan kontrollera varje punkt individuellt, men också kan förlängas u...