hello_yj
码龄11年
求更新 关注
提问 私信
  • 博客:59,622
    59,622
    总访问量
  • 52
    原创
  • 120
    粉丝
  • 48
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
加入CSDN时间: 2015-04-15
博客简介:

hello_yj的专栏

查看详细资料
个人成就
  • 获得351次点赞
  • 内容获得4次评论
  • 获得441次收藏
  • 博客总排名21,996名
  • 原力等级
    原力等级
    3
    原力分
    438
    本月获得
    25
创作历程
  • 19篇
    2026年
  • 10篇
    2025年
  • 3篇
    2024年
  • 5篇
    2023年
  • 11篇
    2022年
  • 1篇
    2021年
  • 3篇
    2015年
成就勋章
TA的专栏
  • Linux
    17篇
  • 内存
    12篇
  • Android-DRM
    12篇
  • FreeRTOS
    3篇
  • 嵌入式
    1篇
  • Linux Debug
    1篇
  • Android
    6篇
  • interrupt
    8篇
  • Charge
    3篇
  • thermal
    1篇
  • input_event
  • DTS
    3篇
  • Driver
    5篇

TA关注的专栏 2

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

兴趣领域 设置
  • 移动开发
    android
  • 硬件开发
    驱动开发arm开发
  • 操作系统
    linux
创作活动更多

AtomGit「码动四季·开源同行」秋季征稿活动

秋季征稿主题:开源成果经验分享 成果不止一种形态,我们为你准备了六大赛道,总有一款适合你: 开源项目成果复盘 把项目一年/一季的成长摊开来看:里程碑复盘、Star 与用户增长复盘、版本迭代复盘、从 0 到 1 的发布复盘。 🖊️ 示范选题: ●开源项目从 0 到 1000 Star,我做对了什么 ●开源一周年,我交出的成绩单 这类文章不只是一次经验分享,也是一张项目名片。欢迎将项目托管到 AtomGit 并申请成为 G-Star 项目,通过后可获得平台流量推荐、项目宣传等权益。(G-Star:AtomGit 最具影响力开源项目) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f90c61528ad410d8d66f9d0e3707a5a.png) 咨询 G-Star 项目申请 2️⃣ 技术经验体系化沉淀 踩坑合集、最佳实践总结、工具链实战、CI/CD 流水线搭建、代码重构与架构演进。 🖊️ 示范选题: ●提了 50 个 PR 后,我总结的开源协作避坑清单 ●一次重大重构复盘:把单体拆成可维护的模块 3️⃣ AI 赋能开源的实战成果 AI 编程助手实战测评、基于开源模型的微调与应用开发、AI 辅助研发提效流水线。 🖊️ 示范选题: ●我用 AI 编程助手把提 PR 效率翻了 3 倍 ●基于开源大模型搭了个 XX 工具(附完整教程) 4️⃣ 开源共建笔记|文档、社区与布道 开源文档写作与翻译、issue 互助经验、组织 meetup、用开源项目做教学与分享。 🖊️ 示范选题: ●一个优秀开源项目,文档应该怎么写 ●我用开源项目做了个线上 Workshop ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/23e83ceebc594c379f7fc6aa8dcfa40c.png) 扫码加入码动四季投稿交流群,和更多伙伴一起交流技术!

16人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Android系统DRM显示框架 - 显示内存分配

<think>我们根据内容生成摘要,不超过150字。需要提取关键点:高通平台Android15显示内存分配逻辑,从qcom,display和qcom,system heap分配,区别在于dma_buf分配方式,sg_table用于管理非连续物理内存,通过SMMU映射为连续IOVA,解决大尺寸连续内存分配困难。摘要要简洁。</think>本文基于高通平台Android15,阐述显示内存分配逻辑:由usage属性决定从display或system堆分配,二者核心差异在dma_buf分配方
原创
博文更新于 2026.09.06 ·
117 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

Android系统DRM显示框架 - system_heap显示内存区域

