查询到最新的12条

rmmod无法卸载驱动_从hello world到LED驱动

引言linux驱动是连接软件和硬件的一个中间介质,实现了对硬件的配置和控制。进一步将硬件抽象化,为软件操作硬件提供了简单的接口。不论硬件的具体形式如何,linux驱动都将其映射到一个文件,软件端对硬件的读写操作等都被抽象成文件操作了。本篇从hello world开始,简要介绍驱动的基本结构,然后再进一步介绍LED硬件的搭建,以及驱动的编写,设备树的修改。让大家对linux驱动有一个基本 继续阅读

又到「世界杯」(2022 FIFA World Cup)

作为一个纯纯的伪球迷每次世界杯都会凑凑份子,和朋友们喝点小酒边聊天边看球,买点足彩试试自己的运气。用着醉翁之意不在酒,在乎山水之间的情怀愉快的享受世界杯带来的欢乐。 昨天2022卡塔尔世界杯已经打响第一战,老俍是开幕式没赶上,第一战忘了看,赶紧扒了一下赛季时间表看看我喜欢的队伍(德国队)在哪天。说道喜欢的队伍,我特别庆幸第一我不喜欢足球,第二不是中国队的球迷。不出意外的中国队又可以坐在家里看世界杯了,稍微的为中国队的球迷感到一丝无奈。 继续阅读

ChatGPT已应用到跨境电商领域,规模化运营指日可待

最近各大平台都卷起了一股“ChatGPT”的热潮,论坛、贴吧、微博甚至短视频都对这个新兴的东西津津乐道,在这些评论区里我们可以发现,不管说什么职业,不管年龄性别,ChatGPT都开始被许多人关注。那么ChatGPT到底是个什么东西呢?据悉,ChatGPT是美国人工智能工作室OpenAI推出的人工智能技术驱动的自然语言处理工具。用简单的化来说,就是一个聊天机器人程序。据之前的媒体报道 继续阅读

字符设备驱动内部实现原理解析及分步注册流程和代码实例

一、字符设备驱动内部实现原理 用户层调用open函数时,内核层的sys_open()会根据用户层传递的文件路径参数找到该文件的文件信息结构体struct inode{},这个文件信息结构体存放的是该文件的相关信息,里面有一个成员是字符设备驱动结构体struct cdev{},这个字符设备驱动结构体struct cdev{}里面有一个操作方法结构体指针struct  file_openations,基于这个操作方法结构体指针s 继续阅读

my way是纯粹的no limit DIY

昨天开始在挣扎我到底要买什么,到底我喜欢的是没有限制的纯粹DIY,还是真的要弄个什么。结果,纯粹的DIY战胜了组装一个38灯的LED灯泡。所以,我今天买了50个草帽5mm白发白,1600-1800mcd,6块胶板,限流电阻等玩意,的确,PCB板能让事情变得很简单,但如果我能把万能的洞洞板搞熟练,那个境界才算真的高!不是信不过LED的电阻式驱动,但要弄个吃220V的灯泡,我觉得现在还不是时候。那玩意有点过于按部就班了。卖元件的地方通常不卖那种DIY的LED灯,卖LED灯的地方通常没有我 继续阅读

【分析笔记】全志平台 gpio_wdt 驱动应用和 stack crash 解决

使用说明 第一次遇到看门狗芯片是通过切换电平信号来喂狗,如 SGM706 芯片,之前也比较少会用到看门狗芯片。原本打算参考 sunxi-wdt.c 的框架,利用定时器自己写一个,无意中发现内核已经有 gpio_wdt.c 驱动程序,其原理也是通过内核定时器实现喂狗。因其使用了 of_get_gpio_flags() 接口获取 GPIO 信息,和 gpio-keys.c 驱动一样,该接口存在内存 继续阅读

Ubuntu无线网卡驱动安装方法

安装了Ubuntu后发现没有无线网络,搜索不到WiFi,但是正常情况下安装Ubuntu后,系统会自动安装无线网卡驱动,并且开机自动连接无线网。查了一下,原来我的网卡是非主流网卡,Ubuntu不会自动安装驱动。找到原因了,那就来解决吧!先连接有线。 2014年5月11号补充:此经验是我在使用ubuntu12.10时写的,现在ubuntu14.04发布了,在新的的版本里我发现虽然开机的的时候依然没有显示无线网,但并不用自己下驱动。只要设置一下就可以了。请看我的另一篇经验: 继续阅读

详解linux usb host驱动编写入门

usb协议是一个复杂的协议,目前涉及到的版本就有usb1.0, usb2.0, usb3.0。大家如果打开kernel usb host目录,就会发现下面包含了ohci,uhci,ehci,xhci,whci等多种形式的控制器驱动。那么,对于我们这些不是很了解usb的开发人员,如何了解usb的代码结构呢? 1、代码分布 drivers/usb目录下面,host目录包括了host驱动代码,core目录包含了主要的api接口代码,而其他目录则主要是device驱动 继续阅读

20230622作业:字符设备驱动内部实现原理及流程

1.1字符设备驱动内部实现原理        1>用户打开设备open("~/dev/mycdev",O_RDWR);("路径",打开方式)2>在内核的虚拟文件系统层会同步执行sys_open函数,实现如下操作3>根据open函数的路径,找到struct inode结构体4>在struct inode结构体中有设备号和一个共用体(联合体),结构体struct_cdev是共用体中的成员之一&#xf 继续阅读

ESP32设备驱动-MAX30102脉搏血氧饱和度和心率监测传感器驱动

MAX30102脉搏血氧饱和度和心率监测传感器驱动 文章目录 MAX30102脉搏血氧饱和度和心率监测传感器驱动1、MAX30102介绍2、硬件准备3、软件准备4、驱动实现 1、MAX30102介绍 MAX30102是一款集成脉搏血氧饱和度和心率监测生物传感器模块。 它包括内部 LED、光电探测器、光学元件和具有环境光抑制功能的低噪声电子设备。 MAX30102提供完整的系统解决方案,简化移动和可穿戴设备的设计流程。 MAX30102具有如下特性: LED 反射式解 继续阅读

字符设备驱动内部实现原理解析以及分步注册流程和代码示例

1、字符设备驱动内部实现原理解析 原理:用户层调用 open() 函数打开设备文件,用ls-i查看inode号并找到与之对应的struct inode 结构体。在struct inode 结构体中,可以找到与文件关联的 struct cdev 设备驱动结构体。设备驱动结构体中包含了文件操作方法结构体的指针。根据文件打开的模式,比如读取模式、写入模式等,内核会回调操作方法结构体中相应的函数,例如 open() 继续阅读