• 2024-07-26【瑞芯微RV1126(板端摄像头图像数据采集)】②使用v4l2视频设备驱动框架采集图像数据
    RV1126开发板:使用v4l2视频设备驱动框架采集图像数据前言一、按键二、LCD显示三、V4L2摄像头应用编程四、完整代码前言本系列的目的是,不仅仅将能够进行图片推理的模型部署于板端,还提供了两种摄像头数据采集的方法,集成到自己的深度学习推理代码之后,可以根据应用场景
  • 2024-07-16驱动 ioctl使用
     驱动程序部分创建一个简单的字符设备驱动程序。#include<linux/module.h>#include<linux/fs.h>#include<linux/uaccess.h>#include<linux/cdev.h>#include<linux/device.h>#defineDEVICE_NAME"mychardev"#defineCLASS_NAME"mycharclas
  • 2024-06-19mumu模拟器 adb shell 登录后执行命令 Inappropriate ioctl for device
    前言全局说明mumu模拟器adbshell登录后执行命令Inappropriateioctlfordevice一、说明二、问题执行任何命令,都提示:Inappropriateioctlfordevice三、解决方法方法一:执行过sudo或su重新登录方法二:退出,执行adbroot后再执行adbshell登录四、
  • 2024-06-17nl80211
    同wpa_supplicant、hostapd一样,nl80211也可以管理无线网络,不同的是wpa_supplicant和hostapd是通过nl80211管理无线网络。 Linux平台上目前常用的专门针对无线网络设备编程的API有两套最早的一套API由HP公司员工JeanTourrilhes于1997年开发,全称为LinuxWirelessExt
  • 2024-04-3016_ioctl接口
    ioctl接口structfile_operations{ ...... long(*unlocked_ioctl)(structfile*,unsignedint,unsignedlong); ......};1.什么是unlocked_ioctl接口?​unlocked_ioctl就是ioctl接口,但是功能和对应的系统调用均没有发生变化。2.unlocked_ioctl和read/write函
  • 2024-04-22OPTEE - CA和TA的交互
    optee整体架构如下图(图片来源:https://zhuanlan.zhihu.com/p/553611279)从以下示例代码中(tab:example-hello_world)我们可以看到,在CA(clientapplication)端调用teeclientAPI的流程如下:TEEC_InitializeContext()TEEC_OpenSession()TEEC_InvokeCommand()TEEC_CloseSessi
  • 2024-04-15Linux 64位内核(arm64)驱动兼容32位应用程序(armhf)的ioctl接口
    最近,公司来了一次硬件升级,开发平台从全志T3(armhf)升级到全志T527(arm64),平台迁移后,想直接使用原来动态库和应用程序从而减少开发量,用户态大部分接口都运行正常,唯独ioctl接口无法调用成功。如果要成功移植要做到以下几点:1.驱动要同时实现unlocked_ioctl和compat_ioctl。str
  • 2024-03-26V4L2 ioctl调用流程分析
    学习资料:韦东山第三期 可参考:https://www.cnblogs.com/lethe1203/p/18097351video_device->.fops->v4l2_file_operations->.ioctl_ops->v4l2_ioctl_opsv4l2_ioctl_ops可分为两类:INFO_FL_STD:标准的,无需特殊的代码来处理,APP的调用可以直达这些处理函数I
  • 2024-03-26V4L2应用程序开发(2)
    参考资料:韦东山第三期  V4L2获取数据的操作流程如下:打开设备ioctlVIDIOC_QUERYCAP:QueryCapbility,查询能力枚举格式、设置格式ioctlVIDIOC_REQBUFS:申请bufferioctlVIDIOC_QUERYBUF和mmap:查询buffer信息、映射ioctlVIDIOC_QBUF:把buffer放入"空闲链表"ioctlVIDIO
  • 2024-03-26V4L2应用程序开发(1)
    参考资料:韦东山第三期 v4l2应用程序开发分为两个部分,数据采集流程和控制流程两个部分 数据采集流程:分为空闲链表和完成链表 驱动程序周而复始地做如下事情:从硬件采集到数据把"空闲链表"取出buffer,把数据存入buffer把含有数据的buffer放入"完成链表"APP也会周而
  • 2024-01-14linux 驱动 --- unlocked_ioctl 与 compat_ioctl
    1、compat_ioctl:支持64bit的driver必须要实现的ioctl,当有32bit的userspaceapplicationcall64bitkernel的IOCTL的时候,这个callback会被调用到。如果没有实现compat_ioctl,那么32位的用户程序在64位的kernel上执行ioctl时会返回错误:Notatypewriter2、如果是64位的用户程序运行
  • 2024-01-09Linux下PCI设备驱动开发详解(八)
    Linux下PCI设备驱动开发详解(八)RIFFA的Linux驱动文件夹下有6个C源码文件,riffa_driver.c、riffa_driver.h、circ_queue.c、circ_queue.h、riffa.c、riffa.h。其中riffa.c和riffa.h不属于驱动源码,它们是系统函数调用驱动封装的一层接口,属于用户态应用程序的一部分。在讲解riffa之前,我
  • 2023-12-10ioctl基于接口 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/ioctl.htmlioctl基于接口ioctl()是应用程序与设备驱动程序进行接口交互的最常见方式。它灵活且易于通过添加新命令进行扩展,并且可以通过字符设备、块设备以及套接字和其他特殊文件描述符进行传递。然而,很容易错误地定义ioct
  • 2023-11-10tunctl1.5.1源代码分析
    fileaddress:https://files.cnblogs.com/files/blogs/773707/tunctl.zip?t=1699629591&download=truestrtol是C语言标准库中的一个函数,用于将字符串转换为长整型数(long)。longstrtol(constchar*str,char**endptr,intbase);str:要转换的字符串。endptr:指向字符指针
  • 2023-10-28使用Rust语言进行ioctl
    首先需要引入nix库官方crate地址为:https://crates.io/crates/nix在里面可以查看文档和版本信息。nix里面有个nix::sys::ioctl模块,类似于C标准库的ioctl.h,用来进行ioctl操作。使用方法:修改Cargo.toml[dependencies]nix="0.27"代码对应
  • 2023-10-23ubuntu 用V4L2采集图像经常卡死在VIDIOC_DQBUF ioctl(fd, VIDIOC_DQBUF, &buffer);
    ioctl(fd,VIDIOC_DQBUF,&buffer);我也遇到这样的问题,问老师解决了。原因:是虚拟机摄像头太慢了。解决方法:虚拟机》》设置》》硬件》》USB控制器》》连接USB兼容性改为USB3.1 
  • 2023-09-25通过IOCTL 进行内核态与用户态交互
     #include<linux/init.h>#include<linux/printk.h>#include<linux/module.h>#include<linux/miscdevice.h>#include<linux/fs.h>#include<asm/uaccess.h>/*=============================模块信息===========================
  • 2023-08-21字符设备驱动-13.ioctl命令详解
    1引入ioctl一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些需要细分的情境下,如果需要扩展新的功能增添命令,通常以增设ioctl()命令的方式实现。对于ioctl这个系统调用接口,Linux的创始人在2.0版本之前并没有进行添加,仅有write和read两个接口,但是后来发现当需要
  • 2023-07-30通用驱动i2c-dev分析
    参考资料:Linux驱动程序:drivers/i2c/i2c-dev.cI2C-Tools-4.2:https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/AT24cxx.pdf1.回顾字符设备驱动程序怎么编写字符设备驱动程序?确定主设备号创建file_operations结构体在里面填充drv_open/dr
  • 2023-07-03Framebuffer 应用编程中涉及的 API 函数
    论  坛:http://bbs.100ask.net/(学术答疑)公 众 号:百问科技版本日期作者说明V12020韦东山摘自《嵌入式Linux应用开发完全手册》本节程序的目的是:打开LCD设备节点,获取分辨率等参数,映射Framebuffer,最后实现描点函数。5.2.1open函数在Ubuntu中执行“man2open”,可以看到o
  • 2023-06-29驱动开发:应用DeviceIoContro模板精讲
    在笔者上一篇文章《驱动开发:应用DeviceIoContro开发模板》简单为大家介绍了如何使用DeviceIoContro模板快速创建一个驱动开发通信案例,但是该案例过于简单也无法独立加载运行,本章将继续延申这个知识点,通过封装一套标准通用模板来实现驱动通信中的常用传递方式,这其中包括了如何传递
  • 2023-06-01raw_prot
    {.type=SOCK_RAW,.protocol=IPPROTO_IP,/*wildcard*/.prot=&raw_prot,.ops=&inet_sockraw_ops,.flags=INET_PROTOSW_REUSE,}structprotoraw_prot={.name
  • 2023-02-27ioctl函数详解(Linux内核 )
    https://cloud.tencent.com/developer/article/2148753#:~:text=ioctl是设备驱动程序中设备控制接口函数,一个字符设备驱动通常会实现设备打开、关闭、读、写等功能,在一些
  • 2023-01-06ioctl(skfd, request, pwrq)
    /*------------------------------------------------------------------*//**WrappertoextractsomeWirelessParameteroutofthedriver*/staticinlinein
  • 2022-12-21[2] HEVD 学习笔记:栈溢出漏洞训练
    2.HEVD栈溢出漏洞训练2.1漏洞原理​ 当函数退出的时候,会将保存在栈中的返回地址取出,跳转到该地址继续执行,以此来执行函数调用以后的程序。而如果用户的输入没有得到控