![](https://img-blog.csdnimg.cn/direct/0e99fab6334e4716a8932490eb2adf22.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux设备驱动开发
文章平均质量分 95
本专栏主要是学习Linux驱动程序开发相关内容,主要学习的是Linux设备驱动开发详解-基于最新的Linux4.0内核-宋宝华
孤独memories
从事嵌入式相关行业 一起学习 共同进步
点关注不迷路,内容持续更新
展开
-
Linux设备驱动中的并发控制
假设有一个链表,当然其中有数据,如果要修改其中的数据,自旋锁的思路就是排他性的去修改数据,而RCU的思路是,直接创建一个新的节点,然后原来的节点的内容复制到新节点上,再在新节点上修改数据,最后用新的节点去替代原来的节点,最后等待所有的CPU读完数据之后再去释放原来的节点。读写自旋锁方便的是读的操作,因为普通的自旋锁不关心是读还是写,一视同仁某一时刻只能允许一个执行单元对共享资源进行操作,而读写锁可以允许读的并发操作,但对写只能保持一个执行单元操作共享资源,当然读和写不能同时发生。原创 2024-01-30 23:14:03 · 1031 阅读 · 0 评论 -
Linux内核模块
Linux的内核模块本来就很大,我们添加或者删除某个其中一个模块时,又得重新编译整个模块,导致很多麻烦,那有没有一种机制是将现有的内核并不包含全部功能,当我们需要某个功能时,其对应的代码动态的被加载在内核中Linux就提供了这种机制叫做模块(module)查看内核模块:lsmod /proc/modules—————或者是lsmod /sys/module加载模块时:可以使用insmod或者modprobemodprobe比insmod更高级,加载模块时会同时加载这个模块所依赖的其他模块。原创 2024-01-28 21:51:06 · 1172 阅读 · 0 评论 -
字符设备驱动
字符设备驱动代码编写原创 2024-01-25 09:10:40 · 1034 阅读 · 0 评论 -
Linux文件系统与设备文件
字符设备和块设备体现了Linux中的一切皆文件的设计思想,驱动通过文件操作相关的系统调用和C库函数(本质也属于系统调用)被访问,其次驱动工程师在设备驱动中不可避免会与设备文件系统打交道,这也引出了我们需要掌握设备文件系统的相关知识。原创 2024-01-22 17:10:08 · 440 阅读 · 1 评论 -
Linux内核及内核编译
使用make menuconfig时,配置工具首先分析与体系结构对应的/arch/xxx/Kconfig文件,xxx为传入的ARCH参数,/arch/xxx/Kconfig文件中除本身包含一些与体系结构相关的配置项和配置菜单外,还通过source语句引入一系列Kconfig文件。如果需要几个并发执行的任务,可以启动内核线程,这些线程没有用户空间。内核空间和用户空间用来区分程序执行的两种不同的状态,他们使用不同的地址空间,Linux中只能通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。原创 2024-01-18 16:55:30 · 2807 阅读 · 1 评论 -
驱动设备概述和硬件基础
软件中主要要求的是高内聚,低耦合的设计要求由此可见,驱动成为了连接应用软件和硬件的桥梁。原创 2024-01-18 16:39:14 · 931 阅读 · 0 评论