RK3588平台开发系列讲解(驱动基础篇)设备驱动 IO 控制

news2024/11/25 13:31:17

请添加图片描述

平台 内核版本 安卓版本
RK3588 Linux 5.10 Android 12

文章目录

沉淀、分享、成长,让自己和他人都能有所收获!😄

📢本篇我们来讲的 ioctl 接口。

在内核 3.0 以前,ioctl 接口的名字叫 ioctl;内核 3.0 以后,ioctl 接口的名字叫 unlocked_ioctl。unlocked_ioctl就是 ioctl 接口,但是功能和对应的系统调用均没有发生变化。unlocked_ioctl 和 read/write 函数有什么异同呢?相同点:都可以往内核写数据。不同点:read 函数只能完成读的功能,write 只能完成写的功能。读取大数据的时候效率高。ioctl 既可以读也可以写,读取大数据的时候效率不高。

我们现在有了 ioctl 函数,内核已经把工作的任务给我们区分了,定义命令就不再使用 read 和 write 函数了,而是使用 ioctl 函数,因为 ioctl 函数的任务就是对我们的工作参数进行设置和查询,write 和 read 函数专注于数据传输。

在驱动程序里, io

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/599069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于深度学习的高精度血小板检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度血小板检测(红细胞RBC、白细胞WBC和血小板Platelet)识别系统可用于日常生活中或野外来检测与定位血小板目标,利用深度学习算法可实现图片、视频、摄像头等方式的血小板目标检测识别,另外支持…

程序设计综合实习(C语言):用指针优化学生成绩排名

一.目的 1.熟悉变量的指针和指向变量的的指针变量的概念和使用 2.熟悉数组的指针和指向数组的的指针变量的概念和使用 3. 掌握冒泡法或选择法排序的算法 4. 掌握函数的定义、调用、声明,以及参数的两种传递方式 二、实习环境 Visual Studio 2…

模拟集成电路设计-MOS器件物理基础(模集系列持续更新)

学习目的 欠缺的学习路径: 固体物理,半导体器件物理,器件模型,电路设计。所有的半导体器件都看成一个黑盒子,只关注端电压电流。 最佳的学习路径:两手抓,因为有些二阶效应会影响到电路本身. 本…

Vector-常用CAN工具 - 以太网工程更换环境无法打开解决

通常来说每个VN5000都有自己本身的以太网硬件网络配置,因此当我们打开别人的以太网CANoe工程或CANape工程的时候,无法进行正常的功能使用或者log的无法正常的显示,那我们该如何处理呢?这种情况常见的有以下2种可能: 1、…

数据的表示与运算

目录 一、进位计数制 二、信息编码 三、定点数数据表示 四、校验码 五、定点数补码加减运算 六、标志位的生成 七、定点数的移位运算 八、定点数的乘除运算 九、浮点数的表示 十、浮点数的运算 一、进位计数制 整数部分: 二进制、八进制、十六进制 --…

机器人模型预测控制MPC(model predictive control)

当前控制动作是在每一个采样瞬间通过求解一个有限时域开环最优控制问题而获得。过程的当前状态作为最优控制问题的初始状态,解得的最优控制序列只实施第一个控制作用。这是它与那些使用预先计算控制律的算法的最大不同。本质上模型预测控制求解一个开环最优控制问题…

使用APIPOST 进行压力测试

使用APIPOST 进行压力测试 目录概述需求: 设计思路实现思路分析1.apipost 压力测试 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for c…

​【指针和数组区别与理解】超万字

指针和数组的关系 指针指的是指针变量,不是数组,指针变量的大小是4/8个字节,是专门来存放地址的。数组也不是指针,数组是一块连续的空间,存放一组相同类型的数据的。 没有关系,但是它们之间有比较相似的地方…

代理模式的学习与使用

1、代理模式的学习 代理模式是一种结构型设计模式,它允许你提供一个代理对象,该对象可以控制对其他对象的访问。代理模式通过在代理对象和实际对象之间添加一个中间层,使得代理对象可以代表实际对象执行某些操作,从而实现对实际对…

ARM-系统移植(开发环境搭建)

基于STM32MP157单片机 一、安装tftp服务器 首先保证ubuntu连接网络成功 1. 安装步骤 作用:完成ubuntu和开发板之间传输文件 1)安装tftp服务器的安装包 sudo apt-get install tftpd-hpa tftp-hpa tftpd-hpa : 服务器端 tftp-hpa : 客户端 2&#x…

Docker Desktop 如何运行容器

第一次使用windows环境下的DockerDesktop记录下使用方法 1、配置镜像源,虽然配置了镜像源,但是在界面你还是搜索不到镜像,应该默认使用的是官方dockerhub的原因,后面可以手动创建避开这个问题。 2、运行系统的windows powershell…

使用yolov5实现图像识别

文章目录 开始之前下载依赖下载数据集标记数据集整理文件新建 yaml 文件开始训练模型选择训练完成使用模型进行识别自定义模型下载数据集下载地址分享问题 开始之前 你应当先克隆这个仓库 git clone https://github.com/ultralytics/yolov5 # clone下载完毕后,进入…

【轻量化网络系列(5)】ShuffleNetV2论文超详细解读(翻译 +学习笔记+代码实现)

前言 今天我们要讲的是ShuffleNetV2,它是由旷视科技团队在 2018 年提出的,原论文发表在ECCV上。在同等复杂度下,ShuffleNetV2比ShuffleNet和MobileNetv2更准确。这篇论文除了提出这个全新的轻量化网络结构以外,还创新性地提出四…

redis第二章-第二课-主从模式和哨兵模式原理

主从模式 1、复制一份redis.conf,命名为redis-6380.conf文件 2、修改该文件,修改端口号,线程文件,日志文件,以及指定文件存放目录 3.在从节点上配置,这是核心配置 从本机6379的redis实例复制数据 replica…

如何准备一场面试

目录 一、心理准备1、内心的答案2、表述的答案 二、简历准备三、知识准备&面试流程1、一面:技术面2、二面:BOSS面3、终面:HR面 四、面试的技巧有哪些1、自信2、真诚3、主动4、复盘 五、补充:其他面试内容1、逻辑思维2、技术开…

圆柱点云展开为平面点云

文章目录 简单计算图示目标:将圆柱点云展开为平面点云用途(目前想到的)思路:本文展开思路关键点 简单计算图示 目标:将圆柱点云展开为平面点云 注意:工业实际场景中只能获取可见区域的圆柱侧面&#xff0c…

CC2530+ESP8266与手机APP通信

一、案例介绍 下面是一个基于CC2530和ESP8266的项目示例,演示了如何使用CC2530与ESP8266通信以及使用AT指令控制其WiFi模块设置和数据传输。 项目概述: 通过CC2530控制ESP8266将其配置成AP+TCP服务器模式,并通过手机APP连接到TCP服务器并完成数据传输。ESP8266将作为一个热…

基于Nginx部署的LNMP及搭建论坛

文章目录 1.部署LNMPLNMP架构拓扑图1.安装Nginx服务😊2.安装MySQL服务🤣3.安装配置PHP解析环境😂 2.部署Discuz社区论坛Web应用3. 部署WordPress社区论坛Web应用4. fpm参数优化 1.部署LNMP LNMP架构拓扑图 1.安装Nginx服务😊 ##…

DPDK相关开源代码汇总

上篇《DPDK相关学习资料汇总》中,我们讲了学习DPDK的相关资料,今天我们来讲一下DPDK相关的开源代码。 1、suricata Suricata引擎能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理。是一款开源、快速、高度稳定的网络入…

【Python wxPython】零基础也能轻松掌握的学习路线与参考资料

wxPython是一个基于wxWidgets C类库的Python GUI框架,使用它可以轻松创建跨平台的可视化应用程序。此外,wxPython与Python语言天然融合,让Python程序员可以轻松使用Python编写图形界面程序。因此,学习wxPython实际上就是学习如何用…