<think>我们根据提供的内容,需要生成一个不超过150字的摘要。摘要是关于system_heap内存特性、调试以及layer buffer应用到SDE的流程。需要简洁概括关键点。可能包括:system_heap基于buddy page,无初始预留,可从buddy获取,有shrinker,用于显示;调试通过dma_buf bufinfo;layer buffer传递到SDE涉及DRM、drm_gem_prime_fd_to_handle和drm_mode_addfb2等,实现SMMU映射并写S
原创
博文更新于 2026.09.06 ·
187 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

Android系统DRM显示框架--显示预留的CMA内存空间

<think>我们根据内容生成摘要,要≤150字。内容介绍了高通显示预留CMA内存的作用、配置、特性及调试。摘要需简洁。</think>本文介绍了高通qcom,display预留CMA内存的作用、配置方法、特性及调试。该内存专为显示设备预分配,由CMA管理,支持reusable属性,未使用时可供其他模块借用。文章详述了内存分配机制(含调用栈)、CMA与buddy页的交互,以及debug接口。
原创
博文更新于 2026.09.04 ·
218 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

BK7258平台mailbox实现

本文介绍了基于BK7258芯片的Mailbox硬件设计及其在FreeRTOS系统中的软件实现。硬件层面,每个CPU拥有独立物理通道和中断机制,通过tdata/tid寄存器实现核间数据传递,目标CPU通过rdata寄存器接收消息。软件架构分为应用层、API层、FreeRTOS适配层、驱动层和中断层,支持同步(阻塞式)和异步(非阻塞式)两种通信模式,分别适用于控制类通信和批量数据传输。针对稳定性问题,文中提出了包含复现收集、分类定位、根因修复和验证回归的Debug流程,并列举了丢消息、死锁等常见问题的排查方法和
原创
博文更新于 2026.08.17 ·
219 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

QEMU 模拟外设驱动技术

本文分析了QEMU模拟外设的技术框架和应用评估。首先概述了QEMU支持的各类外设模拟情况,详细阐述了基于MMIO、PIO、DMA和IRQ的Guest-Host通信机制,并以chargerIC为例演示了寄存器读取和中断模拟的实现过程。评估指出QEMU在可观测性、可控性和复现性方面具有优势,尤其适合驱动开发调试;但也存在模拟保真度不足、无法完全模拟手机平台私有外设等局限。建议将QEMU作为功能验证平台,与真机测试互补,并针对私有外设采取分层建模策略。全文为嵌入式开发中使用QEMU进行外设调试提供了技术参考和实践
原创
博文更新于 2026.08.06 ·
243 阅读 ·
7 点赞 ·
0 评论 ·
2 收藏

Freertos系统task相关

本文摘要介绍了FreeRTOS内核的关键实现机制,包括全局变量、宏定义和核心函数的注解说明。主要内容涵盖:1)调度相关全局变量和任务列表管理;2)任务切换和延迟列表切换的关键宏定义;3)核心调度、任务状态控制、延迟超时处理、优先级控制等核心函数;4)多核SMP、任务删除和Tickless模式等特殊处理逻辑;5)任务状态转换流程和核心数据结构关系。重点解析了FreeRTOS的实时调度机制、多核处理优化、优先级继承、低功耗模式支持等关键技术实现。
原创
博文更新于 2026.07.23 ·
112 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

BK7258平台freertos系统函数调用栈回溯方式与陷阱

本文分析了BK7258平台FreeRTOS系统在ARM Thumb-2模式下进行异常调用栈回溯的技术难点与解决方案。主要挑战包括:1)Thumb-2模式下LR地址特征特殊(最低位为1);2)编译器优化移除FP栈帧寄存器导致传统回溯方法失效。提出了"栈扫描+FDE解析"的混合回溯方案:通过遍历栈空间寻找符合LR特征的数据,结合DWARF调试信息中的FDE(Frame Description Entry)来重建调用关系。研究发现FDE信息存在局限性,仅反映线性执行路径的栈帧变化,无法覆盖所有
原创
博文更新于 2026.07.11 ·
111 阅读 ·
4 点赞 ·
0 评论 ·
1 收藏

BK7258平台freertos系统函数调用栈回溯方式与陷阱

发布资源 2026.07.11 ·
py

Android系统DRM显示框架 - queuebuffer

本文分析了Android显示系统中BufferQueue的核心机制与应用场景。BufferQueue作为跨进程图形缓冲通道,通过生产者-消费者模型实现零拷贝数据传输,并管理缓冲区的状态流转与同步。文章详细阐述了应用端Surface与SurfaceFlinger初始化BufferQueue的过程,包括生产者/消费者的创建与绑定机制。同时解析了软件渲染路径下缓冲区的获取、映射及Canvas绑定流程,以及渲染完成后的提交与消费过程。最后重点说明了缓冲区的四种状态(Free、Dequeued、Queued、Acqu
原创
博文更新于 2026.06.06 ·
244 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

Android系统DRM显示框架 - 显示相关fence

本文摘要: 文章以高通平台Android系统为例,详细介绍了内核dma-fence机制及其在显示框架中的应用。dma-fence通过sync_timeline/sync_pt/sync_fence实现跨硬件同步,支持显式同步机制。Android显示框架中定义了三种关键fence:acquire-fence(生产者完成写入)、release-fence(消费者完成读取)、present-fence(帧刷新完成),分别解决"先写后读"和"先读后写"同步问题。文章通过第N帧
原创
博文更新于 2026.06.06 ·
263 阅读 ·
5 点赞 ·
0 评论 ·
4 收藏

Android系统DRM显示框架 - Android显示Vsync信号获取

本文分析了Android显示系统中三种VSYNC信号(HW_VSYNC_0、SF_VSYNC、APP_VSYNC)的生成机制及其在显示管线中的作用。HW_VSYNC_0作为基础信号源,通过HWC硬件或模拟方式产生;SF_VSYNC由SurfaceFlinger调度模块基于HW_VSYNC校准生成,用于触发合成流程;APP_VSYNC通过Choreographer机制分发到应用进程,协调UI绘制时序。三者通过相位偏移实现"错相并行"的流水线协同,确保渲染、合成与显示刷新周期对齐,从而降低撕
原创
博文更新于 2026.05.31 ·
177 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

Android系统DRM显示框架 - HWC的validate和present

Android显示流水线中,SurfaceFlinger通过两阶段HWC接口完成帧合成与显示。在validate阶段,HWC根据硬件能力评估各图层的合成方式(Device/Client),返回合成策略;在present阶段,SF完成GPU合成后将最终buffer提交给HWC执行硬件显示,涉及fence同步、DRM提交等操作。整个过程通过状态机管理,包含资源分配、带宽预算等平台相关处理,最终输出关键同步信号控制帧节奏。
原创
博文更新于 2026.05.31 ·
260 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

Android系统DRM显示框架 - 从HWC到DRV显示帧率设置

本文详细介绍了Android显示系统中刷新率的初始设置与动态调整机制。初始阶段通过DRM框架获取面板支持的显示模式,并选择带有PREFERRED标识的默认刷新率。动态调整时,SurfaceFlinger通过HWC接口传递目标刷新率,在validate阶段进行资源评估(包括带宽、硬件能力等校验),并在present阶段通过Atomic Commit将新刷新率参数提交至内核驱动(以MTK平台为例,展示驱动层如何完成硬件配置)。整个过程实现了从应用请求到硬件生效的完整刷新率切换流程,确保显示稳定性和性能优化。
原创
博文更新于 2026.05.31 ·
163 阅读 ·
5 点赞 ·
0 评论 ·
2 收藏

Android系统DRM显示框架 - HWC和DRV之间Event交互

在 Android 高通平台显示子系统中,Hardware Composer(HWC) 与 内核显示驱动(Display Driver, DRV) 之间不仅通过 atomic commit 传递帧配置,还需通过 异步事件(Event)机制 实现双向通信。
原创
博文更新于 2026.05.31 ·
170 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Android系统DRM显示框架 - HWC到DRV的atomic request

摘要:本文详细分析了DRM/KMS架构下的Atomic Commit机制实现流程。SurfaceFlinger通过HWCHAL将帧更新属性构造为drmModeAtomicReq请求,经libdrm转换为drm_mode_atomic结构提交内核。内核处理流程分为四个阶段:1)请求解析与状态构建,创建drm_atomic_state结构;2)预验证阶段进行带宽、格式等资源校验;3)提交阶段配置硬件寄存器;4)VBLANK中断触发硬件生效和事件通知。Atomic机制通过一次性提交完整状态、预验证和原子切换,解决
原创
博文更新于 2026.05.30 ·
129 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

