B&R Kopieren memcpy

Hannes

Level-1
Beiträge
67
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,


ich habe schon wieder ein Problem mit Little Endian und Big Endian,
ich kopiere folgendes:

memcpy(&.txbuffer[4], &Array[start], anzahl*2); -> bei SG3 passt das so nur bei SG4 ist wieder alles umgedreht,
Weiß jemand einen guten Algorithmus, wie ich das bei SG4 einfach umdrehen kann?

lg und vielen Dank

Hannes
 
Hallo Hannes,

ungetestet

Code:
void cpy(void *dest, void *src, int cnt, int size)
{
  int offset=0;

  switch (size)
  {
  case 2:
    while (cnt--)
    {
      ((char*)dest)[offset+1]=((char*)src)[offset];
      ((char*)dest)[offset]=((char*)src)[offset+1];
      offset+=2;
    }
    break;

  case 4:
    while (cnt--)
    {
      ((char*)dest)[offset+3]=((char*)src)[offset];
      ((char*)dest)[offset+2]=((char*)src)[offset+1];
      ((char*)dest)[offset+1]=((char*)src)[offset+2];
      ((char*)dest)[offset]=((char*)src)[offset+3];
      offset+=4;
    }
    break;
  }
}

dest=Ziel, src=Quelle, cnt=Elemente (nicht Bytes!), size=2 für (u)shorts oder 4 für (u)longs

Grüsse, harrylask
 
Zurück
Oben