2009年7月30日 星期四

arm 和 armel 的差異

Standard
在 Debian 5.0 Lenny Release 後,出現了一個新的名詞『armel』,可以在許多 ARM toolchain packages 身上看到,而 armel 顧名思義就是針對 ARM Architecture 的實作,但與古老的『arm』最大不同在於『armel』的移植是新的 ARM EABI ,對一些新的 ARM processor 特性有著更好的實作改進和支援,像是更動 Floating point、Stack alignment 等部份。

此外,因為 armel 參照著新的 EABI Spec 去更良好支援一些新 ARM processor 的特性,對於選用 CPU 也有些考量和建議。尤其是 Thumb interworking 的 16-bits Thumb/32-bits ARM instructions 混用機制,就因為只有 ARMv4t 以上的處理器才有這樣的特性,所以就建議最少要使用 ARMv4t 以上的 Processor,也因為這樣, Debian 的 armel toochain 的 GCC 預設會編譯出目標為 armv4t 的程式。

順帶一提,『emdebian (Emedded Debian)』一個 Debian Linux 的 Embedded 版本計劃,因為以 Debian 5.0 Lenney 為基礎,因此也有了『armel』這新的支援。

更多新的 ARM EABI 細節和說明,可以在 Debian 的官方 Wiki 上找到解答:
http://wiki.debian.org/ArmEabiPort