网站建设岗位能力,免费企业网站开源系统,阿里巴巴官网首页方块鱼饵,简约个人博客html代码最近在调 iio 下的 ICM42686 驱动#xff0c;因项目求需要在驱动对加速度和陀螺raw数据进行换算#xff0c;避免不了浮点运算。内核编译时出现了报错#xff0c;提示如下#xff1a;
drivers/iio/imu/tdk_icm42686/icm42686.o: In function gyro_data2float: /home/share/… 最近在调 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-abisoftfp
obj-$(CONFIG_ICM42686_SPI) icm42686.o
即增加了 ccflags-y -mfloat-abisoftfp 这一行编译通过。 稍微解释一下
ccflags-y、asflags-y、ldflags-y
分别对应编译、汇编、链接时的参数。 obj-y、 obj-m、 lib-y
分别是驱动编译进内核、驱动作为模块编译、定义哪些文件被编成库文件。