- 博客(14)
- 收藏
- 关注
原创 Android reboot那点事儿
背景介绍最近开发过程中遇到了一个问题,在recovery里没有reboot指令,然而用busybox内置的reboot指令只能起到重启的作用,并不能带参数(reboot recovery/bootloader),这引发了我对reboot指令的思考,这篇讲讲Android指令reboot是如何引导系统进入fastboot或是recovery的,以及通过BCB command,如何通过recovery自动升级。开发环境:Android O/3.18.71/SDM450源码分析1.reboot
2021-03-31 17:26:05
3945
原创 浅谈Linux media framework
基本概念通过调试camera对接触v4l2,发现了Linux一个不是很起眼的子系统——Linux media subsystem,那它存在的意义是什么?以下概念来自链接:Linux Media子系统为了解决多媒体设备的复杂性和数据流动性,Media使用了一个树状结构,可以认为是一个pipeline filter架构。由三个基本元素(Entity, Pad, Link)构成, Entity代表一个实体,可以使CMOSsensor或者isp;pad隶属于Entity,用于对外的连接,可分为sink
2021-02-24 16:52:07
2435
2
原创 嵌入式Linux分区基本概念
背景分区作为磁盘划分区域的手段,通过起始地址跟size等信息保存至分区表,可以将磁盘分成若干的区域,用于存储不同的内容。分区的使用不仅可以使系统文件条目清晰,兼容多个文件系统使其挂载在不同分区,且通过挂载权限的管理还可以提高系统的稳定性,这在其他系统上都是通用的概念。本文通过个人对Linux中接触到的分区的理解跟使用,介绍一些常用概念、基本信息查询方法及image制作方法,仅供参考。基本概念1.分区表包含起始地址及大小等基本信息,一般保存在存储器头部,通过对分区表的调整即可达到调整分
2021-02-08 14:33:27
2679
1
原创 Linux PWM子系统及高通平台PWM调试案例解析
基本概念前后调试过两次高通平台pwm,个人觉得有必要来这样一篇帖子记录一下,有备无患。首先明确基本概念,pwm全称为pulse width modulation,即脉冲宽度调制。脉冲即周期脉冲方波,宽度调制说的就是脉冲方波高低电平占比,就是我们常说的占空比,那调这玩意有啥用呢?既然存在pwm就肯定有需要他的地方,到目前为止,我所接触到的显示屏都是TFT-LCD屏,也就是我们比较常用的薄膜晶体管液晶显示屏,特点是显示屏本身不能发光,需要依赖背光板才能显示,有关屏幕显示技术可自行查阅资料,此处不做过
2021-01-20 14:18:40
2274
原创 常见YUV视频格式分析及格式转换
背景调试camera过程中遇到了许多YUV格式的视频,而同属于YUV格式下面又分很多种,本文介绍一下常见YUV格式数据量对比,数据如何分布,以及与RGB格式之间的转换方法。基本概念与RGB相同,YUV同样也是描述单位像素点颜色的三个分量,每个分量占一个字节,根据百度百科的定义:YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance或Luma),也就是灰阶
2021-01-04 15:48:36
1868
原创 Linux RTC简析及使用
背景对Linux时间系统感兴趣不是一天两天了,今天这篇着重讲一下Linux时间系统中相对简单跟独立的部分——RTC。简述RTC全称为Real Time Clock,是一个专门用来记录时间的硬件设备,一般可以集成在soc内部,或者选择外挂,通过i2c与其通信。那为什么会需要RTC,因为Linux的系统时间(也就是我们常说的wall time)只能在系统运行时使用,系统关机时间就丢了,而RTC可以在系统关闭后,依靠外部电池或其他supply继续工作,这才将时间保存下来。一般在Linux系统启
2020-12-16 16:35:32
5158
原创 Android thread class & threadloop
背景本周在调试过程中,发现了一个神奇的线程函数threadLoop,找遍模块内部所有的代码,居然没有找到该函数是在何处拉起的,仅仅知道这是个循环线程,但想要解决问题,必须知道线程是何时被拉起的,带着这样的疑问开始了对threadloop的调查。简述threadloop顾名思义是一个循环线程,只要返回值为true,则线程就会反复运行,而该方法的调用关系就藏在thread class里面。对于thread class这个类,我的个人理解是将线程创建跟管理的部分抽象出来,既是方便管理,也是在提高代码的
2020-12-09 17:47:12
475
原创 Linux regulator框架理解及使用
简述Regulator,即LDO(low dropout regulator),低压差线性稳压器,简称稳压器。作为电源管理中的基础设施,regulator被视作是供电单元,是一个抽象出来的概念,他的source可以是PMIC,tpsxx,lpxxx等等,/kernel/msm-3.18/drivers/regulator目录下保存了各种电源芯片对应的regulator驱动程序,同时他也提供一个dummy regulator驱动作为参考。将Regulator抽象出来,其最大的意义在于为各consu
2020-11-18 12:10:40
5826
原创 Pinctrl的配置与使用
简述soc内部管脚众多,而多数管脚又可以配置成不同的功能,我们称之为管脚复用;Linux引入pinctrl子系统,是为了统一各芯片厂商对这些管脚的管理跟配置。通过调整pinctrl寄存器,我们可以配置一个或一组管教,配置项包括function、上拉下拉、驱动强度等,下面仅从使用者的角度介绍pinctrl在实践中的应用。应用实例1.管脚定义以高通平台为例,在dts文件夹中我们会找到名为pinctrl的dtsi,里面配置了几乎所有用到的管脚,个别里面没有配置的管脚默认用作gpio,以下面一组
2020-11-04 19:49:16
7092
原创 Linux module parameter
简述通常在用户态下编程,即应用程序,可以通过main()的来传递命令行参数;而编写一个内核模块,则通过module_param() 来传参。在驱动的模块中声明一下你要传递的参数名称,类型和权限:module_param(变量的名称,类型,权限)声明/* src dir: /kernel/msm-3.18/include/linux/moduleparam.h *//** * module_param - typesafe helper for a module/cmdline pa
2020-10-19 13:47:18
575
原创 Linux kobject_uevent_env
简述kobject_uevent_env用于Linux下热插拔事件产生时,通知到用户空间的一种方式,uevent是sysfs向用户空间发出的消息。基本结构// kobject事件类型// 源码位置/kernel/msm-3.18/include/linux/kobject.henum kobject_action { KOBJ_ADD, KOBJ_REMOVE, KOBJ_CHANGE, KOBJ_MOVE, KOBJ_ONLINE, KOBJ_OFFLINE, KOBJ_M
2020-09-18 16:58:31
5660
3
原创 Linux notifier chain
Linux notifier chain简述大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执行。所以对于通知链表来说有一个通知方与一个接收方。在通知这个事件时所运行的函数由被通
2020-09-16 17:53:52
430
原创 有关GDbus的使用,向各位大神求助!!!
最近开始对gdbus感兴趣,于是自己写了个demo,一直有个地方没有调通,希望各位大神能够指点迷津!问题出现在server端,我在调用g_bus_own_name接口之后,注册的on_bus_acquired 回调函数没有被调到,不清楚卡在什么地方,是申请dbus服务失败了吗?这个回调函数能够被调用需要依赖什么?session-daemon吗?源码贴到下面,请各位大神指点!server.c#inc...
2020-08-29 16:33:41
529
原创 Makefile自动生成依赖文件及通配符使用方法
Makefile自动生成依赖文件及通配符使用方法生成依赖文件在 Makefile 中, 我们的依赖关系可能需要包含一系列的头文件gcc参数介绍:-M:生成依赖关系,包含标准库 生成文件的依赖关系,同时也把一些标准库的头文件也包含了进来。本质是告诉预处理器输出一个适合 make 的规则,用于描述各目标文件的依赖关系。对于每个源文件,预处理器输出 一个 make 规则,该规则的目标项 (target) 是源文件对应的目标文件名,依赖项 (dependency) 是源文件中 ‘#include’
2020-08-29 16:32:41
848
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人