|
i.MX 6UltraLite(简称为i.MX 6UL)是i.MX6系列的新产品。i.MX 6UltraLite采用单核ARM Cortex-A7,处理器主频528MHz,采用NEON技术加速多媒体和信号处理算法,具有浮点运算单元。适合于物联网,电子支付,智能家居,能源管理等领域。 I%j]p Y4 如何在i.MX6UL平台上实现硬浮点与软浮点? q9^.f9- 本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板(产品详情:www.forlinx.com/69.htm),其它板卡请酌情参考使用,具体实现操作步骤如下: _m#TL60m 硬浮点交叉编译方法为
~xPetkl@ arm-linux-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -o test test.c oOXJ7|n 加入编译参数 -mfloat-abi=hard,并且使用arm-linux-readelf -A test查看,如下: Tn3C0 Attribute Section: aeabi j~;y~Cx? File Attributes !+UXu]kA Tag_CPU_name: "7-A" iztF Tag_CPU_arch: v7 2Qp]r+! Tag_CPU_arch_profile: Application )kKeA Tag_ARM_ISA_use: Yes j6 _w2 Tag_THUMB_ISA_use: Thumb-2 rg%m Tag_FP_arch: VFPv3 dj 6Lf Tag_Advanced_SIMD_arch: NEONv1 ZiH4s| Tag_ABI_PCS_wchar_t: 4 7
X~JLvN Tag_ABI_FP_denormal: Needed \naG Tag_ABI_FP_exceptions: Needed `I|Y7GoUO Tag_ABI_FP_number_model: IEEE 754 zRau/1Y0 Tag_ABI_align_needed: 8-byte t#]VR7] Tag_ABI_align_preserved: 8-byte, except leaf SP `\BBdQ#bH Tag_ABI_enum_size: int &(x>J:b Tag_ABI_HardFP_use: SP and DP hNp.%XnnZ Tag_ABI_VFP_args: VFP registers c Ct5m Tag_DIV_use: Not allowed HE2t0sAYX 采用的是Tag_ABI_VFP_args: VFP registers ,已经采用硬浮点了。 Z\)P|#L$ 软浮点交叉编译方法: ]HG>Og arm-linux-gcc -o teset_soft test.c 并且使用arm-linux-readelf -A test_soft查看,如下: ,zBc-Cm Attribute Section: aeabi WCI'Kh
File Attributes 8Tc:TaL Tag_CPU_name: "ARM10TDMI" " M&zW& Tag_CPU_arch: v5T W;,RU8\f Tag_ARM_ISA_use: Yes B=%YD"FAv Tag_THUMB_ISA_use: Thumb-1 b0/[+OY Tag_ABI_PCS_wchar_t: 4 K~8!Gh{h] Tag_ABI_FP_denormal: Needed <2+FE/3L Tag_ABI_FP_exceptions: Needed iW?NxP Tag_ABI_FP_number_model: IEEE 754 WMoRosL74 Tag_ABI_align_needed: 8-byte t 9.iWIr Tag_ABI_align_preserved: 8-byte, except leaf SP @oMl^UYM= Tag_ABI_enum_size: int (L<G=XC Tag_DIV_use: Not allowed F2=#\U$ 未使用VFP }-WuHh# 测试结果: @y# u!} 进行10亿次加减乘除运算,硬浮点时间为1分34.8 软浮点时间为4分19.7。 \'nE{
|