马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
i.MX 6UltraLite(简称为i.MX 6UL)是i.MX6系列的新产品。i.MX 6UltraLite采用单核ARM Cortex-A7,处理器主频528MHz,采用NEON技术加速多媒体和信号处理算法,具有浮点运算单元。适合于物联网,电子支付,智能家居,能源管理等领域。
如何在i.MX6UL平台上实现硬浮点与软浮点?
本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板(产品详情:www.forlinx.com/69.htm),其它板卡请酌情参考使用,具体实现操作步骤如下: 硬浮点交叉编译方法为 arm-linux-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -o test test.c 加入编译参数 -mfloat-abi=hard,并且使用arm-linux-readelf -A test查看,如下: Attribute Section: aeabi 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 Tag_Advanced_SIMD_arch: NEONv1 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 Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_DIV_use: Not allowed 采用的是Tag_ABI_VFP_args: VFP registers ,已经采用硬浮点了。
软浮点交叉编译方法: arm-linux-gcc -o teset_soft test.c 并且使用arm-linux-readelf -A test_soft查看,如下: Attribute Section: aeabi File Attributes Tag_CPU_name: "ARM10TDMI" Tag_CPU_arch: v5T 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 Tag_DIV_use: Not allowed 未使用VFP
测试结果: 进行10亿次加减乘除运算,硬浮点时间为1分34.8 软浮点时间为4分19.7。 |