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

按下按键,触发下降沿

相关推荐
遇印记3 分钟前
数据通信初步
运维·服务器·网络·windows·学习
学linux的QQ蛋4 分钟前
图解 Linux 驱动编译进内核的完整工作流程
linux·运维·服务器
承渊政道10 分钟前
Linux网络学习【UDP Socket编程实战:网络命令与客户端访问Linux验证】
linux·网络·学习·ubuntu·编程实战·udp socket
A-刘晨阳11 分钟前
GitLab + ArgoCD 实现 Kubernetes GitOps 自动化部署
运维·人工智能·git·kubernetes·自动化·云计算·argocd
print_Hyon19 分钟前
【ENSP】DHCP 基础实验(路由器作为 DHCP 服务器,接口地址池模式)
运维·服务器·智能路由器
程序员-Benothing27 分钟前
正则表达式详解:BRE、ERE、PCRE语法与实战案例
linux·运维·服务器
软件架构师-叶秋28 分钟前
V853方案之ubuntu开发环境搭建
linux·运维·服务器·全志·v853
yt004yt34 分钟前
园区绿岛 VOC 治理,能碳一体化系统设计思路分享
大数据·运维
lzx_00236 分钟前
Linux 开发工具(二) 简单认识一下编辑器 —— vim
linux·编辑器·vim
码士集团小青40 分钟前
美团Tabbit实测:免费用GPT-5.5和Claude Opus 4.8,浏览器Agent自动化到底能干什么
运维·gpt·自动化