マイクロコントローラがビッグエンディアンまたはリトルエンディアンであることを確認する方法は?
マイクロコントローラの仕様がなくても、コントローラがビッグエンディアンかリトルエンディアンかを知る方法は?
マイクロコントローラがビッグエンディアンまたはリトルエンディアンであることを確認する方法は?
マイクロコントローラの仕様がなくても、コントローラがビッグエンディアンかリトルエンディアンかを知る方法は?
これを試して、
int x = 1;
if (*(char *)&x == 1)
printf("Little Endian [LSB first]"); // or LED1 ON
else
printf("Big Endian [MSB first]"); // or LED2 ON
私がここでやっていることは-
最初のインデックスで最下位ビット「1」を確認できる場合は、LSBを最初に格納していることを意味します。これはリトルエンディアンシステムを意味します。
最初のインデックスで最下位ビット「1」を確認できない場合は、MSBを最初に格納していることを意味します。これは、ビッグエンディアンシステムを意味します。
スペックがない!?インターネットからダウンロードできます...
このコントローラーでデバッガーを実行できる場合は、RAM アドレスに 0x1234 を書き込み、メモリ ウィンドウで結果を確認できます。
IE で 0x1234 を 0x2000 に書き込むと、次のようになります。
0x2000 = 0x12 , 0x2001 = 0x34 --> ビッグエンディアン
0x2000 = 0x34 、 0x2001 = 0x12 --> リトルエンディアン