Haben Sie eine Idee, wie Array von Strukturen ab einer bestimmten Adresse im Speicher (nicht virtuellen, physischen DDR-Speicher) zu initialisieren. Ich arbeite an der Implementierung von TxRx auf SoC (ARM-FPGA). Grundsätzlich kommunizieren ARM (PS) und FPGA (PL) miteinander, indem sie einen gemeinsamen RAM-Speicher verwenden. Derzeit arbeite ich auf der Senderseite, also muss ich ständig Pakete laden, die ich von der MAC-Schicht in den Speicher bekomme, dann liest mein Tx Daten und sendet sie in Luft. Um dies zu erreichen, möchte ich einen zirkulären FIFO-Puffer auf der (ARM-) Seite implementieren, so dass ich bis zu 6 Pakete in den Puffer speichern und sie einzeln nacheinander senden kann, während andere Pakete auf bereits gesendete Pakete geladen werden. Da ich bestimmte Speicheradressen, die ich interessiere, verwenden muss, ist es möglich, ein Array von Strukturen zu initialisieren, die an bestimmten Adressen im Speicher gespeichert werden. Zum Beispiel möchte ich, dass mein Array an Adresse 0x400000 beginnt und an Adresse 0x400000 + MaximumNumberOfPackets x SizeOfPackets Ich weiß, wie man es für eine Instanz der Struktur zum Beispiel wie folgt macht: buffer_t * tmp = (struct buffer_t *) 234881024;Initialisieren Array von bestimmten Adresse im Speicher - C-Programmierung
Aber wie es für Array von Strukturen zu tun?
Was ist Ihr Compiler & O (falls vorhanden)? –
Hallo, es ist ARM gcc Compiler – elem
Könnte helfen: http://StackOverflow.com/Questions/4067811/How-to-Place-a-Variable-at-Agiven-Absolute-Address-in-Memory-with- gcc –