J'ai installé tous les paquets de compilations croisées sur mon système ubuntu mais j'ai un problème et j'ai besoin d'aide.Compilation croisée de linux à ARM-ELF (armv5tejl)
Linux 2.6.28.7 #1 CST 2012 armv5tejl unknown
$ cat /proc/cpuinfo
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 199.47
Features : swp half fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : ServerEngines PILOT3
Revision : 0000
Serial : 0000000000000000
[email protected]:~/code$ arm-linux-gnueabi-readelf -h xxx.bin
ELF Header:
Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: ARM
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Entry point address: 0xa27c
Start of program headers: 52 (bytes into file)
Start of section headers: 128752 (bytes into file)
Flags: 0x2, GNU EABI, <unknown>
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 6
Size of section headers: 40 (bytes)
Number of section headers: 25
Section header string table index: 24
Ceci est la machine cible pour laquelle je dois compiler. Quels drapeaux dois-je utiliser lors de la compilation?
arm-linux-gnueabi-gcc simple.c -march=armv5 -static -o simplev5
arm-linux-gnueabi-gcc simple.c -mcpu=arm926ej-s -static -o simple926
quand je lance le simplev5 ou simple926, show:
Segmentation fault
suivre @Steven P conseils, j'ai vérifié le format de fichier, comme suit:
[email protected]:~/code$ file simplev5
simplev5: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=f0607da1d809a7d98636d76ee0e538fc828e3b65, not stripped
[email protected]:~/code$ file simple926
simple926: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=ed1e6fdade02c0d2c985a503dafb6efadd13522f, not stripped
Copie possible de http://stackoverflow.com/questions/17336236/cross-compile-from-linux-to-arm-elf-arm926ej-s-mt7108 – lnman
Copie possible de [Cross compile de linux à ARM-ELF (ARM926EJ-S/MT7108)] (http://stackoverflow.com/questions/17336236/cross-compile-from-linux-to-arm-elf-arm926ej-s-mt7108) ... Ceci 'Linux 2.6.28.7 'est plutôt vieux et le plus récent cross-arm d'Ubuntu est probablement configuré pour un Linux beaucoup plus récent. Même si "-static" a réussi, vous avez toujours des appels 'swi 'qui ne peuvent pas être mappés. –
[Construire un compilateur croisé à partir de zéro] (http://frank.harvard.edu/~coldwell/toolchain/) pourrait être utile. [Crosstool-ng] (http://crosstool-ng.github.io/) peut être utile, mais il a aussi un support pour les anciennes versions de GCC et éventuellement les versions de Linux. Souvent, les choses ont besoin de petits correctifs pour que le compilateur soit construit avec des dépendances obsolètes. –