Hai idea di come inizializzare la matrice di strutture a partire da un indirizzo specifico in memoria (non una memoria DDR fisica virtuale). Sto lavorando all'implementazione di TxRx su SoC (ARM-FPGA). Fondamentalmente ARM (PS) e FPGA (PL) comunicano tra loro usando la memoria RAM condivisa. Attualmente sto lavorando sul lato trasmettitore, quindi ho bisogno di caricare costantemente i pacchetti che ottengo dallo strato MAC alla memoria, quindi il mio Tx legge i dati e li invia in aria. Per raggiungere questo obiettivo, voglio implementare il buffer circolare FIFO sul lato (ARM), in modo da poter memorizzare fino a 6 pacchetti nel buffer e inviarli uno per uno, caricando nello stesso tempo altri pacchetti su posizioni di pacchetti già inviati. Perché ho bisogno di utilizzare specifici indirizzi di memoria che mi interessa è possibile inizializzare array di strutture che verranno memorizzate su specifici indirizzi in memoria. Ad esempio, desidero che il mio array inizi all'indirizzo 0x400000 e termini all'indirizzo 0x400000 + MaximumNumberOfPackets x SizeOfPackets So come farlo per una istanza di struttura ad esempio in questo modo: buffer_t * tmp = (struct buffer_t *) 234881024;Inizializza array a partire da un indirizzo specifico in memoria - Programmazione C
Ma come si fa per una serie di strutture?
Qual è il suo compilatore e sistema operativo (se del caso)? –
Ciao, è il compilatore ARM gcc – elem
Potrebbe aiutare: http://stackoverflow.com/questions/4067811/how-to-place-a-variable-at-a-given-absolute-ad-ress-in-memory-with- gcc –