ARMデバイスのエンディアンについては非常に困惑しています。私がテストしているデバイスはリトルエンディアンを使用しています。ARMプロセッサでのエンディアンの混乱
コードが配列の要素を入れ替えたここであり言う。
uint32_t* srcPtr = (uint32_t*)src->get();
uint8_t* dstPtr = dst->get();
dstPtr[0] = ((*srcPtr) >> 16) & 0xFF;
dstPtr[1] = ((*srcPtr) >> 8) & 0xFF;
dstPtr[2] = (*srcPtr) & 0xFF;
dstPtr[3] = ((*srcPtr) >> 24);
私の理解がsrcPtrが含まれている場合、{0、1、2、3}出力dstPtrがなければならないということである{1、2、3、 0}。
しかし、出力はdstPtrが{2、1、0、3}です。
これは、srcPtrがこのように3,2,1 - > 0を読み込むことを意味しますか?
誰かお手伝いできますか? :)
これはリトルエンディアンによるものですか?
アームプロセッサ上のビッグエンディアンが混乱しています。いくつかはBE32で、一部はBE8です。 –