Forum: FPGA, VHDL & Co. Zugriff auf Compact flash


von Valentin S. (jonava)


Lesenswert?

Hallo Zusammen,

ich habe folgende Frage: Gibt es eine Software Routine, mit der ich 
einfach eine Funktion Aufrufe und Daten auf eine Compact Flash Karte 
schreiben und später auslesen kann?
Z.B: funktion (Adresse, Daten).
Zu den Randbedingungen: Ich habe ein XUPV2Pro von Digilent zur 
Verfügung, an dem ein System Ace Controller angebunden ist.

Weiß jemand wie man Daten über Impact auf die CF Karte schreiben kann? 
Ich mache das bisher über einen externen CardReader, was lästig ist, 
weil ich das immer umstecken muss.

Wenn es über Software nicht möglich ist. Kann mir jemand Sagen, wie man 
das Hardwaretechnisch lösen könnte. Vllt kennt auch jemand open Source 
Lösungen?
Ich bin Anfänger in VHDL.

Vielen Dank im Voraus.

Gruß
Jonanova

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Scheinbar hat keiner dein Problem so richtig verstanden... :-o
Probiers mal mit einer anderen Beschreibung.

> Weiß jemand wie man Daten über Impact auf die CF Karte schreiben kann?
Welche Daten? Die FPGA-Konfiguration?
Falls ja: was hilft es dir, wenn die auf dem CF ist?

von Valentin S. (jonava)


Lesenswert?

Hallo Zusammen,

tut mir leid, dass meine Problembeschreibung etwas schwammig ist.

Ich versuche meine Problem etwas besser darzustellen.
Ich habe einen Microblaze und ein Hash-Engine auf dem FPGA laufen.
Ich möchte über den MicroBlaze einen Bitstrom von der CF-Karte lesen und 
an die Hash-Engine über den OPB-Bus übergeben. Die Hash-Engine bildet 
mir dann einen Sha-1 Hashwert. Diesen Hashwert möchte ich dann mit ein 
paar Zusatzangaben (Datum, und anderen Kram, der am Anfang des 
Bitstreams steht) auf die CF-Karte schreiben um damit dann so ne Art 
Log-Datei erzeugen.

Hat jemand eine Idee, wie ich die Bitstreams von der CF-Karte lesen kann 
und dann die Hashwerte an eine bestimmte Adresse auf der CF loggen kann?


Vielen Dank im Voraus.

Gruß
Jonanova

von Atze (Gast)


Lesenswert?

Ich glaube über das SystemACE geht das, da gibt es jedenfalls neben dem 
Config-Interface ein Dateninterface zum FPGA. Schau mal auf der 
Xilinx-Seite nach AppNotes und Whitepapers, ich habe da mal was gesehen.

Gruß
Atze vom Bau

PS: Du kannst über Impact und das Download-Kabel NICHT die 
Configuration-Files ändern. Umstecken Board <-> Rechner ist angesagt ;-(

von Valentin S. (jonava)


Lesenswert?

Hallo Zusammen,

ich bin jetzt einen Schritt weiter. Es gibt bei Xilinx die xilfats 
library und dazu eine Anleitung, sodass man normalerweise ohne Probleme 
auf die CF Karte schreiben und lesen kann.

Ich kann im Moment nur lesen. Das schreiben funktioniert leider nicht. 
Kann mir jemand sagen, was ich falsch mache?

Hier mein Code:

#include "xparameters.h"
#include "stdio.h"
#include "stdlib.h"
#include "loc_check_core.h"
//#include "xsysace_l.h"
//#include "xsysace.h"
#include "sysace_stdio.h"


void main(void)
{
  print("start\n");

print(" -- Auf CF schreiben -- \n\r");
  char FileName[] = "a:\\test.txt";
  char FileName2[] = "a:\\test2.txt";
  void *fstream_write;
  char buffer2[50];
  int buf;
  int i;
  char buffer[]= {'T' , 'e' , 's' , 't'};
  buf = sizeof(buffer);

  xil_printf("Groesse von buf: %d \r\n" ,buf);
  xil_printf("inhalt von buffer: %u \r\n" ,buffer);

  fstream_write = sysace_fopen(FileName,"w");
   for (i=0; i<32768; i++)
   {
   sysace_fwrite (buffer , 1 , sizeof(buffer) , fstream_write);
   }
  sysace_fclose (fstream_write);
  print(" -- Datei schliessen -- \r\n");


  void *fstream; /* A pointer to our file */
     char data[50]; /* A buffer to read data from the file into */
    int n;
     fstream = sysace_fopen(FileName2,"r"); /* Open myfile.txt in read 
only mode */
     print(" -- Datei oeffnen nur lesen -- \r\n");
    sysace_fread(data,1,sizeof(buffer2),fstream); /* Read 
SIZE_OF_DATA_BUFFER bytes into the buffer */

    for (n=0; n<sizeof(buffer2); n++)
    {
      xil_printf("%c", data[n]);
    }

    print("\r\n");
     sysace_fclose(fstream); /* Close the file */


  print("ende\n");
  while (1)
  {
  }

  //return 0;
}

Vielen Dank im Voraus.

Gruß
Jonanova

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.