Ich schreibe ein einfaches C++ - Programm, um Daten aus einem Puffer in einen dedizierten Speicherort zu kopieren. Jedes Mal, wenn der Puffer aktualisiert wird, laufe ich die folgende Schleife:Speicherkopie durch Zeiger vermisst Daten manchmal
tempPtr= (u64 *) buffer;
for (j=0; j<buffer_length; j++){
destinationPtr[i+j]=buffer[j];
}
i=i+j;
Das Problem ist, manchmal dieser Code funktioniert gut, und manchmal fehlt es Datenblöcke. Ich weiß nicht, was hier vor sich geht. Jede Hilfe wird geschätzt.
Ich kann memcpy nicht verwenden, weil ich den Code auf FPGA laufen lasse und memcpy schlechte Leistung auf FPGA hat ... –
Ausrichtungsprobleme? –
Aliasing-Verletzung, geben Sie punning und undefined Verhalten? –