![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
子类_驱动技巧篇
介绍常用的驱动代码技巧
一息尚存,从吾所好
愿我如星君如月,夜夜流光相皎洁
展开
-
【Linux驱动调试技巧】如何进行SELinux安全策略配置?
SELinux(Security-Enhanced Linux)SELinux解决的是安全问题,即指定的进程只能访问特定的资源,执行特定的操作,避免越权操作引发安全性问题传统的DAC机制(Discretionary Access Control)自主访问控制,用户和其所在分组决定了该进程的用户权限 root用户具有所有的访问权限。SELinux MAC机制(Mandatory Access ...原创 2020-01-20 22:42:17 · 904 阅读 · 0 评论 -
【Linux驱动调试技巧】gpio管脚和mpp引脚有什么区别?
gpio和mpp引脚有什么区别?问:GPIO和MPP引脚有什么区别?答:GPIO引脚速度更快,但MPP引脚功能更多。 GPIO引脚更简单,占用PMIC器件的硅片面积更小。GPIO:Digital input or digital outputSingle direction level translatorOpen-drain or CMOS outputConfigurable p...原创 2020-01-20 22:34:35 · 927 阅读 · 0 评论 -
【Linux驱动调试技巧】如何弄清楚为什么在内核阶段GPIO不能被软件控制?
在目前的Qualcom平台B系列芯片组上,我们使用pinctrl框架来控制内核的gpio。无法控制gpio的问题。 需要按照下面的步骤来解释原因。1.首先添加下面的调试代码,看是否有一些未知的模块是控制gpio的,这里以gpio38作为exmaple+++ b/drivers/pinctrl/pinctrl-msm-tlmm.c @@ -400,11 +400,17 @@ static ...原创 2020-01-20 22:33:02 · 615 阅读 · 0 评论 -
【Linux驱动调试技巧】使用adb install 应用时提示失败,提示位置来源?
当通过adb install命令安装apk失败时,有时会提示未知来源。如下图所示:首先,要确认客户编译的是debug版本,user版本安装APK是必须要打开“安装未知来源”的。但有时候客户是debug版本,仍然提示安装失败,客户又没有TP,无法打开“安装未知来源”。这样的解决办法就是使用adb 来打开。命令:adb shell settings put secure install...原创 2020-01-20 22:31:10 · 795 阅读 · 0 评论 -
【Linux驱动调试技巧】如何使用wifi网络连接设备进行adb操作?
方法如下:1. 使用自己的手机开启wifi后,让中控设备和笔记本都连接到该wifi。2. 打开中控设备的设置->关于手机->状态->IP,进行上述查看后确认ip地址,类似192.168.43.1053. 在笔记本中打开cmd窗口执行以下指令adb connect 192.168.43.105adb rootadb remountadb shelladb disco...原创 2020-01-20 22:28:33 · 605 阅读 · 0 评论 -
【Linux驱动调试技巧】在SElinux 如何获得对一个内核节点的访问权限?
Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问第二步:打开文...原创 2020-01-20 22:26:49 · 508 阅读 · 0 评论 -
【Linux驱动调试技巧】如何将串口serial与uart绑定?
在确认会加载到的dtsi文件中,添加如下配置:/ {aliases {serial0 = &blsp1_uart2;serial1 = &blsp1_uart1;};};其中 serial0 表示 /dev/ttyHSL0, serial1 表示 /dev/ttyHSL1。如果还有其他的串口,依次在别名列表中 a...原创 2020-01-20 22:22:16 · 1198 阅读 · 0 评论 -
【Linux驱动调试技巧】Init.rc文件的妙用与如何编写开机脚本?
Init.rc妙用及语法说明参考:system\core\init\readme.txt案例1当开机启动完毕,写mpp2的寄存器,使其设置为PWM模式。#add by eliot shao 2016.11.03 for mmp2-pwm functionon property:sys.boot_completed=1write /sys/kernel/debug/spmi/sp...原创 2020-01-20 22:19:44 · 2217 阅读 · 0 评论 -
【Linux驱动调试技巧】如何使用adb shell来控制gpio端口?
1. 当知道GPIO num使用 /sys/class/gpio控制GPIOmsm8952_64:/sys/class/gpio # echo 899 > exportmsm8952_64:/sys/class/gpio/gpio899 # lsactive_low device direction edge power subsystem uevent value设置作为输出ec...原创 2020-01-20 22:15:41 · 1739 阅读 · 0 评论 -
【Linux驱动技巧篇】如何使用内核线程?
1. incluede头文件,声明定义一个线程#include <linux/sched.h> //wake_up_process()#include <linux/kthread.h> //kthread_create()、kthread_run()static struct task_struct *charge_led_task;2. 创建线程处理函数...原创 2020-01-13 16:31:44 · 663 阅读 · 0 评论 -
【Linux驱动技巧篇】如何使用延迟队列?
1. 创建延迟队列要绑定的延迟处理函数void msm8952_pa_reset_func(struct work_struct *work){ struct msm8916_asoc_mach_data *pdata = NULL; struct delayed_work *dwork; dwork = to_delayed_work(work); pdata = contain...原创 2020-01-12 20:28:59 · 2015 阅读 · 0 评论 -
【Linux驱动技巧篇】如何创建sysfs文件节点?
话不多说,直接上demo代码。1. 设备属性节点DEVICE_ATTR//ak4951 register settingsstatic unsigned char regReadValue = 0x00;static ssize_t ak4951_regRead_show(struct device* cd,struct device_attribute *attr, char* ...原创 2020-01-12 20:24:28 · 4387 阅读 · 0 评论