使用linaro gcc 4.6 2012-02交叉编译工具链编译的程序放到arm926ej-s上面,不能跑。经过一番google发现linaro gcc应该不支持ARMV5的架构。
参考1:Wikipedia
Linaro focuses on the use of the ARM instruction set in its versions 7a (32-bit) and 8 (64-bit) including concrete implementations of these, such as SoCs that contain Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A53 or Cortex-A57 processor(s). Linaro engineering works with upstream projects on a set of requirements that are determined by the Technical Steering Committee (TSC).
参考2:https://lists.linaro.org/pipermail/linaro-toolchain/2011-March/000992.html
Andrew Stubbs
<span style="color:#FF0000;">The short answer is that, no, the Linaro *binary* releases will not
support -march=armv5.</span>
However, you can build your own compiler from the Linaro sources, and
then build the libraries you need to match, and you can have v5 support.
This is not a straightforward process. :(
If you'd prefer not to build your own tools, may I recommend
CodeSourcery's Sourcery G++ Lite for ARM GNU/Linux:
http://www.codesourcery.com/sgpp/lite/arm
That compiler defaults to ARMv5TE. If that's too new, the toolchain also
contains prebuilt libraries for ARMv4T (-march=armv4t) and those should
be compatible. Although it is not the Linaro compiler, it is somewhat
similar, and programs you build should be compatible with Ubuntu.
(Disclosure: I work for CodeSourcery).
Hope that helps
Andrew
参考3: https://lists.linaro.org/pipermail/linaro-dev/2010-August/000530.html