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
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
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.