![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动开发
5念since
最重要的事情只有一件,变强!
展开
-
函数指针的理解
#include <stdio.h>int add(int a, int b);int sub(int a, int b);int (*pfunc)(int a, int b);int add(int a, int b){ return a + b;}int sub(int a, int b){ return a - b;}int main(){ int a=1; int b = 2; int c; pfunc =原创 2021-05-05 20:31:20 · 176 阅读 · 0 评论 -
input子系统
Linux系统支持的输入设备繁多,例如键盘、鼠标、触摸屏、手柄或者是一些输入设备像体感输入等等,Linux系统是如何管理如此之多的不同类型、不同原理、不同的输入信息的输入设备的呢?其实就是通过input输入子系统这套软件体系来完成的。从整体上来说,input输入子系统分为3层:上层(输入事件处理层)、中层(输入核心层)、下层(输入设备驱动层)输入子系统设备驱动层而言,主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换为核心层定义的规范提交给事件处理层。即将底层的硬件输入转化为统一事件形式,想输原创 2021-05-05 16:49:08 · 505 阅读 · 2 评论 -
kernel函数timer_setup分析
参考文章:https://blog.csdn.net/tiantao2012/article/details/79324154原创 2021-02-03 10:16:51 · 917 阅读 · 0 评论 -
pinctrl子系统的使用
简介pinctrl子系统简介demo设备树pin配置 rg_otg_active: rg_otg_active{ mux { pins = "gpio4"; function = "gpio"; }; config { pins = "gpio4"; drive-strength = <2>; bias-disable; output-high; }; }; rg_otg_sleep: rg_otg_sleep{ mu原创 2020-12-13 19:43:44 · 200 阅读 · 0 评论 -
Linux目录结构
内核版本:include/ ---- 内核头文件,需要提供给外部模块(例如用户空间代码)使用。kernel/ ---- Linux内核的核心代码,包含了3.2小节所描述的进程调度子系统,以及和进程调度相关的模块。mm/ ---- 内存管理子系统(3.3小节)。fs/ ---- VFS子系统(3.4小节)。net/ ---- 不包括网络设备驱动的网络子系统(3.5小节)。ipc...原创 2020-04-06 22:57:56 · 123 阅读 · 0 评论 -
linux关机外围芯片未复位(高通平台)
问题场景linux内核版本:Linux version 4.14.117(查看内核版本信息命令 cat /proc/version)我们使用的充电ic,需要在关机流程中进行复位。在.remove中已经调用了复位充电IC的函数,为什么芯片没有复位?问题的排查与解决初步猜测关机并没有走remove的流程,验证猜想,在remove函数中增加打印,走关机流程,查看LOG信息,并未找到增加的打印L...原创 2020-04-03 10:40:52 · 297 阅读 · 0 评论 -
INIT_DELAYED_WORK()的分析及使用
应用场景在中断中处理太多的操作是非常危险的,对中断的及时响应有很大的影响,在linux中我们经常会用到INIT_DELAYED_WORK,来处理中断需要响应的操作。函数功能工作队列(work queue)是Linux内核中将操作延期执行的一种机制。INIT_DELAYED_WORK()是一个宏函数位置\kernel\include\linux\workqueue.h函数分析函数...原创 2020-03-23 21:18:17 · 12785 阅读 · 2 评论