www.mikrocontroller.net

Forum: FPGA, VHDL & Co. GPIO-Adressen


Autor: Jens Heyen (jens-heyen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe ein Virtex 5 FPGA-Board und darauf einen Leon3-Prozessor 
laufen.
Wie kann ich von meinem C-Programm auf die GPIOs zugreifen? Also z.b. 
einen Taster abfragen oder eine LED an/ausknipsen?
Die GPIOs müssen ja in irgendeiner Form durch das memory mapped i/o 
ansprechbar sein. Woher kriege ich den Adressbereich für die GPIOs und 
speziell die Adresse einzelner IOs?

Gruß,
Jens

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich hatte vor kurzem mit sowas ähnlichem (virtex4?) zu tun in der FH... 
wir haben eine IDE namens Plattform Studio verwendet und eine CPU 
(microblaze) wurde auch generiert. Ziemlich viele Sachen wurden einen da 
abgenommen. Wenn man einen eigenen IP-Core einfügen wollte, konnte man 
mit ein paar Mausklicks angeben wieviele user accessable registers man 
braucht. dann hat man das Tool einfach generieren lassen (Busanbindungen 
und so). Als nächstes hat man beginnen können in VHDL zu coden.

Die Addressen hat man bekommen durch einen Klick auf "Generate 
addresses", welches zum Vorschein kam, wenn man das Tab "Ports" 
anklickte. Das Ergebnis waren Basisaddressen und in meinem Fall war 
jedes Register 32bit, also 4 byte. zugegriffen wurde dann mit pointer 
auf die Addressen + Offset(also 0x...+n*4),zB.: (*((u32*) 0xC8200000))
sogar die C-Funktionen wurden generiert, basierten aber auf dem wie ich 
es vorhin beschrieb.

Um I/O-pins anzusprechen, musste man in den *.ucf und *.mpd(glaub mpd, 
aber auf jeden Fall mit m...) ein paar Dinge umschreiben und dann noch 
einige Klickis in der IDE machen. Falls Du auch mit Plattform Studio 
arbeitest, würde ich noch mal einen genaueren Blick drauf werfen und Dir 
besser helfen versuchen. Würde aber erst ab späten Nachmittag zeit 
haben.

LG

Autor: Jens Heyen (jens-heyen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Matthias,

danke für deine Antwort. Ich glaube so langsam auch, dass ich mit dem 
microblaze ein einfacheres leben hätte ^^
Leider bin ich aber auf den Leon3 festgelegt :-/

Trotzdem danke für deine Mühe,
Gruß,
Jens

Autor: Frank V. (scyx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann gerade nur eine Aussage zum Leon2 treffen. Dieser hat 
PIO-Register (tatsächlich heissen sie so und nicht GPIO!) und diese sind 
der in der Doku mehr oder weniger gut dokumentiert. Es gibt eine Adresse 
an der man den Wert der PIOs abfragen kann und natürlich auch 
richtugn/verwendung setzen kann.
Bei all dem ist es äußerst hilfreich den von Gaisler angebotenen 
Softwarestack zu nutzen - GRMON ist das Zauberwort, dann kann man per 
UART/JTAG jede beliebige Adresse des LEON lesen oder schreiben.

mfg
 Frank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.