Øvelse+3+-+UBoot

Opgave 1


 * a) Benyt Devkit8000 schematic (findes på devkit8000 wiki’en) til at finde ud hvilke IOs som følgende er forbundet til?**
 * USER_KEY
 * Findes på GPIO26.
 * SYS_LED2
 * Findes på GPIO186.


 * b)** **I user manualen ([|spruf98t]) skal du i afsnittet om ”General Purpose I/O Interface”, CH 24 (CH 25 spruf98c), finde ud af hvilke GPIO banke (1-6) er førnævnte I/Os forbundet til (brug figur 24-4 (spruf98c:1.5)):**

Det kan aflæses af figur 24.4 i spruf98t at GPIO26 ligger i GPIO bank 1 (der indegolder 31:0) og at GPIO186 ligger i GPIO bank 6 (som indeholder 191:160).

USER_KEY bør være input, derfor forventes det at der står et 0 på bit 26 i GPIO bank1. For at dioden er tændt skal den være konfigureret til output, det forventes altså at der står 0 (aktiv lav) på bit 186 i GPIO bank 6.
 * c) Verificer om GPIO_OE værdien for hhv. USER_KEY (input) og SYS_LED2 (output) er korrekte og korriger i fald at det ikke er tilfældet.**

Der aflæses på adressen 0x48310034 for USER_KEY, hvor det kunne ses at denne var konfigureret til input.

Der aflæses på adressen 0x49058034 for SYS_LED, hvor adressen 0xfffffaf9, viser at bit 186 er 1, det ændres til 1, da LEDen skal vare outpuy

I følge spruf98t manualen skal der aflæses på adressen 0x48310038, der aflæses 0x0e00003c når knappen ikke er trykket ned, trykkes denne ned kan værdien aflæses til 0x0a00003c Altså kan det ses at user_key er altiv low.
 * d) Læs GPIO_DIN værdien for USER_KEY’s GPIO bank og verificer om en bit skifter værdi når knappen er trykket ned eller ej.**

Der skabes to pointere til de to banke hvor SYS_LED2 og USER_KEY ligger Til de to addresser skrives der en værdi der sætter USER_KEY til input og SYS_LED2 til output Derefter sættes addressen for GPIO_DIN og GPIO_DOUT altså input og output, og værdien fra GPIO_DIN læses ind på en variabel.
 * e) Skriv til GPIO_DOUT værdien for SYS_LED2 og verificér at lysdioden tænder/slukker.**

Værdierne for SYS_LED2 og USER_KEY kendes både som tændt og slukket fra tidligere opgaver. Med en simple "if" lykke gøres der sådan, at hvis knappen er trykket tændes LEDed og omvendt

Her kan hele koden ses: