__Driver
文章平均质量分 75
Driver
Javier-Huang
欢迎来到Javier-Huang的Linux技术分享站
展开
-
Linux驱动 | 浅谈 Per-CPU 变量在统计网络收发报文的应用
为何要引入 Per-CPU 变量(1)spin_lock 空转 CPU在内核开发中,为了实现临界资源的互斥,我们常常直接使用 spin_lock,来实现临界区的保护,但是 spin_lock 实际上是一种忙等待锁。当锁不可用时,CPU会空转来等待资源可用。(2)当锁的数量达到上千个时,并发容易死锁当内核要维护的锁的数量急剧增加,由于锁争用的存在,并发情况下,spin_lock 进入死锁的概率会变高。Per-CPU 变量的原理Per-CPU变量,顾名思义,就是将某个变量,将其分 n 份存储在对应的原创 2022-01-15 00:45:33 · 504 阅读 · 0 评论 -
Linux驱动 | 调试宏和多平台兼容的Makefile
调试宏将头文件driver.h包含到驱动文件中。drvier.h#ifndef __SCULL_H__#define __SCULL_H__#ifdef EN_DRIVER_DEBUG #ifdef __KERNEL__ //处于内核空间 #define PDEBUG(fmt,args...) printk(KERN_DEBUG fmt,##args) #else //处于用户空间 #define PDEBUG(fmt,args..原创 2021-08-01 16:31:47 · 226 阅读 · 0 评论 -
Linux驱动 | Linux中断下半部机制
1、Linux中断Linux中断分为两部分:上半部和下半部,上半部完成紧急且能很快完成的任务,下半部完成不紧急且比较耗时的任务。1.1、特征1,上半部和下半部都处于中断上下文中,不能调用任何可能调度的函数(意味着不能睡眠)。2,下部分的执行必须保证其原子性。硬件中断发生时,内核禁止了抢占,中断上半部被执行。上半部执行完成后,在执行下部分前,重新启用了中断,意味着在下部分执行时,可以被新的硬件中断抢占,意味着需要对中断上半部与下半部的涉及的共享资源加锁。3,实现下半部的机制:tasket和工作队列原创 2020-05-08 19:25:14 · 513 阅读 · 0 评论 -
Linux驱动 | Linux GPIO中断(代码实操,架构mips平台mt7688)
Linux中断原理Linux内核中每个中断irq对应一个struct irq_dest结构体(注意:这里的irq是内核内部irq,不是硬件irq),每个struct irq_desc包含一条struct irqaction链表。struct irq_desc { ...... struct irqaction *action; /* IRQ action list ...原创 2020-05-06 23:43:22 · 1247 阅读 · 0 评论 -
Linux驱动 | Linux高分辨率定时器hrtimer(实操代码编写)
本文主要说明hrtimer相关知识点,编写实实在在的驱动来验证。原创 2020-05-02 18:22:38 · 1130 阅读 · 0 评论 -
Linux驱动 | Linux低分辨率定时器timer(实操代码编写)
本文讲解Linux低分辨率定时器的用法,最后一个实例做验证。原创 2020-05-01 13:07:39 · 381 阅读 · 0 评论