字符设备驱动模块 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这个中断是写入了内核程序,所以内核也就是操作系统一直都跑,只要按键按下,触发下降沿,就会在命令框中出现你的中断程序结果

按下按键,触发下降沿

相关推荐
李小白杂货铺4 小时前
网络测速脚本(MacOS和Linux平台可用)
linux·macos·脚本·curl·ping·网络测速·网络测速脚本
REDcker4 小时前
libevent、libev 与 libuv:对比、演进与实现原理
linux·c++·后端·编程·c·高并发·服务端
123过去4 小时前
impacket-mssqlclient使用教程
linux·测试工具·安全
Chase_______4 小时前
【Linux精讲|第1章】Vi 编辑器核心三模式——命令、插入、尾行全解析
linux·运维·编辑器
jinanwuhuaguo4 小时前
OpenClaw v2026.3.22-beta.1 深度技术分析报告:从单智能体操作系统到多智能体协作平台的范式跃迁
运维·人工智能·语言模型·自然语言处理·visual studio code·openclaw
阿虎儿4 小时前
实战教程:使用 Docker 五分钟搭建高性能异地组网 (WireGuard Easy)
运维
大虾别跑4 小时前
麒麟v10搭建rsync
linux·运维·服务器
自动化智库4 小时前
西门子XB208网管型交换机使用方法
运维·服务器·网络
桌面运维家4 小时前
Nginx+Keepalived:Linux高可用负载均衡配置实战
linux·nginx·负载均衡
lbb 小魔仙4 小时前
Portainer 实战:可视化管理 Docker并实现外网访问
运维·docker·容器