高通平台可唤醒系统的中断

本文分析了高通平台中TLMM、RPM和MPM三个模块在系统唤醒机制中的协同工作原理。RPM作为独立处理器负责电源管理,MPM作为唤醒中断聚合器在深度休眠时保持工作状态,TLMM则处理GPIO中断路由。文章详细阐述了不同状态下(运行态/休眠态)的中断传递路径:运行态时中断通过GIC直接传递给AP,休眠态时则需经由MPM触发唤醒流程。特别指出MPM作为纯硬件模块负责系统级唤醒,而RPM作为带固件的子系统控制MPM的唤醒策略。这种分层设计确保了系统在深度休眠状态下仍能可靠响应外部中断事件。
原创
博文更新于 2026.05.08 ·
233 阅读 ·
4 点赞 ·
0 评论 ·
2 收藏

Qcom平台开机时DeviceTree匹配处理

本文介绍了高通平台开机过程中dtb和dtbo的匹配处理机制。主要内容包括:1. 开机时通过GetSocDtb和GetBoardDtb函数分别完成main dtb与平台SOC的匹配检测,以及overlay dtbo与项目平台的匹配检测;2. 详细解析了核心匹配函数ReadDtbFindMatch的工作流程,包括平台参数比对、板级参数比对、PMIC匹配和OEM变体ID匹配四个逻辑环节;3. 说明了匹配成功后ApplyOverlay函数如何将main dtb与匹配的dtbo进行合并处理;4. 提供了各匹配环节的关
原创
博文更新于 2026.05.08 ·
393 阅读 ·
12 点赞 ·
0 评论 ·
2 收藏

Android系统DRM显示框架 - 高通平台SDE显示驱动初始化

摘要:本文分析了Linux DRM显示子系统的初始化流程与多设备管理机制。1) 顶层注册通过msm_pdev_probe完成DRM设备初始化,包括mode配置、GEM内存管理和时钟电源设置;2) 采用组件化绑定机制,各子模块(DSI/DP/HDMI)独立probe,通过component框架管理依赖关系;3) 多显示设备共享KMS资源但保持链路独立,依赖图确保绑定时序正确。关键点包括:延迟绑定机制(-EPROBE_DEFER)、设备节点创建(/dev/dri/cardX)以及显示链路的动态侦测(EDID/面
原创
博文更新于 2026.05.08 ·
314 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

Linux Mem -- 通过reserved-memory缩减内存

本文是解决具体的一些思考总结,和Linux内核的reserved-memory机制相关。参考代码:Linux-6.10。
原创
博文更新于 2026.05.08 ·
1534 阅读 ·
23 点赞 ·
0 评论 ·
18 收藏

Android系统DRM显示框架 - 内核DRM显示介绍

本文摘要:文章解析了KMS(内核模式设置)框架中的关键对象及其职责,包括Plane(像素处理)、CRTC(显示管线)、Encoder(输出连接)等核心组件,并详细说明了它们之间的交互关系。同时介绍了QCOM SDE(DPU)的硬件架构映射,涵盖SSPP(源像素处理器)、Mixer(混合器)、INTF(接口控制)等功能模块,以及中断处理、带宽管理等系统级机制。全文着重阐述了显示驱动中各硬件抽象层的协作流程,为理解现代显示子系统架构提供了技术参考。
原创
博文更新于 2026.05.06 ·
276 阅读 ·
5 点赞 ·
0 评论 ·
1 收藏
加载更多