Linux驱动
文章平均质量分 82
Soky.
C语言嵌入式开发,一个大学专业与写代码基本毫无关系的程序员。
展开
-
【Linux驱动篇】LCD背光驱动分析
Linux液晶背光驱动控制原创 2023-07-23 13:35:44 · 4336 阅读 · 0 评论 -
【Linux驱动篇】同步机制(3)—信号量
信号量同互斥锁类似,也是Linux操作系统中典型的同步手段,信号量的值可以是0、1或者n。①当值为0时,代表没有可获得的信号量,当前进程则会进入睡眠状态,排入信号量的等待队列,直到有进程释放信号量,②当值大于0时,代表有多余的信号量,此时进程成功获取信号量,不会进入睡眠状态。原创 2023-04-14 11:41:50 · 2157 阅读 · 0 评论 -
【Linux驱动篇】4.19内核移植logcat
讲述linux4.x内核如何在驱动层和应用层移植logcat原创 2022-12-10 13:28:58 · 3219 阅读 · 0 评论 -
【Linux驱动篇】同步机制(2)— 互斥锁
Linux驱动相关的简单笔记知识原创 2022-08-07 18:25:20 · 5285 阅读 · 0 评论 -
【Linux驱动篇】同步机制(1)— 自旋锁
一、概述 自旋锁是内核编程中常见的上锁方式。对于自旋锁spinlock_t,若A上锁后,B获取锁,此时B会在原地等待,不会释放CPU,直到A释放互斥锁,B才能获得锁。二、自旋锁 自旋锁属于忙等待的方式,所以适用于临界区耗时很短的情况。自旋锁主要针对SMP(对称多处理器)或单CPU但内核可抢占的情况,对于单CPU和内核不支持抢占的系统,自旋锁退化为空操作。//定义自旋锁spinlock_t lock;//初始化自旋锁spin_lock_init(&lock);//获得自旋锁s原创 2022-01-20 23:54:03 · 7388 阅读 · 0 评论 -
【Linux驱动篇】长延时、短延时和睡眠延时
一、长延时msecs_to_jiffies(msec); //将毫秒数转换为jiffies数timer_before(a, b);timer_after(b, a);二、短延时udelay(unsigned long usecs);ndelay(unsigned long nsecs);mdelay(unsigned long msecs);以上三个都是忙等待,类似于while(time){time–;}会一直占用CPU,所以对于毫秒级mdelay函数不建议使用,转而使用msleep函数原创 2022-01-19 00:04:37 · 6628 阅读 · 0 评论 -
【Linux驱动篇】内核中断的四种实现机制
一、中断 中断分为上半部和底半部。上半部也就是硬中断,软中断只是底半部的一种实现机制 上半部主要处理有严格时限的工作,比如读取寄存的中断状态,清除中断标志,将底半部处理程序挂到底半部的执行队列中去底半部执行大部分耗时的工作,并且可以被其他中断打断 1、硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程) 2、软中断是一组静原创 2022-01-16 15:27:20 · 11407 阅读 · 0 评论