Ich vermute hier gibt es eine Vermischung zwischen 2 verschiedenen Pointern
Da es sich anscheinend um eine 32 Bit ARM Prozessor handelt, hat ein Register 4 Bytes.
Bei deinem Dein Array hat jeder index nur ein Byte.
Das Problem tritt nun auf, wenn Du den Register Pointer mit ++ erhöhst.
Da der Pointer auf einen 4 Byte Wert zeigt, wird die Adresse auch gleich um 4 Bytes erhöht.
Du benötigst einen char* also einen Character Pointer auf dein Register
char *pRegister; // ein Byte Zeiger auf irgendwas
pRegister = (char*)&DeinRegister; // Der Zeiger setzt Du auf die Adresse des Registers
Data[i]=*pRegister++; // nun werden die Bytes kopiert uind der Zeiger wird Byteweise erhöht.
Siro
Lesezeichen