一瓶布满
码龄9年
关注
提问 私信
  • 博客:73,319
    73,319
    总访问量
  • 25
    原创
  • 1,910,855
    排名
  • 899
    粉丝

个人简介:驱动的本质是描述并抽象硬件,然后为用户提供操作硬件的友好接口

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2015-11-19
博客简介:

fengchaochao123的博客

查看详细资料
个人成就
  • 获得212次点赞
  • 内容获得30次评论
  • 获得561次收藏
  • 代码片获得725次分享
创作历程
  • 16篇
    2023年
  • 7篇
    2022年
  • 1篇
    2021年
  • 1篇
    2020年
成就勋章
TA的专栏
  • SurfaceFlinger
    13篇
  • DRM显示驱动
    10篇
  • Linux驱动
    1篇
兴趣领域 设置
  • 嵌入式
    物联网
  • 硬件开发
    驱动开发
  • 操作系统
    linux
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

DRM驱动(十)之page_flip

本文详细阐述了drmModePageFlip刷新图像如何避免撕裂的过程,并且详细分析了对应kernel driver的逻辑。
原创
发布博客 2023.12.28 ·
2657 阅读 ·
29 点赞 ·
0 评论 ·
35 收藏

DRM驱动(九)之drm_vblank

本文从app到kernel drm driver,vblank更新的详细过程。
原创
发布博客 2023.12.28 ·
3023 阅读 ·
34 点赞 ·
0 评论 ·
34 收藏

分析layer是否参与合成

本文详细分析了SurfaceFlinger中哪些layer不会被合成,哪些layer会被合成,以及是否合成的原理。详细分析了整个程序的流程。
原创
发布博客 2023.12.22 ·
1229 阅读 ·
13 点赞 ·
2 评论 ·
22 收藏

SurfaceFlinger处理事务

app向surfaceflinger提交事务之后,surfaceflinger会缓存事务;当vsync到来之后,会执行进行处理。onMessageInvalidate的主要功能:处理事务刷新图像。
原创
发布博客 2023.12.21 ·
731 阅读 ·
12 点赞 ·
0 评论 ·
14 收藏

SurfaceFlinger layer之间的对应关系

本文详细分析了SurfaceFligner中Layer流转的过程,以便于了解SurfaceFlinger的合成过程
原创
发布博客 2023.11.07 ·
1835 阅读 ·
7 点赞 ·
0 评论 ·
11 收藏

10 分析SurfaceComposerClient提交事务过程

分析SurfaceComposerClient提交事务的整个流程,以及SurfaceFlinger对应的处理机制
原创
发布博客 2023.11.06 ·
1038 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

07 深入理解surface unlockAndPost

app通过Surface unlockAndPost进行queueBuffer,进而调用onFrameAvailable;使用processNextBufferLocked进行Transaction事务提交到SurfaceFlinger,让SurfaceFlinger根据Transaction进行合成操作。
原创
发布博客 2023.11.03 ·
508 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

05 深入解析surfaceControl getSurface

SurfaceControl::getSurface()返回的实际是BBQSurface,BBQSurface继承Surface,可以使用Surface表示。BBQSurface是对生产者,handle的封装,其中包含了对buffer的操作。并且本文对FrameAvailableListener的初始化进行了简要阐述
原创
发布博客 2023.11.03 ·
908 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

06 深入解析surface lock

本文主要讲述了surface lock的主要流程和作用
原创
发布博客 2023.10.30 ·
390 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

04 深入探究waitForService<ISurfaceComposer>

本文梳理了一下waitForService的内部机制,和Bpxxx的创建过程,并简单了解BpSurfaceComposer/BnSurfaceComposer之间的交互。
原创
发布博客 2023.10.24 ·
537 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

03 构造surfaceComposerClient

surfaceComposerClient的创建过程
原创
发布博客 2023.10.24 ·
610 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

02 最简单的SurfaceFlinger应用程序

获取屏幕大小 SurfaceComposerClient::getActiveDisplayMode(displayToken, &displayMode);获取要显示的屏幕,这里获取的是主屏SurfaceComposerClient::getInternalDisplayToken。设置surface属性;推图 surface->unlockAndPost()创建SurfaceComposerClient。创建SurfaceControl。向buffer里填充图像数据。
原创
发布博客 2023.10.24 ·
1106 阅读 ·
6 点赞 ·
0 评论 ·
7 收藏

09 SurfaceFinger layer创建过程

本篇讲述了app创建Surface时SurfaceFlinger主要做哪些工作
原创
发布博客 2023.10.19 ·
894 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

08 surfaceflinger初始化

本文介绍了surfaceflinger的初始化流程,和一些重要的成员如Display,DisplayDevice,HWComposer的初始化过程
原创
发布博客 2023.10.13 ·
519 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

01 Android12 surfaceflinger详解

SurfaceFlinger是Android操作系统中的一个Service,它负责接收所有Window的Surface作为输入,并根据ZOrder、透明度、大小、位置等参数,计算出每个Surface在最终合成图像中的位置,然后交由CPU或GPU生成最终的显示Buffer,最后显示到特定的显示设备上
原创
发布博客 2023.10.11 ·
1400 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

DRM驱动(八)之crtc_state生命周期

本文介绍了drm中各个组件state的创建,使用和销毁的生命周期。算是对之前内容的补充,把一些细节放大来阐述。
原创
发布博客 2023.03.17 ·
1979 阅读 ·
7 点赞 ·
1 评论 ·
15 收藏

DRM驱动(七)之atomic_commit

atomic_commit,drm框架中逻辑比较复杂的一块,这里通过简短的语言和思维导图把刷图的过程呈现出来,并说明每个回调接口的作用
原创
发布博客 2022.09.20 ·
5984 阅读 ·
6 点赞 ·
1 评论 ·
37 收藏

DRM驱动(六)之atomic_check

atomic_check主要用来检查应用设置的参数是否存在与驱动不相符的地方,drm框架会check通用的参数,并会调用各个由厂商实现组件的atomic_check来进行参数检查。
原创
发布博客 2022.09.18 ·
3514 阅读 ·
3 点赞 ·
0 评论 ·
19 收藏

DRM驱动(五)之drm_atomic_state

本节介绍了应用调用drmModeSetCrtc时传入参数转换为struct drm_atomic_state的过程
原创
发布博客 2022.06.04 ·
4600 阅读 ·
9 点赞 ·
0 评论 ·
25 收藏

DRM驱动(四)之ADD_FB

gem obj创建之后需要与一块drm_framebuffer进行绑定使用,因为最终刷图使用的是fb。使用接口drmModeAddFB会创建drm_framebuffer并与上节创建的gem obj进行绑定。本文阐述了内核创建drm_framebuffer的整个过程。
原创
发布博客 2022.04.22 ·
8049 阅读 ·
12 点赞 ·
6 评论 ·
49 收藏
加载更多