Hi,
We've got a a legacy i.MX287 platform and we use gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi to compile our applications. The idea now is to upgrade our gcc to the latest available. After installing DS5 we try to compile and deploy the hello_linux example, but the binary fails to launch (no error message available).
The question is, does arm-linux-gnueabihf-gcc is the same that arm-fsl-linux-gnueabi we formally use, I guess it's not.
I don't now for what fsl trigram stand for, but after dumper the elf header it appears legacy application does not state ti use hardware float. The cpu arch and name are different too.
The legacy file attribute
File Attributes
Tag_CPU_name: "ARM9TDMI"
Tag_CPU_arch: v4T
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-1
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
The file attribute of the DS5 hello world
File Attributes
Tag_CPU_name: "7-A"
Tag_CPU_arch: v7
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
Tag_FP_arch: VFPv3-D16
Tag_ABI_PCS_wchar_t: 4
Tag_ABI_FP_rounding: Needed
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE 754
Tag_ABI_align_needed: 8-byte
Tag_ABI_align_preserved: 8-byte, except leaf SP
Tag_ABI_enum_size: int
Tag_ABI_HardFP_use: SP and DP
Tag_ABI_VFP_args: VFP registers
Tag_CPU_unaligned_access: v6
Could you tell me how can I use DS5, or at least a newer gcc, to compile for my i.MX287 ?
Hello,
The following provides ARM recommendations regarding creating a simple Hello World Linux application.
Linux Application Debugging Using DS-5 – DS-5 Development Studio – ARM Developer
Summary Page :
Get Started – DS-5 Development Studio – ARM Developer
Note, for i.MX28, GCC compiler options should be as following :
-march=armv5te -mtune=arm926ej-s -mfloat-abi=soft
ARM Options - Using the GNU Compiler Collection (GCC)
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Ok, I've added the options you provided i get a linker issue with that.
lmussier@W7FRN00804L-VM:~/DS-5_v5.24.0/examples/DS-5Examples/hello_linux$ make
/home/lmussier/DS-5_v5.24.0/sw/gcc/bin/arm-linux-gnueabihf-gcc -c -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -O1 -g -fno-omit-frame-pointer hello.c -o hello.o
/home/lmussier/DS-5_v5.24.0/sw/gcc/bin/arm-linux-gnueabihf-gcc hello.o -o hello
/home/lmussier/DS-5_v5.24.0/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: error: hello uses VFP register arguments, hello.o does not
/home/lmussier/DS-5_v5.24.0/sw/gcc/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file hello.o
collect2: error: ld returned 1 exit status
Makefile:92: recipe for target 'hello' failed
make: *** [hello] Error 1
My understanding is, the gcc provided with DS5 is a gnuabihf and then can't be used to compile with -mfloat-abi=soft I am right ?
If so, is there an official gnuabi (not hh version) provided by NXP or I've simply have to get, let's says, a linaro gcc and it will do the trick ?
Hello,
I think it makes sense to apply to ARM regarding DS-5 compiler options.
Also, You may try using any GCC version supporting ARM-926.
Regards,
Yuri.