<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hello_yj的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/hello_yj</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; hello_yj]]></copyright><item><title><![CDATA[Android系统DRM显示框架 - 圆角显示技术方案]]></title><link>https://blog.csdn.net/hello_yj/article/details/165006715</link><guid>https://blog.csdn.net/hello_yj/article/details/165006715</guid><author>hello_yj</author><pubDate>Fri, 11 Sep 2026 21:42:54 +0800</pubDate><description><![CDATA[本文系统介绍Android通用圆角显示方案，涵盖硬件（屏幕切割、盖板遮挡、SDE/DDIC处理）与软件（DisplayCutout避让、BorderLayer遮罩）两类技术。硬件方案性能优、资源占用低，软件方案灵活适配。高通平台通过SDE_DSPP_RC模块实现硬件级圆角遮罩，依赖DTS配置与DRM原子提交生效。系统分层处理：Framework管理UI安全区域，HWC控制画面合成。最终根据成本、良率与性能选择方案，物理圆角最优，软件方案资源开销最大。]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - 显示内存分配]]></title><link>https://blog.csdn.net/hello_yj/article/details/164427378</link><guid>https://blog.csdn.net/hello_yj/article/details/164427378</guid><author>hello_yj</author><pubDate>Sun, 06 Sep 2026 14:38:24 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据内容生成摘要，不超过150字。需要提取关键点：高通平台Android15显示内存分配逻辑，从qcom,display和qcom,system heap分配，区别在于dma_buf分配方式，sg_table用于管理非连续物理内存，通过SMMU映射为连续IOVA，解决大尺寸连续内存分配困难。摘要要简洁。&lt;/think&gt;本文基于高通平台Android15，阐述显示内存分配逻辑：由usage属性决定从display或system堆分配，二者核心差异在dma_buf分配方]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - system_heap显示内存区域]]></title><link>https://blog.csdn.net/hello_yj/article/details/164376496</link><guid>https://blog.csdn.net/hello_yj/article/details/164376496</guid><author>hello_yj</author><pubDate>Sun, 06 Sep 2026 14:13:58 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据提供的内容，需要生成一个不超过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]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架--显示预留的CMA内存空间]]></title><link>https://blog.csdn.net/hello_yj/article/details/164376226</link><guid>https://blog.csdn.net/hello_yj/article/details/164376226</guid><author>hello_yj</author><pubDate>Fri, 04 Sep 2026 22:06:40 +0800</pubDate><description><![CDATA[<think>我们根据内容生成摘要，要≤150字。内容介绍了高通显示预留CMA内存的作用、配置、特性及调试。摘要需简洁。</think>本文介绍了高通qcom,display预留CMA内存的作用、配置方法、特性及调试。该内存专为显示设备预分配，由CMA管理，支持reusable属性，未使用时可供其他模块借用。文章详述了内存分配机制（含调用栈）、CMA与buddy页的交互，以及debug接口。
]]></description><category></category></item><item><title><![CDATA[BK7258平台mailbox实现]]></title><link>https://blog.csdn.net/hello_yj/article/details/163818144</link><guid>https://blog.csdn.net/hello_yj/article/details/163818144</guid><author>hello_yj</author><pubDate>Mon, 17 Aug 2026 22:15:00 +0800</pubDate><description><![CDATA[本文介绍了基于BK7258芯片的Mailbox硬件设计及其在FreeRTOS系统中的软件实现。硬件层面，每个CPU拥有独立物理通道和中断机制，通过tdata/tid寄存器实现核间数据传递，目标CPU通过rdata寄存器接收消息。软件架构分为应用层、API层、FreeRTOS适配层、驱动层和中断层，支持同步（阻塞式）和异步（非阻塞式）两种通信模式，分别适用于控制类通信和批量数据传输。针对稳定性问题，文中提出了包含复现收集、分类定位、根因修复和验证回归的Debug流程，并列举了丢消息、死锁等常见问题的排查方法和]]></description><category></category></item><item><title><![CDATA[QEMU 模拟外设驱动技术]]></title><link>https://blog.csdn.net/hello_yj/article/details/163539847</link><guid>https://blog.csdn.net/hello_yj/article/details/163539847</guid><author>hello_yj</author><pubDate>Thu, 06 Aug 2026 22:30:00 +0800</pubDate><description><![CDATA[本文分析了QEMU模拟外设的技术框架和应用评估。首先概述了QEMU支持的各类外设模拟情况，详细阐述了基于MMIO、PIO、DMA和IRQ的Guest-Host通信机制，并以chargerIC为例演示了寄存器读取和中断模拟的实现过程。评估指出QEMU在可观测性、可控性和复现性方面具有优势，尤其适合驱动开发调试；但也存在模拟保真度不足、无法完全模拟手机平台私有外设等局限。建议将QEMU作为功能验证平台，与真机测试互补，并针对私有外设采取分层建模策略。全文为嵌入式开发中使用QEMU进行外设调试提供了技术参考和实践]]></description><category></category></item><item><title><![CDATA[Freertos系统task相关]]></title><link>https://blog.csdn.net/hello_yj/article/details/163138544</link><guid>https://blog.csdn.net/hello_yj/article/details/163138544</guid><author>hello_yj</author><pubDate>Thu, 23 Jul 2026 22:00:00 +0800</pubDate><description><![CDATA[本文摘要介绍了FreeRTOS内核的关键实现机制，包括全局变量、宏定义和核心函数的注解说明。主要内容涵盖：1）调度相关全局变量和任务列表管理；2）任务切换和延迟列表切换的关键宏定义；3）核心调度、任务状态控制、延迟超时处理、优先级控制等核心函数；4）多核SMP、任务删除和Tickless模式等特殊处理逻辑；5）任务状态转换流程和核心数据结构关系。重点解析了FreeRTOS的实时调度机制、多核处理优化、优先级继承、低功耗模式支持等关键技术实现。]]></description><category></category></item><item><title><![CDATA[ BK7258平台freertos系统函数调用栈回溯方式与陷阱]]></title><link>https://blog.csdn.net/hello_yj/article/details/162792681</link><guid>https://blog.csdn.net/hello_yj/article/details/162792681</guid><author>hello_yj</author><pubDate>Sat, 11 Jul 2026 16:02:36 +0800</pubDate><description><![CDATA[本文分析了BK7258平台FreeRTOS系统在ARM Thumb-2模式下进行异常调用栈回溯的技术难点与解决方案。主要挑战包括：1）Thumb-2模式下LR地址特征特殊（最低位为1）；2）编译器优化移除FP栈帧寄存器导致传统回溯方法失效。提出了&quot;栈扫描+FDE解析&quot;的混合回溯方案：通过遍历栈空间寻找符合LR特征的数据，结合DWARF调试信息中的FDE（Frame Description Entry）来重建调用关系。研究发现FDE信息存在局限性，仅反映线性执行路径的栈帧变化，无法覆盖所有]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - queuebuffer]]></title><link>https://blog.csdn.net/hello_yj/article/details/161749979</link><guid>https://blog.csdn.net/hello_yj/article/details/161749979</guid><author>hello_yj</author><pubDate>Sat, 06 Jun 2026 21:00:00 +0800</pubDate><description><![CDATA[本文分析了Android显示系统中BufferQueue的核心机制与应用场景。BufferQueue作为跨进程图形缓冲通道，通过生产者-消费者模型实现零拷贝数据传输，并管理缓冲区的状态流转与同步。文章详细阐述了应用端Surface与SurfaceFlinger初始化BufferQueue的过程，包括生产者/消费者的创建与绑定机制。同时解析了软件渲染路径下缓冲区的获取、映射及Canvas绑定流程，以及渲染完成后的提交与消费过程。最后重点说明了缓冲区的四种状态（Free、Dequeued、Queued、Acqu]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - 显示相关fence]]></title><link>https://blog.csdn.net/hello_yj/article/details/161749664</link><guid>https://blog.csdn.net/hello_yj/article/details/161749664</guid><author>hello_yj</author><pubDate>Sat, 06 Jun 2026 20:00:00 +0800</pubDate><description><![CDATA[本文摘要： 文章以高通平台Android系统为例，详细介绍了内核dma-fence机制及其在显示框架中的应用。dma-fence通过sync_timeline/sync_pt/sync_fence实现跨硬件同步，支持显式同步机制。Android显示框架中定义了三种关键fence：acquire-fence（生产者完成写入）、release-fence（消费者完成读取）、present-fence（帧刷新完成），分别解决&quot;先写后读&quot;和&quot;先读后写&quot;同步问题。文章通过第N帧]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - Android显示Vsync信号获取]]></title><link>https://blog.csdn.net/hello_yj/article/details/161545551</link><guid>https://blog.csdn.net/hello_yj/article/details/161545551</guid><author>hello_yj</author><pubDate>Sun, 31 May 2026 19:30:00 +0800</pubDate><description><![CDATA[本文分析了Android显示系统中三种VSYNC信号（HW_VSYNC_0、SF_VSYNC、APP_VSYNC）的生成机制及其在显示管线中的作用。HW_VSYNC_0作为基础信号源，通过HWC硬件或模拟方式产生；SF_VSYNC由SurfaceFlinger调度模块基于HW_VSYNC校准生成，用于触发合成流程；APP_VSYNC通过Choreographer机制分发到应用进程，协调UI绘制时序。三者通过相位偏移实现&quot;错相并行&quot;的流水线协同，确保渲染、合成与显示刷新周期对齐，从而降低撕]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - HWC的validate和present]]></title><link>https://blog.csdn.net/hello_yj/article/details/161545403</link><guid>https://blog.csdn.net/hello_yj/article/details/161545403</guid><author>hello_yj</author><pubDate>Sun, 31 May 2026 16:30:00 +0800</pubDate><description><![CDATA[Android显示流水线中，SurfaceFlinger通过两阶段HWC接口完成帧合成与显示。在validate阶段，HWC根据硬件能力评估各图层的合成方式（Device/Client），返回合成策略；在present阶段，SF完成GPU合成后将最终buffer提交给HWC执行硬件显示，涉及fence同步、DRM提交等操作。整个过程通过状态机管理，包含资源分配、带宽预算等平台相关处理，最终输出关键同步信号控制帧节奏。]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - 从HWC到DRV显示帧率设置]]></title><link>https://blog.csdn.net/hello_yj/article/details/161545262</link><guid>https://blog.csdn.net/hello_yj/article/details/161545262</guid><author>hello_yj</author><pubDate>Sun, 31 May 2026 13:00:00 +0800</pubDate><description><![CDATA[本文详细介绍了Android显示系统中刷新率的初始设置与动态调整机制。初始阶段通过DRM框架获取面板支持的显示模式，并选择带有PREFERRED标识的默认刷新率。动态调整时，SurfaceFlinger通过HWC接口传递目标刷新率，在validate阶段进行资源评估（包括带宽、硬件能力等校验），并在present阶段通过Atomic Commit将新刷新率参数提交至内核驱动（以MTK平台为例，展示驱动层如何完成硬件配置）。整个过程实现了从应用请求到硬件生效的完整刷新率切换流程，确保显示稳定性和性能优化。]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - HWC和DRV之间Event交互]]></title><link>https://blog.csdn.net/hello_yj/article/details/161544851</link><guid>https://blog.csdn.net/hello_yj/article/details/161544851</guid><author>hello_yj</author><pubDate>Sun, 31 May 2026 09:00:00 +0800</pubDate><description><![CDATA[在 Android 高通平台显示子系统中，Hardware Composer（HWC） 与 内核显示驱动（Display Driver, DRV） 之间不仅通过 atomic commit 传递帧配置，还需通过 异步事件（Event）机制 实现双向通信。]]></description><category></category></item><item><title><![CDATA[ Android系统DRM显示框架 - HWC到DRV的atomic request]]></title><link>https://blog.csdn.net/hello_yj/article/details/160902908</link><guid>https://blog.csdn.net/hello_yj/article/details/160902908</guid><author>hello_yj</author><pubDate>Sat, 30 May 2026 20:30:00 +0800</pubDate><description><![CDATA[摘要：本文详细分析了DRM/KMS架构下的Atomic Commit机制实现流程。SurfaceFlinger通过HWCHAL将帧更新属性构造为drmModeAtomicReq请求，经libdrm转换为drm_mode_atomic结构提交内核。内核处理流程分为四个阶段：1）请求解析与状态构建，创建drm_atomic_state结构；2）预验证阶段进行带宽、格式等资源校验；3）提交阶段配置硬件寄存器；4）VBLANK中断触发硬件生效和事件通知。Atomic机制通过一次性提交完整状态、预验证和原子切换，解决]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - 高通平台SDE显示驱动初始化]]></title><link>https://blog.csdn.net/hello_yj/article/details/160835344</link><guid>https://blog.csdn.net/hello_yj/article/details/160835344</guid><author>hello_yj</author><pubDate>Fri, 08 May 2026 21:57:58 +0800</pubDate><description><![CDATA[摘要：本文分析了Linux DRM显示子系统的初始化流程与多设备管理机制。1) 顶层注册通过msm_pdev_probe完成DRM设备初始化，包括mode配置、GEM内存管理和时钟电源设置；2) 采用组件化绑定机制，各子模块(DSI/DP/HDMI)独立probe，通过component框架管理依赖关系；3) 多显示设备共享KMS资源但保持链路独立，依赖图确保绑定时序正确。关键点包括：延迟绑定机制(-EPROBE_DEFER)、设备节点创建(/dev/dri/cardX)以及显示链路的动态侦测(EDID/面]]></description><category></category></item><item><title><![CDATA[Qcom平台开机时DeviceTree匹配处理]]></title><link>https://blog.csdn.net/hello_yj/article/details/159880203</link><guid>https://blog.csdn.net/hello_yj/article/details/159880203</guid><author>hello_yj</author><pubDate>Fri, 08 May 2026 07:30:00 +0800</pubDate><description><![CDATA[本文介绍了高通平台开机过程中dtb和dtbo的匹配处理机制。主要内容包括：1. 开机时通过GetSocDtb和GetBoardDtb函数分别完成main dtb与平台SOC的匹配检测，以及overlay dtbo与项目平台的匹配检测；2. 详细解析了核心匹配函数ReadDtbFindMatch的工作流程，包括平台参数比对、板级参数比对、PMIC匹配和OEM变体ID匹配四个逻辑环节；3. 说明了匹配成功后ApplyOverlay函数如何将main dtb与匹配的dtbo进行合并处理；4. 提供了各匹配环节的关]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - 内核DRM显示介绍]]></title><link>https://blog.csdn.net/hello_yj/article/details/160834980</link><guid>https://blog.csdn.net/hello_yj/article/details/160834980</guid><author>hello_yj</author><pubDate>Wed, 06 May 2026 22:41:23 +0800</pubDate><description><![CDATA[本文摘要：文章解析了KMS（内核模式设置）框架中的关键对象及其职责，包括Plane（像素处理）、CRTC（显示管线）、Encoder（输出连接）等核心组件，并详细说明了它们之间的交互关系。同时介绍了QCOM SDE（DPU）的硬件架构映射，涵盖SSPP（源像素处理器）、Mixer（混合器）、INTF（接口控制）等功能模块，以及中断处理、带宽管理等系统级机制。全文着重阐述了显示驱动中各硬件抽象层的协作流程，为理解现代显示子系统架构提供了技术参考。]]></description><category></category></item><item><title><![CDATA[Android系统DRM显示框架 - Android显示框架介绍]]></title><link>https://blog.csdn.net/hello_yj/article/details/159173663</link><guid>https://blog.csdn.net/hello_yj/article/details/159173663</guid><author>hello_yj</author><pubDate>Wed, 06 May 2026 22:25:02 +0800</pubDate><description><![CDATA[Android显示框架采用分层架构实现高效的渲染、合成与显示流程。核心模块包括：应用层通过BufferQueue提交图层缓冲；SurfaceFlinger作为全局合成器，基于图层属性和硬件能力决策GPU合成（RenderEngine）或硬件合成（HWC）路径；HWC通过DRM原子操作管理显示控制器（DPU），实现显式同步（in-fence/out-fence）确保时序正确性。整个流程从应用渲染开始，经合成决策、硬件提交，最终由DPU完成像素处理和显示输出，形成完整的显示处理链路。该框架从Android 7.]]></description><category></category></item><item><title><![CDATA[高通平台可唤醒系统的中断]]></title><link>https://blog.csdn.net/hello_yj/article/details/159877564</link><guid>https://blog.csdn.net/hello_yj/article/details/159877564</guid><author>hello_yj</author><pubDate>Mon, 06 Apr 2026 09:36:11 +0800</pubDate><description><![CDATA[本文分析了高通平台中TLMM、RPM和MPM三个模块在系统唤醒机制中的协同工作原理。RPM作为独立处理器负责电源管理，MPM作为唤醒中断聚合器在深度休眠时保持工作状态，TLMM则处理GPIO中断路由。文章详细阐述了不同状态下（运行态/休眠态）的中断传递路径：运行态时中断通过GIC直接传递给AP，休眠态时则需经由MPM触发唤醒流程。特别指出MPM作为纯硬件模块负责系统级唤醒，而RPM作为带固件的子系统控制MPM的唤醒策略。这种分层设计确保了系统在深度休眠状态下仍能可靠响应外部中断事件。]]></description><category></category></item></channel></rss>