导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    f1c200s tina 驱动里面加了几行炸了 ...

    其它全志芯片讨论区
    2
    3
    1443
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • U
      ubuntu LV 7 最后由 编辑

                      x = (int)(((float)x/235.00)*400);
                      y = (int)(((float)y/316.00)*240);
      
        CC      init/version.o
        LD      init/built-in.o
      drivers/built-in.o: In function `edt_ft5x06_ts_isr':
      clk-sun3iw1.c:(.text+0xe1cc4): undefined reference to `__aeabi_i2f'
      clk-sun3iw1.c:(.text+0xe1cc8): undefined reference to `__aeabi_f2d'
      clk-sun3iw1.c:(.text+0xe1cd4): undefined reference to `__aeabi_ddiv'
      clk-sun3iw1.c:(.text+0xe1ce0): undefined reference to `__aeabi_dmul'
      clk-sun3iw1.c:(.text+0xe1cfc): undefined reference to `__aeabi_i2f'
      clk-sun3iw1.c:(.text+0xe1d00): undefined reference to `__aeabi_f2d'
      clk-sun3iw1.c:(.text+0xe1d0c): undefined reference to `__aeabi_ddiv'
      clk-sun3iw1.c:(.text+0xe1d18): undefined reference to `__aeabi_dmul'
      clk-sun3iw1.c:(.text+0xe1d2c): undefined reference to `__aeabi_d2iz'
      clk-sun3iw1.c:(.text+0xe1d4c): undefined reference to `__aeabi_d2iz'
      Makefile:783: recipe for target 'vmlinux' failed
      
      U 1 条回复 最后回复 回复 引用 分享 0
      • U
        uuuuid LV 6 最后由 whycan 编辑

        https://blog.csdn.net/weixin_44019461/article/details/124433194

        Linux内核空间无法调用C库函数并且禁用FPU,可以放弃了。

        原因:内核这么设计有利于上下文切换和调度。
        解决方法
        尝试过手动实现某些三角函数到我的文件中。发现只要涉及浮点数,虽然编译时不会error,但有一些warning如下:

          MODPOST 1 modules
        WARNING: "__aeabi_f2d" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fcmplt" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fmul" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fdiv" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_f2iz" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fcmple" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fcmpge" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fsub" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_d2f" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_dmul" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_i2f" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fcmpgt" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        WARNING: "__aeabi_fadd" [/work/coding/1_diy/22_dts_i2c_mpu6050/mpu6050.ko] undefined!
        

        原因是:当前使用Linux内核版本不支持ARM平台的相关运算,相同的内核代码在X86平台是没有问题的。

        1 条回复 最后回复 回复 引用 分享 0
        • U
          uuuuid LV 6 @ubuntu 最后由 编辑

          @ubuntu

          https://github.com/OP-TEE/optee_os/blob/master/lib/libutils/isoc/arch/arm/arm32_aeabi_softfloat.c

          自己加吧

          1 条回复 最后回复 回复 引用 分享 0
          • 1 / 1
          • First post
            Last post

          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

          行为准则 | 用户协议 | 隐私权政策