|
i.MX 6UltraLite(简称为i.MX 6UL)是i.MX6系列的新产品。i.MX 6UltraLite采用单核ARM Cortex-A7,处理器主频528MHz,采用NEON技术加速多媒体和信号处理算法,具有浮点运算单元。适合于物联网,电子支付,智能家居,能源管理等领域。 N-%#\rPq. 如何在i.MX6UL平台上实现硬浮点与软浮点? h8.FX-0& = 本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板(产品详情:www.forlinx.com/69.htm),其它板卡请酌情参考使用,具体实现操作步骤如下: ML=z<u+ 硬浮点交叉编译方法为 {D,RU8& arm-linux-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -o test test.c $?f]ZyZr. 加入编译参数 -mfloat-abi=hard,并且使用arm-linux-readelf -A test查看,如下: Z,aGtJ.a'9 Attribute Section: aeabi rPO}6lsc File Attributes |-61(X. Tag_CPU_name: "7-A" 7$_
:sJ Tag_CPU_arch: v7 a))*F!}c Tag_CPU_arch_profile: Application 5i9Ub|!P Tag_ARM_ISA_use: Yes b:Dg}
Tag_THUMB_ISA_use: Thumb-2 s0!kwrBsp Tag_FP_arch: VFPv3 C #aFc01B Tag_Advanced_SIMD_arch: NEONv1 >'Hx1; Tag_ABI_PCS_wchar_t: 4 u[EK#% Tag_ABI_FP_denormal: Needed B_&^ER5j Tag_ABI_FP_exceptions: Needed ZNL5({lv Tag_ABI_FP_number_model: IEEE 754 }
07r Tag_ABI_align_needed: 8-byte iZC`z
} Tag_ABI_align_preserved: 8-byte, except leaf SP Q|//Z Tag_ABI_enum_size: int ImHU:iR[J- Tag_ABI_HardFP_use: SP and DP fIkT"? Tag_ABI_VFP_args: VFP registers OjATSmZ@@ Tag_DIV_use: Not allowed @C_ =* 采用的是Tag_ABI_VFP_args: VFP registers ,已经采用硬浮点了。 4J}3,+ 软浮点交叉编译方法: Q>%E`h arm-linux-gcc -o teset_soft test.c 并且使用arm-linux-readelf -A test_soft查看,如下: b1)\Zi Attribute Section: aeabi [*HiI= File Attributes OG}KqG!n Tag_CPU_name: "ARM10TDMI" 0WXVc Tag_CPU_arch: v5T ]_#SAhOR) Tag_ARM_ISA_use: Yes Yb9cW\lr Tag_THUMB_ISA_use: Thumb-1 iT$d;5_pU Tag_ABI_PCS_wchar_t: 4 ]-Lruq# Tag_ABI_FP_denormal: Needed 24X=5Aj Tag_ABI_FP_exceptions: Needed K?YEoz'y[ Tag_ABI_FP_number_model: IEEE 754 +{*)}[w{x Tag_ABI_align_needed: 8-byte Pz1G<eh#{g Tag_ABI_align_preserved: 8-byte, except leaf SP FfSI n3 Tag_ABI_enum_size: int acae=c|X Tag_DIV_use: Not allowed DKHM\yt 未使用VFP )Ga8`t" 测试结果: u\3ZIb 进行10亿次加减乘除运算,硬浮点时间为1分34.8 软浮点时间为4分19.7。 UM\}aq=,
|