2012-08-16 63 views

回答

3

你沒有規格!?你可以從互聯網上下載它...

如果你可以在這個控制器上運行調試器,你可以寫爲0x1234一些RAM地址,並看到在內存窗口是什麼結果:

IE寫爲0x1234到爲0x2000將導致:

爲0x2000 = 0×12,0x2001 = 0x34 - >大端

爲0x2000 = 0x34,0x2001 = 0×12 - >小尾數

+0

如果調試器不支持此控制器。請讓我知道是否有任何其他方法來查找控制器是Big Endian還是Little Endian? – user1074836 2012-08-16 07:47:36

+0

你沒有規範,沒有調試器。你有什麼? uC的部件號?密碼箱的uC硬件? – 2012-08-16 08:16:18

+0

我什麼也沒有,這個問題在採訪中被問到了。如何確保微控制器是小端還是大端? – user1074836 2012-08-16 11:49:42

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 

我在做什麼這裏是 -

  • 設置至少顯著位的「詮釋」
  • 去引用該「詮釋」
  • 澆鑄成字符指針,即字符數組和
  • 然後讀取數組

的第一要素如果我們都能夠看到我們最顯著位「1」在冷杉t表示它首先存儲LSB,這意味着Little Endian系統

如果我們無法在第一個索引處看到我們的最低有效位'1',這意味着它首先存儲MSB,這意味着Big Endian系統