当前位置: 首页 > 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

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

相关文章:

内核驱动支持浮点数运算

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

Flink学习(一)

分布式计算框架 Java可以使用分布式计算来处理大规模的数据和计算任务,提高计算效率和性能。以下是一些Java分布式计算的例子: Apache Hadoop:Hadoop是一个开源的分布式计算框架,可以处理大规模数据集的分布式存储和处理。它使用Java编写,可以在分布式环境中运行MapReduc…...

linux 常用命令awk

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 AWK用法 awk 用法:awk pattern {action} files 1.RS, ORS, F…...

MySQL学习---15、流程控制、游标

1、流程控制 解决复杂问题不可能是通过一个SQL语句完成,我们需要执行多个SQL操作。流程控制语句的作用就是控制存储过程中SQL语句的执行顺序,是我们完成复杂操作必不可少的一部分。只要是执行的程序,流程就分为三大类: 1、顺序结…...

信息调查的观念

每次做一件事前都要把这件事调查清楚,比如考一门科目我们要把和这门科目有关的资源都收集起来,然后把再从中筛选出有用的信息,如数值计算方法我们在考试前就可以把b站有关的学习资源网课或者前人总结的考试经验做个收集总结,做出对…...

leetcode 337. 打家劫舍 III

题目链接:leetcode 337 1.题目 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的…...

基于Docker的深度学习环境NVIDIA和CUDA部署以及WSL和linux镜像问题

基于Docker的深度学习环境部署 1. 什么是Docker?2. 深度学习环境的基本要求3. Docker的基本操作3.1 在Windows上安装Docker3.2 在Ubuntu上安装Docker3.3 拉取一个pytorch的镜像3.4 部署自己的项目3.5 导出配置好项目的新镜像 4. 分享新镜像4.1 将镜像导出为tar分享给…...

c#中slice,substr,substring区别

1. 都使用一个参数: //栗子数据 var arr [1,2,3,4,5,6,7], str "helloworld!"; //防止空格干扰,不用带空格的,注意这里有个!号也算一位 console.log(str.slice(1)); //elloworld! console.log(str.substring(1)); //…...

java语言里redis在项目中使用场景,每个场景的样例代码

Redis是一款高性能的NoSQL数据库,常被用于缓存、消息队列、计数器、分布式锁等场景。以下是50个Redis在项目中使用的场景以及对应的样例代码和详细说明: ##1、缓存:将查询结果缓存在Redis中,下次查询时直接从缓存中获取&#xff…...

Mongo集合操作

2、创建切换数据库 2.1 默认数据库 mongo数据库和其他类型的数据库一样,可以创建数据库,且可以创建多个数据库。 mongo数据库默认会有四个数据库,分别是 admin:主要存储MongoDB的用户、角色等信息 config:主要存储…...

ConvTranspose2d 的简单例子理解

文章目录 参考基础概念output_padding 简单例子: stride2step1step2step3 参考 逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions)nn.ConvTranspose2d的参数output_padding的作用torch.nn.ConvTranspose2d Explained 基础概念 逆卷…...

酒精和肠内外健康:有帮助还是有害?

谷禾健康 酒精与健康 饮酒作为一种特殊的文化形式,在我们国家有其独特的地位,在几千年的发展中,酒几乎渗透到日常生活、社会经济、文化活动之中。 据2018年发表的《中国饮酒人群适量饮酒状况》白皮书数据显示,中国饮酒人群高达6亿…...

SylixOS Shell下操作环境变量方法

系统启动后会在内核中生成一份默认的环境变量,环境变量名和默认值由源程序决定。系统启动后如果文件系统中存在有效的/etc/profile文件,则还会自动读取文件中的内容,并导入到Shell环境中,覆盖对应变量或增加新的变量。程序运行时&…...

【dfs解决分组问题-两道例题——供佬学会!】(A元素是放在已经存在的组别中,还是再创建一个更好?--小孩子才做选择,dfs直接两种情况都试试)

问题关键就是: 一个点,可能 新开一个组 比 放到已经存在的组 更划算 因为后面的数据,我们遍历之前的点时,并不知道 所以我们应该针对每个点,都应该做出一个选择就是 新开一个元组或者放到之前的元组中,都尝…...

使用Hexo在Github上搭建个人博客

使用Hexo在Github上搭建个人博客 1. 安装Node和git2. 安装Hexo3. Git与Github的准备工作4. 将Hexo部署到Github5. 开始写作 1. 安装Node和git 在Mac上安装Node.js可以使用Homebrew,使用以下命令安装: brew install node使用以下命令安装Git: …...

【面试题】面试官:说说你对 CSS 盒模型的理解

前言 CSS 盒模型是 CSS 基础的重点难点&#xff0c;因此常被面试官们拿来考察候选人对前端基础的掌握程度&#xff0c;这篇文章将对 CSS 盒模型知识点进行全面的梳理。 我们先看个例子&#xff1a;下面的 div 元素的总宽度是多少呢&#xff1f; js <!DOCTYPE html> &…...

【ROS2】学习笔记

1. 基础概念 1.1 执行单元 1.1.1 executable——执行程序 executable表示针对某个目标的程序执行流程&#xff0c;一个executable可以启动多个node&#xff1b; 1.1.2 node——“进程” node其实就是进程的意思&#xff1b; ROS2允许同时启动两个相同的node&#xff0c;&a…...

Springboot +Flowable,流程表单应用之外置表单(JSON形式)(二)

