查看: 1782|回复: 0

[评测分享] 【飞凌iMX6uLL开发板评测】硬件浮点运算评测(四)

[复制链接]
  • TA的每日心情
    郁闷
    2022-7-13 08:02
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    发表于 2022-7-4 08:28:09 | 显示全部楼层 |阅读模式
    分享到:
    平时做浮点运算的开发时都是用的软浮点数(dsp的硬浮点数运算不熟悉没有接触过),特别是现场情况要求实时性高的话,软浮点运算的缺陷就会放大。看到飞凌的这款iMX6ULL本身带有FPU,支持VFPv4-D32。非常想评测下这个功能,下面就是我的评测过程。
    首先Ubuntu开发环境中设置环境变量,详细的命令如下。/opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
    当配置好环境变量后,如何知道是否使用硬浮点运算呢?按照飞凌提供的文档说明,使用命令arm-poky-linux-gnueabi-readelf -A test 就可以查看,如附件,这里只是简单说明一下,就是如果在执行前面这条指令后发现输出内容里有Tag_ABI_VFP_args: VFP registers ,就已经表明采用硬浮点了。
    然后,编译要调试的程序,我的是test.c程序。命令如下:
    root@ubuntu:/home/forlinx/work# $CC -g test.c -o test
    贴上实验的代码:
    #include <stdio.h>
    int main()
    {        float a = 0.3f, b=1.0f;  
            long i;
            for(i=0;i <1000000000;i++)
            {
                    a = a*b;
                    a = a/b;
                    a = a+b;
                    a = a-b;
            }
            printf("success ok\n");       
            printf("%f\n", a * b);
        return 0;
    }
    将生成后的test通过u盘拷贝到开发板根目录下,见附件显示。
    注意:这段程序要求进行10亿次加减乘除运算(对软浮点运算的话够你打个盹的时间了~~)。
    然后在开发板启动test程序,命令及结果如下(附件有截图):
    root@fl-imx6ull:/run/media/mmcblk1p1# ./test
    success ok
    0.300000
    通过多次执行程序,统计后的输出结果的运算时间为13
    这样的评测结果还是满意的,毕竟它的运行速度最高才800Mhz。在一些智能工业控制领域应用这个功能是可行的。
    最后附上开发环境调试的过程,如附件通过调试命令能显示硬浮点运算。由于时间关系,更多的调试就不分享了,如果大家在调试过程遇到问题,欢迎留言。
    程序拷贝到开发板目录下.jpg

    硬浮点设置.jpg
    运算成功.jpg


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2025-1-12 06:53 , Processed in 0.125921 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.