作者 主題: 關于big-endian,little-endian的问题(lib, OS, CPU)  (閱讀 6264 次)

0 會員 與 1 訪客 正在閱讀本文。

aaronwong

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
    • http://aquarius.cublog.cn
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以及Howto make the GCC big endian toolchain for IXP2400/Linux (ARM XScale
core)
中編譯了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轉換呢?
謝謝指點!!!

leeg

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
關于big-endian,little-endian的问题(lib, OS, CPU)
« 回覆 #1 於: 2007-06-23 23:59 »
1. IXP4XX就可以支援Big & Little-endian. 當系統bootup時, 藉由接腳的設定來決定運行的模式為big or little.
2. 是的
3. ixp400 系列就可以兩種模式都支持.
4. 是的! 你可以參考noth() & hton() 這兩個系統函式

aaronwong

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
    • http://aquarius.cublog.cn
關于big-endian,little-endian的问题(lib, OS, CPU)
« 回覆 #2 於: 2007-06-24 01:22 »
非常感謝leeg的解答!
這樣的話我就明白了。