一.简介 整体上来说&#xff0c;我们可以将Flowable 的表单分为三种不同的类型&#xff1a; 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息&#xff0c;不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…...

JavaScript如何使用if语句

JavaScript的if语句可以让我们根据某些条件来执行不同的代码块。使用if语句的基本思路是将要执行的代码放在括号内&#xff0c;并使用if关键字进行匹配。下面是一些例子&#xff1a; 简单的if语句&#xff1a; let age 18; if (age > 18) { console.log("You are…...

XSS攻击以及java应对措施

文章目录 一. XSS攻击介绍1. 前端安全2. xss攻击简介3. xss的攻击方式 二. java应对xss攻击的解决方案1. 强制修改html敏感标签内容2. 利用过滤器过滤非法html标签 一. XSS攻击介绍 1. 前端安全 随着互联网的高速发展&#xff0c;信息安全问题已经成为企业最为关注的焦点之一…...

鲁班猫MIPI屏幕配置与触摸校准全攻略:从1080P切换到横屏显示的完整流程

1. 鲁班猫开发板与MIPI屏幕初体验 第一次拿到鲁班猫开发板时&#xff0c;我像大多数嵌入式开发者一样兴奋。这块基于RK3566芯片的小板子虽然体积不大&#xff0c;但性能足够强大&#xff0c;特别适合用来做各种嵌入式项目。不过当我准备连接MIPI屏幕时&#xff0c;发现默认配置…...

《数论探微:进阶版》(Arithmetic Tales: Advanced Edition)俗

一、核心问题及解决方案&#xff08;按踩坑频率排序&#xff09; 问题 1&#xff1a;误删他人持有锁——最基础也最易犯的漏洞 成因&#xff1a;释放锁时未做身份校验&#xff0c;直接执行 DEL 命令删除键。典型场景&#xff1a;服务 A 持有锁后&#xff0c;业务逻辑耗时超过锁…...

MedGemma 1.5医疗AI助手:基于Linux系统的部署与优化

MedGemma 1.5医疗AI助手&#xff1a;基于Linux系统的部署与优化 1. 引言 医疗AI正在改变传统的诊疗方式&#xff0c;但很多医疗机构面临数据隐私和网络安全的挑战。MedGemma 1.5作为谷歌开源的医疗多模态模型&#xff0c;提供了完全本地化部署的解决方案&#xff0c;让医院和…...

ComfyUI快速上手:无需代码,可视化节点设计AI绘画流程

ComfyUI快速上手&#xff1a;无需代码&#xff0c;可视化节点设计AI绘画流程 1. ComfyUI是什么&#xff1f; ComfyUI是一款革命性的AI绘画工具&#xff0c;它通过可视化节点工作流的方式&#xff0c;让没有编程基础的用户也能轻松设计复杂的AI图像生成流程。与传统的命令行工…...

让桌面随光而动:动态壁纸的终极解决方案

让桌面随光而动&#xff1a;动态壁纸的终极解决方案 【免费下载链接】dynamic-wallpaper A simple bash script to set wallpapers according to current time, using cron job scheduler. 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-wallpaper 厌倦了单调乏…...

Kylin V10系统下KVM虚拟化环境搭建与虚拟机快速部署指南

1. Kylin V10系统与KVM虚拟化基础 作为国产操作系统的代表&#xff0c;Kylin V10凭借其出色的稳定性和安全性&#xff0c;在政务、金融等领域得到广泛应用。我在多个企业级项目中实测发现&#xff0c;其x86架构下的KVM虚拟化性能表现优异&#xff0c;完全能满足生产环境需求。要…...

CD-HIT安装踩坑实录:从Conda到源码编译,哪种方式最适合你的Linux服务器?

CD-HIT安装踩坑实录&#xff1a;从Conda到源码编译&#xff0c;哪种方式最适合你的Linux服务器&#xff1f; 生物信息学工具CD-HIT作为序列去冗余的黄金标准&#xff0c;几乎出现在每篇涉及高通量测序分析的论文方法部分。但当你第一次在实验室服务器上尝试安装它时&#xff0c…...

告别关键词搜索!用GME多模态向量-Qwen2-VL-2B实现语义级查找

告别关键词搜索&#xff01;用GME多模态向量-Qwen2-VL-2B实现语义级查找 你有没有过这样的经历&#xff1f; 想找一张去年团队聚餐的照片&#xff0c;明明记得照片里有人举着蛋糕&#xff0c;背景是落地窗&#xff0c;但翻遍手机相册&#xff0c;输入“蛋糕”、“聚餐”、“团…...

S2-Pro入门Python编程:零基础到搭建第一个AI应用

S2-Pro入门Python编程&#xff1a;零基础到搭建第一个AI应用 1. 为什么选择S2-Pro学习Python 学习编程最难的不是语法本身&#xff0c;而是如何保持兴趣和看到实际效果。传统学习方式往往需要先花大量时间配置环境、安装软件&#xff0c;还没开始写代码就已经被各种报错劝退。…...

DeerFlow智能助手:法律条文解读与案例匹配的深度研究工作流搭建

DeerFlow智能助手&#xff1a;法律条文解读与案例匹配的深度研究工作流搭建 1. 引言&#xff1a;当法律研究遇上AI智能体 想象一下这个场景&#xff1a;你是一位法律从业者&#xff0c;面对一份新出台的法规或一个复杂的案件&#xff0c;需要快速理解条文背后的含义&#xff…...