PLB Peripheral ansprechen

OP #3332239
Lesenswert?

Hallo Leute,
nachdem ich mein ip an den plb-bus angebunden habe, möchte ich diesen 
mit microblaze ansprechen.
Ich bin noch ein Anfänger und weiß nicht, welche Funktion ich zum 
schreiben/lesen benötige.
Sind neben den oben genannten Funktionen noch weitere zu implementieren?

Vielen Dank.
Gast #3332253
Lesenswert?

Hi,
normalerweise wird der Speicher das PLB-Slaves in den Adressraum des MB 
gemappt. Du kannst also direkt über einen Pointer darauf zugreifen. In 
Deinen Sourcen müsste irgendwo ein vom SDK automatisch generiertes File 
liegen, in dem ein #define für die Basisadresse steht.
Gast #3332402
Lesenswert?

Sorry, das sagt mir nichts...habe auch auf diesem Weg noch kein 
Peripheral eingebunden.
Ich habe in einem Project z.B. eine PLB/Wishbone bridge von Open Cores 
verwendet. Diese liegt dann im pcores Verzeichnis und hat den Namen 
"plbv46_2_wb".
Wenn ich das Design ins SDK exportiere und ein BSP generiere, entsteht 
da unter anderem eine Datei "xparameters.h".
Hier steht die Adresse, unter der ich das Modul ansprechen kann:
1
/* Definitions for peripheral PLBV46_2_WB_0 */
2
#define XPAR_PLBV46_2_WB_0_MEM0_BASEADDR 0xA0A00000
3
#define XPAR_PLBV46_2_WB_0_MEM0_HIGHADDR 0xA0AFFFFF
Gast #3332470
Lesenswert?

So klein ist die Welt...:-)
Nein, so sieht meine main() nicht aus ;-)

Die Zugriffe solltest Du, wie gesagt, einfach so machen können:
1
#include <xparameters.h>
2

3
...
4

5
uint32_t pWB = (uint32*) XPAR_PLBV46_2_WB_0_MEM0_BASEADDR;
6

7
*pWB = 0x1;

Das sollte den gleichen Effekt haben wie Dein Zugriff oben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren