關于big-endian,little-endian的问题(lib, OS, CPU)

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

關于big-endian,little-endian的问题(lib, OS, CPU)

文章aaronwong » 週六 6月 23, 2007 11:16 pm

big-endian和little-endian是指CPU在内存中对字节的存取顺序吧。
今天为xscale編譯toolchain,突然被一些问题所困惑,希望大虾解答:
(1)一個CPU芯片是不是只能支持一种endian方式?例如PXA270中的xscale核心只支持little-endian,那么是不是所有的程序(包括操作系统在内)都必须编译成little-endian才能在PXA270上正确运行呢?
(2)库文件是一些目标文件.o的集合,那么是否也要編譯成CPU所支持的endian格式呢?例如PXA270支持little-endian,是否要把glibc編譯為little-endian格式?
(3)在HOWTO build arm-linux toolchain for ARM/XSCALE以及[url=http://www.linux-france.org/~dmentre/doc/en/ixp2400-linux-toolchain-howto.txt]Howto make the GCC big endian toolchain for IXP2400/Linux (ARM XScale
core) [/url]中編譯了little-endian和big-endian兩個版本的glibc,如果xscale只支持little-endian的話,那么為甚么還要編譯一個big-endian的glibc呢?還是說也有支持big-endian的xscale核心?
(4)network order是与b ig-endian一致的,那么在little-endian的CPU上進行网路傳輸時,操作系統(embedded linux)是否有一段代碼自動進行endian轉換呢?
謝謝指點!!!
aaronwong
可愛的小學生
可愛的小學生
 
文章: 4
註冊時間: 週六 6月 23, 2007 11:01 pm
來自: Shanghai

文章Franklin » 週日 6月 24, 2007 10:31 pm

(1) yes
(2) yes
(3) 不知道, 不過就我所知, 確實也有同時支援 le 與 be 的 cpu, 只是當然只能選一種
(4) yes, 請參考 ntohs() 與 htons() 等系列函式呼叫的 man page
頭像
Franklin
懵懂的國中生
懵懂的國中生
 
文章: 171
註冊時間: 週五 6月 16, 2006 1:13 pm

文章aaronwong » 週一 6月 25, 2007 3:57 am

非常感謝!
aaronwong
可愛的小學生
可愛的小學生
 
文章: 4
註冊時間: 週六 6月 23, 2007 11:01 pm
來自: Shanghai


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客