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

按下按键,触发下降沿

相关推荐
tntxia1 小时前
linux curl命令详解_curl详解
linux
扛枪的书生4 小时前
Linux 网络管理器用法速查
linux
SkyWalking中文站5 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
顺风尿一寸7 小时前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
雪梨酱QAQ9 小时前
Kubeneters HA Cluster部署
运维
江华森13 小时前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森13 小时前
Matplotlib 数据绘图基础入门
运维
XIAOHEZIcode13 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
江华森13 小时前
NumPy 数值计算基础入门
运维
唐青枫15 小时前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux