字符设备驱动模块 dev和misc

字符设备驱动模块

用户空间和内核空间数据拷贝:

copy_from_user(); 用户空间数据传给内核

copy_to_user(); 内核数据传给用户空间

动态和静态分别编译

设置Kconfig属性

编译内核文件(静态、动态内核文件)

启动动态驱动模块

查看动态驱动模块

注销模块

开源协议CPL 写入后第一次向内核动态模块时,就不会提示不认识的警告

修改全文统一字符串

_exit()和exit

exit()刷新缓冲区_exit()不刷新缓冲区,printf内容存在缓冲区,程序结束才打印内容

第二种设备驱动编写方法 ---杂项(混杂)设备驱动misc

代码部分与dev方式区别,misc_register 函数会自动添加节点,不再需要mknod /dev/led c 255 0

,其他与dev模型一样

irq中断写入内核

其他部分与标准misc程序相同,由于按下k1这个中断是写入了内核程序,所以内核也就是操作系统一直都跑,只要按键按下,触发下降沿,就会在命令框中出现你的中断程序结果

按下按键,触发下降沿

相关推荐
AOwhisky13 分钟前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算
Peace14 分钟前
【Prometheus】
linux·运维·prometheus
LZZ and MYY2 小时前
RTS 在windows和Linux之间ShareMem
linux·运维·服务器
aningx2 小时前
openSUSE Leap 16.0 运行 sunshine 报错的解决方法
linux
爱学习的徐徐2 小时前
Linux 基础IO
linux·服务器
蛋蛋的学习记录2 小时前
C#窗体应用中使用EasyModbusCore通讯
服务器·c#·tcp
zt1985q2 小时前
本地部署源代码管理解决方案 Bitbucket Data Center 并实现外部访问
运维·服务器·数据库·网络协议·postgresql·源代码管理
xiaobobo33302 小时前
面向对象:linux内核中函数转数据的用法
linux·面向对象·隔离·函数指针绑定
极客先躯2 小时前
高级java每日一道面试题-2026年01月18日-实战篇[Docker]-如何清理仓库中的旧镜像?
java·运维·docker·容器
姓刘的哦2 小时前
C++软件架构设计思路
linux