Forum: FPGA, VHDL & Co. Microblaze MCS GPO write


von Thomas S. (df1po)


Lesenswert?

Ich hab einen Microblaze MCS am laufen. Mit den Routinen von Xilinx 
klappt auch die Ausgabe auf einen Port (GPO1):
1
XIOModule_DiscreteWrite(&iomodule, 1, data);
Mache ich einen Fehler, wenn ich direkt auf das Port schreibe mit ?
1
#define P_GPO1     (*((volatile unsigned int *)0x80000010))
2
...
3
P_GPO1 = data;
bei 50MHz dauert 1) 1us und 2) 280ns

von Duke Scarring (Gast)


Lesenswert?

Thomas S. schrieb:
> Mache ich einen Fehler, wenn ich direkt auf das Port schreibe mit ?
Nein, wenn das Ergebnis Deinen Erwartungen entspricht, nicht.

Variante 1 prüft wahrscheinlich erstmal, ob Dein GPIO vorhanden ist.

Duke

von Fpgakuechle K. (Gast)


Lesenswert?

Duke Scarring schrieb:

> Variante 1 prüft wahrscheinlich erstmal, ob Dein GPIO vorhanden ist.

;-) , ne ich schätze da wird das bei Unterprogrammaufruf üblich 
"Registersatz auf Stack retten und anschliessend zurückholen" CPU-Takte 
kosten.

MfG,

von Thomas S. (df1po)


Lesenswert?

Ich tu mir noch recht schwer mit dem Assembler-Code, den der GCC 
produziert. Soweit ich das verstehe überprüft das Unterprogramm erst die 
Instanz der PIO und des entsprechenden Kanals.

Danke für Eure freundliche Hilfe

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
Noch kein Account? Hier anmelden.