
驱动
文章平均质量分 75
月如风清
这个作者很懒,什么都没留下…
展开
-
内核模块读写文件
在移植南方硅谷的WiFi模块时需要自定义修改MAC的地址,采用在加载模块的时候读取外部文件的方式去修改MAC地址,这就涉及到在内核层去读写文件操作。主要用到了filp_open()、filp_close()、vfs_read()、vfs_write()这几个函数,这些函数在linux/fs.h文件中定义。函数介绍1.filp_open函数原型如下:struct file *filp_open(const char *filename, int flags, umode_t mode);参数说明:原创 2021-05-18 22:58:15 · 1111 阅读 · 0 评论 -
LInux内核定时器
简介时间是继内存之后常用的资源之一。它用于执行几乎所有的事情:延迟工作、睡眠、调度、超时以及许多其他任务。时间有两类。内核使用绝对时间来了解具体时间,也就是一天的日期和时间,而相对时间则被内核调度程序使用。对于绝对时间,有一个称为实时时钟(RTC)的硬件芯片。为了处理相对时间,内核依赖于被称作定时器的 CPU 功能(外设),从内核的角度来看,它被称为内核定时器。内核定时器分为两种:1.标准定时器或系统定时器2.高精度定时器...原创 2021-04-04 20:49:40 · 767 阅读 · 0 评论 -
Linux控制GPIO
接到个小的需求,按开机键3s后机器开机,要实现这样的功能就需要某个GPIO输出高电平或者低电平去支持硬件电路的实现。所以,就总结下在Linux平台怎么去控制GPIO。控制GPIO可分为在内核态和用户态控制,在内核态可以写个驱动或者直接在uboot里直接控制。在用户态控制就比较简单,可以通过sysfs子系统控制GPIO,在/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction原创 2021-03-10 15:24:58 · 2310 阅读 · 0 评论 -
Linux内核线程
内核线程在写一个简单的驱动时需要另开一个线程,使用了内核提供的函数kthread_create。该函数包含在linux/kthread.h文件kthread_create原型struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), void *data,原创 2021-03-10 13:59:56 · 162 阅读 · 0 评论