Linux驱动
主要介绍驱动部分的内容
weixin_46097899
这个作者很懒,什么都没留下…
展开
-
mmap接口
应用层: 所需头文件:#include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); 功能:物理地址映射 参数: @addr NULL ,让内核选择一块可用的物理空间,进行映射 @length 映射的内存空间大小 @...原创 2020-03-14 19:02:31 · 310 阅读 · 0 评论 -
字符设备驱动简化框架和misc杂项设备
一、字符设备驱动简化框架 1.分配设备号 2.分配cdev结构体 3.初始化cdev结构体 4.添加cdev到内核 int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops) 功能:注册字符设备 参数: @major 主设备号 @name ...原创 2020-03-10 19:44:12 · 132 阅读 · 0 评论 -
定时器
内核定时器:定时触发定时器中断,执行定时器中断处理函数 头文件:<linux/timer.h> 定时器数据类型: struct timer_list { unsigned long expires; //定时器计数时间值 void (*function)(unsigned long); //定时器处理函数 unsigned long data; //私...原创 2020-03-09 13:09:38 · 107 阅读 · 0 评论 -
同步互斥机制及自旋锁、互斥体
一、同步互斥机制 应用场景:多线程的时候 线程和进程的区别:进程是拥有资源的最小单位,线程是参与调度的最小单位。 执行单元:进程、线程、SMP(对称多处理器) 资源:软件资源或者是硬件资源 并发:多个执行单元同时被执行。 竞态:多个执行单元同时被执行,处理的是同一个资源,就会导致竞态。 临界区:对资源进程操作的代码区 临界资源:可能会被多个执行单元同时访问并操作的资源 导致竞态原因: ...原创 2020-02-27 13:37:03 · 1356 阅读 · 1 评论