如何找到微控制器是大端还是小端?

时间:2012-08-16 06:35:54

标签: microcontroller

如何找到微控制器是大端还是小端?

没有微控制器规格,如何知道控制器是Big endian还是Little Endian?

2 个答案:

答案 0 :(得分:6)

试试这个,

int x = 1;

if (*(char *)&x == 1)
    printf("Little Endian [LSB first]");  // or LED1 ON
else
    printf("Big Endian [MSB first]");     // or LED2 ON

我在这里做的是 -

  • 在“int”中设置最低有效位
  • 取消引用“int”
  • 将其强制转换为char指针,即char数组和
  • 然后读取该数组的第一个元素

如果我们能够在第一个索引处看到最低有效位'1',则表示它首先存储LSB,这意味着 Little Endian系统

如果我们无法在第一个索引处看到最低有效位'1',则表示它首先存储MSB,这意味着 Big Endian系统

答案 1 :(得分:3)

你没有规格!?你可以从网上下载......

如果你可以在这个控制器上运行调试器,你可以将0x1234写入某个RAM地址,并在内存窗口中看到结果:

I.E将0x1234写入0x2000将导致:

0x2000 = 0x12,0x2001 = 0x34 - >大端

0x2000 = 0x34,0x2001 = 0x12 - >小端