Hallöle.
Bisher hab ich schon einige eigene AXI Slaves geschrieben, die dann vom
ARM Kern des ZYNQ benutzt werden konnten. Lief auch immer wunderbar.
Nun diesmal soll auch die andere Richtung möglich sein, der IP braucht
8MB RAM und die sollen aus dem DRAM abgezwickt werden.
Also habe ich mir zum Testen ersteinmal im XPS 14.7 eine IP geklickt und
den AXI Master aktiviert und dazu noch Test C Code generieren lassen.
Die so zusammengeklickte IP besitzt zum Testen auch gleich ein paar
Register mit denen ein AXI Lite Master angesprochen werden kann und der
Xilinx Testcode liest und schreibt dann auch gleich 4 Byte aus/ins DRAM.
(Die IP hat also 2 AXI Anschlüsse, Master und Slave)
Basieren tut das Ganze auf dem "zybo_base_system", also da ist der PS7
drinne, eine VGA/HDMI Grafikausgabe sowie AXI Slaves für die Taster und
LEDs.
Darein hab ich dann meine Test IP eingebaut und das Ganze funktioniert
nicht.
Der Xilinx Testcode (SP2_ZYNQ_WRAPPER_SelfTest) läuft zwar durch, aber
es wird nicht in den RAM geschrieben, es kommt die Ausgabe, dass SRC und
DST Buffer ungleich sind.
Die Basisadresse stimmt aber.
Dann dacht ich, dass der Fehler daran liegt, dass der AXI Interconnect
mit den beiden Grafikmastern und meinem AXI Master am High Performance
Anschluss des PS7 hängt und der war auf 64Bit gestellt. Mein AXI Master
hat aber nur 32Bit.
Also meine IP an den General Purpose gehangen mit 32Bit und das alleine.
Ja jetzt geht garnichts mehr, er hängt bei "start user logic master
module to send one word to the destination"
(Z.118 in sp2_zynq_wrapper_selftest.c).
Meine eingebaute Debugausgabe welche das Statusregister abfragt kommt
auch nicht mehr.
Der ganze AXI Bus scheint zu hängen?
Hat da wer ne Idee wieso schon das Beispiel nicht funktioniert?