Forum: FPGA, VHDL & Co. Arrays in SDRAM speichern


von hallo (Gast)


Lesenswert?

Hallo zusammen,

Ich benutze ein Xilinx Virtex 5. In meinem Projekt habe ich ein 
Microblaze welche mit DDR2-SDRAM verbunden ist.

Was soll ich machen um die Arrays von meine C kode in SD-RAM zu 
speichern.

Vielen Dank

von Studentle (Gast)


Lesenswert?

Also in der Annahme:

- Du redest von C-Code und Microblaze
1. es ist ein Prozessor im Einsatz
2. dieser sollte Speicher zugewiesen gekommen (ram/rom)
3. diese Speicherbereiche liegen im FPGA z.B. als BlockRAM oder in 
deinem SDRAM
4. Diese Speicherbereiche haben Adressen.
5. Schreibe das Array an die entsprechende Speicheradresse

von hallo (Gast)


Lesenswert?

Danke

Bei mir ist die Speicherbereich für SD-RAM ist : 0x60000000-0x6FFFFFFF

Jetzt wie es daunten aussieht, habe ich ein Array mit einem Dimension 
erzeugt.:

  volatile int **pic = (int**)0x60000000;

  pic[5] = 10;

  xil_printf( "%x\r\n", &pic[5]);
  xil_printf( "%d\r\n", pic [5]);

ich will aber ein 2D Array erzeugen. Kann jemand weiter helfen?

von Sym (Gast)


Lesenswert?

Einfach einen Pointer auf das Ram und reinschreiben ist KEINE gute Idee. 
Willst du nicht lieber dem Compiler die Speicherzuteilung überlassen?

2D Array kannst du ganz normal anlegen mit z.B. int pic[30][10]
Überlege dir aber ob du das Array am Stack oder Heap haben möchtest und 
verwende dafür eben die Funktionen zur dynamischen Speicherfunktionen 
(malloc, new)

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.