自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux内核--wakeup_source机制流程简介

timer.cstatic void do_init_timer(struct timer_list *timer,void (*func)(struct timer_list *),unsigned int flags,const char *name, struct lock_class_key *key){timer->entry.pprev = NULL;timer->function = func;timer->flags = flags | raw_smp_pr

2021-02-02 09:08:50 3014

原创 Linux内核--wait_queue_head机制流程简介

core.cint default_wake_function(wait_queue_entry_t *curr, unsigned mode, int wake_flags,void *key){return try_to_wake_up(curr->private, mode, wake_flags, 1); // wake up a thread}EXPORT_SYMBOL(default_wake_function);wait.h/*A single wait-queue

2021-02-02 09:04:50 614

原创 resume时,概率性读写设备通讯错误debug方法

1: 在设备sleep之后,如tp,会低概率出现触发中断函数之后,读ic寄存器失败,可能会导致黑屏死机。因为总线(如i2c, spi…)没及时醒来,而中断优先级比较高,导致喂狗超时。为了解决这个问题,可在系统sleep/wake up时置位flag,待bus ready之后,再做通信。我称为间接法。1.1:pm.h/**struct dev_pm_ops - device PM callbacks.*…@suspend: Executed before putting the system

2021-02-02 09:03:57 369

原创 内核completion工作机制

core.cint default_wake_function(wait_queue_entry_t *curr, unsigned mode, int wake_flags,void *key){return try_to_wake_up(curr->private, mode, wake_flags, 1); // wake up a thread}EXPORT_SYMBOL(default_wake_function);wait.h/*A single wait-queue

2021-01-04 14:59:57 520

原创 TouchPanel--Qcom DRM休眠唤醒通知链的注册及回调流程

移动设备的休眠唤醒功能,为了省电而生,当然,你也可以在休眠的时候做一些差异化的功能。下面就介绍如何在高通平台中根据显示屏的状态,修改设备的工作状态。本文内容参考自sm6350, kernel 4.191:设备的dtsi属性设置示例:xxx-qrd.dtst&qupv3_se8_i2c {#address-cells = <1>;#size-cells = <0>;status = "ok";qcom,i2c-touch-active = "focaltech,f

2020-12-23 13:52:38 2575 2

原创 Linux--timer---clockevents init

简单导图如下:clockevents设备结构体:/**struct clock_event_device - clock event device descriptor@event_handler: Assigned by the framework to be called by the low level handler of the event source@set_next_event: set next event function using a clockso

2020-12-22 10:46:48 271

原创 Linux--workqueue--delayed_work初探

delayed_work的工作比较简单:1:初始化:INIT_DELAYED_WORK(_work, _func);2:启动:schedule_delayed_work(struct delayed_work *dwork,unsigned long delay);以某TP驱动为例,示意图如下:直接上代码:1:关键结构体:/* * The externally visible workqueue. It relays the issued work items to * the

2020-12-22 10:43:54 1143

原创 Linux--workqueue之应用实例

如下举例一个通用workqueue的应用过程:1:创建"gdt-event-queue"工作队列 core_data->event_wq = alloc_workqueue(“gdt-event-queue”, WQ_UNBOUND | WQ_HIGHPRI | WQ_CPU_INTENSIVE, 1);2:初始化workstatic void goodix_ts_resume_work(struct work_struct *work){struct goodix_ts_core *co

2020-12-22 10:40:42 446

原创 TouchPanel--ESD_Check

1、简介TP IC芯片的ESD防护等级为±2KV. 整机时,根据整机的密封及导流能力,可达最高防护等级4:接触±8KV, 空气±15KV. 冬天,人体容易产生大量静电,如脱毛衣时,容易对电子设备产生影响,导致工作不正常。TP/LCD因为处于设备表层,属于受影响较大的模块之一。为了降低影响,ESD_Check机制是目前常用的手段。ESD_Check概念:当芯片受外部干扰,工作不正常时,如TP报点或LCD显示异常,芯片会进入“重生”模式:reset.2、方式: 目前主流方式有2种:方案1:内核起一个周

2020-12-22 10:38:14 1960 1

原创 Linux--workqueue之初始化

1:初始化第一步:分配各项数据结构及系统workqueue/**workqueue_init_early - early init for workqueue subsystemThis is the first half of two-staged workqueue subsystem initializationand invoked as soon as the bare basics - memory allocation, cpumasks andidr are up

2020-07-19 22:27:20 325

原创 Linux--workqueue之简要流程及关键结构成员关系图

关键代码流程框图:关键结构成员关系

2020-07-01 23:26:34 146

21天学通Java

一个简单,有效的办法。有耐心,坚持下去,不知不觉间,你就到达目地地了。加油。

2015-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除