Linux 设备驱动
文章平均质量分 71
TNT_TT
7年搬砖经验,精修嵌入式、linux、yocto、ros
展开
-
linux IIC系统学习
linux iic原创 2024-04-01 11:20:23 · 691 阅读 · 0 评论 -
linux configfs(以usb_gadget为例)
configfs介绍linux 中configfs的官方介绍文档为documentation/filesystems/configfs.rst,关键信息如下:configfs - Userspace-driven kernel object configuration.直接翻译过来就是用户空间配置内核对象,在configfs.rst中可以看到其中的描述:configfs是一个基于ram的文件系统,通过对该文件系统的操作实现对内核对象的配置。configfs组成根据configfs.rst的说明我们原创 2022-01-24 16:05:12 · 3176 阅读 · 1 评论 -
USB Type-C connector class
USB Type-C connector class介绍用户空间接口驱动程序接口Registering Partners介绍https://www.kernel.org/doc/html/v4.15/driver-api/usb/typec.htmlThe typec class is meant for describing the USB Type-C ports in a system to the user space in unified fashion. The class is desi翻译 2021-11-01 23:41:29 · 904 阅读 · 0 评论 -
Linux iio驱动学习
最近在做新项目的充电bringup,kernel 内核版本为5.4版本,使用到的充电电荷泵(charger pump)IC具备采样vbus vbat ibat ibus等功能,以往项目都是通过power_supply架构来实现采集adc数据,但是最新的kernel版本由于GKI的限制vendor无法在自行添加自定义的power_supply,所以需要修改原来项目采集adc数据的方法,所以采用linux正统的iio驱动来实现adc读取的功能,顺便学习梳理了一下iio驱动的使用方法。iio子系统:Indus原创 2021-10-08 17:50:32 · 1171 阅读 · 1 评论 -
Linux extcon驱动学习
最近在chg驱动和usb驱动中经常看见extcon的踪影,打算整理汇总一下extcon相关的知识。extcon:External Connector framework从名字看主要表征外部连接器的,通过gpio状态去识别外部连接器的类型,并通知关心外部连接器状态的驱动。主要驱动代码路径:kernel/msm-4.19/include/linux/extcon.hkernel/msm-4.19/drivers/extcon从下图中可以看到常见的usb 充电 显示接口 耳机等等都可以使用extco原创 2021-09-23 16:39:00 · 5738 阅读 · 0 评论 -
app通过hal调用访问led
app通过hal调用访问ledapp通过hal调用访问ledAndroid5.0hal架构介绍以led为例向系统添加hal接口一、添加app访问的ledservice接口开发环境:Android stdio 3.5.3开发板:tiny4412开发板软件版本:Android5.0.2 + kernel3.0.86app通过hal调用访问ledAndroid5.0hal架构介绍上一章节介绍...原创 2020-04-05 01:33:19 · 2143 阅读 · 0 评论 -
APP通过JNI调用直接访问LED灯DEMO
APP通过JNI调用直接访问LED灯DEMO一、实现一个简单的LED操作APP二、通过jni本地调用操作led灯本章将实现一个简单的app通过JNI本地调用访问开发板LED灯的demo,用来理解App是如何来访问我们的开发板硬件的。开发环境:Android stdio 3.5.3开发板:tiny4412开发板软件版本:Android5.0.2 + kernel3.0.86一、实现一个简单...原创 2020-03-29 22:54:56 · 651 阅读 · 0 评论 -
根据cmdline在驱动中加载不同硬件配置
有些时候随着产品的开发迭代硬件配置发生了不同,但是需要使用一套软件来兼容不同的硬件批次,这时候使用dtsi来配置就无法达到我们兼容的目的了,这时候可以在BootLoader阶段检测不同的HWID来区分不同的硬件批次,然后修改不同的cmdline传递给kernel,在kernel驱动注册阶段去检测cmdline中相关关键字来加载不同的配置即可。内核启动过程中start_kernel中setup_a...原创 2019-08-26 16:38:05 · 485 阅读 · 0 评论 -
高通平台中为一个server添加SELinux权限
假设我们在Android平台中实现了一个server,编译生成的应用程序位于/vendor/bin/testfd.下面为这个应用程序添加selinx权限。1.在devices/qcom/sepolicy/vendor/common/目录下新建一个testfd.te文件,这个文件将用来添加testfd这个应用程序的权限。2.将testfd.te这个文件加入到devices/qcom/sepoli...原创 2019-04-03 12:00:56 · 1414 阅读 · 1 评论 -
Linux 设备驱动中的device_init_wakeup
device_init_wakeup()static inline int device_init_wakeup(struct device *dev, bool val){device_set_wakeup_capable(dev, val); //设置设备能不能被唤醒device_set_wakeup_enable(dev, val); //设置设备使不使用唤醒;return 0;...转载 2019-02-18 12:01:04 · 1303 阅读 · 0 评论 -
s5pv210 九鼎X210刷机流程
九鼎X210开发板使用SD卡刷机流程制作开机启动卡从启动卡启动并且利用fast boot刷机烧录其他系统制作开机启动卡开发板默认已经烧录了andriod系统,需要手动进入串口控制台,然后破坏系统镜像。破坏iNand中的bootloader以从SD2启动的命令如下: busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 coun...原创 2019-01-22 23:25:31 · 973 阅读 · 0 评论 -
Linux 设备驱动中的LED架构
内核驱动框架中LED的部分主要涉及两个文件led-class.c led-core.c按照内核驱动框架编写的驱动会出现在drivers/leds目录下,这两个文件是内核开发者为驱动开发者提供的接口。led类设备的操作对象主要有三个:brightness、max_brightness、trigger。分别代表”led的亮灭状态“、”led最高亮度值“、”led闪烁状态“。其中max_b...原创 2018-08-21 15:28:15 · 1021 阅读 · 0 评论 -
class_creat自动创建设备文件
在刚开始入门设备驱动时我们写的简单驱动都是通过手动创建设备文件来测试驱动的工作状态。其实内核给我们提供了自动创建设备文件、卸载驱动时自动删除设备文件的接口。一般使用如下:// 让内核帮我们发信息给udev,让udev自动创建和删除设备文件led_class = class_create(THIS_MODULE, "led_class");if (IS_ERR(led_class)) ...原创 2018-08-21 11:24:09 · 292 阅读 · 0 评论