当前位置: 首页 > news >正文

内核驱动支持浮点数运算

       最近在调 iio 下的 ICM42686 驱动,因项目求需要在驱动对加速度和陀螺raw数据进行换算,避免不了浮点运算。内核编译时出现了报错,提示如下:

drivers/iio/imu/tdk_icm42686/icm42686.o: In function `gyro_data2float':
/home/share/work/camera/rv1126-atk/kernel/drivers/iio/imu/tdk_icm42686/icm42686.c:131: undefined reference to `__aeabi_i2f'
drivers/iio/imu/tdk_icm42686/icm42686.o: In function icm42686_accel_data_gravity':
/home/share/work/camera/rv1126-atk/kernel/drivers/iio/imu/tdk_icm42686/icm42686.c:160: undefined reference to `__aeabi_fmul'
drivers/iio/imu/tdk_icm42686/icm42686.o: In function `gyro_data2float':
/home/share/work/camera/rv1126-atk/kernel/drivers/iio/imu/tdk_icm42686/icm42686.c:131: undefined reference to `__aeabi_i2f'
drivers/iio/imu/tdk_icm42686/icm42686.o: In function icm42686_gyro_data_gravity':
/home/share/work/camera/rv1126-atk/kernel/drivers/iio/imu/tdk_icm42686/icm42686.c:187: undefined reference to `__aeabi_fdiv'

      四个报错中涉及到代码中的整型转浮点数和浮点数除法,一看便知是浮点数的运算问题。内核默认是开了VFP 浮点运算的,但针对ICM42686的驱动仍然需要指定浮点数支持,通过修改ICM42686同层目录中的Makefile,修改如下:       

#
# Makefile for TDK ICM42686 IMU
#

ccflags-y += -mfloat-abi=softfp

obj-$(CONFIG_ICM42686_SPI) += icm42686.o

即增加了 ccflags-y += -mfloat-abi=softfp 这一行,编译通过。

稍微解释一下:

ccflags-y、asflags-y、ldflags-y

分别对应编译、汇编、链接时的参数。

obj-y、 obj-m、 lib-y

分别是驱动编译进内核、驱动作为模块编译、定义哪些文件被编成库文件。

http://www.lryc.cn/news/68574.html

相关文章:

  • Flink学习(一)
  • linux 常用命令awk
  • MySQL学习---15、流程控制、游标
  • 信息调查的观念
  • leetcode 337. 打家劫舍 III
  • 基于Docker的深度学习环境NVIDIA和CUDA部署以及WSL和linux镜像问题
  • c#中slice,substr,substring区别
  • java语言里redis在项目中使用场景,每个场景的样例代码
  • Mongo集合操作
  • ConvTranspose2d 的简单例子理解
  • 酒精和肠内外健康:有帮助还是有害?
  • SylixOS Shell下操作环境变量方法
  • 【dfs解决分组问题-两道例题——供佬学会!】(A元素是放在已经存在的组别中,还是再创建一个更好?--小孩子才做选择,dfs直接两种情况都试试)
  • 使用Hexo在Github上搭建个人博客
  • 【面试题】面试官:说说你对 CSS 盒模型的理解
  • 【ROS2】学习笔记
  • Springboot +Flowable,流程表单应用之外置表单(JSON形式)(二)
  • JavaScript如何使用if语句
  • XSS攻击以及java应对措施
  • yolo 训练
  • 谷歌chrome浏览器升级新版后字体显示不清楚解决方案
  • 在外包干了三年,我废了……不吹不黑!
  • 【Vue】学习笔记-消息的订阅与发布
  • 大疆无人机 MobileSDK(遥控器/手机端)开发 v5版<1>
  • azkaban介绍
  • 自学黑客(网络安全)必学内容
  • Java每日一练(20230518) 移除元素、跳跃游戏II、复原IP地址
  • diff命令和vimdiff命令
  • AcWing 797.差分(C++)
  • Python每日一练(20230515) 只出现一次的数字 I\II\III