Linux Framebuffer驱动剖析之一—软件需求

本文探讨了Linux Framebuffer驱动的软件需求,包括LCD屏驱动的两个层次:底层硬件的SOC寄存器编程和上层应用的写屏接口。重点在于上层应用接口的实现,分析了如何通过Framebuffer实现一次拷贝即可显示的高效机制,以及其支持多个显示缓存的管理。后续文章将深入分析Framebuffer的框架、接口实现和使用场景。
摘要由CSDN通过智能技术生成

       本系列文章将分析Linux Framebuffer驱动的作用(需求)、框架、接口实现和使用。按笔者一直倡导的Linux学习理念—从软件需求的角度去理解Linux,对于Linux各个子系统,我们首先要理解其软件需求,从中自然会清楚其存在的价值和作用;接下来是理解子系统在Linux整个驱动框架中的层次、角色和如何交互;最后是理解驱动的接口如何实现软件需求,明确接口如何在各种场景中使用。

一、Linux设备驱动和裸设备驱动的关系

理解framebuffer的软件需求之前,我们先理解Linux设备驱动和裸设备驱动的关系:

例如,对于LCD液晶屏,其可以由三星研发的SOC S5PV210(Cortex A8 arm核)的多媒体硬件模块所支持。而对于具体某种LCD液晶屏,涉及到分辨率、时延参数等不同,需要通过软件来设置相应的SOC多媒体硬件寄存器,以达到控制显示的目的。这个软件设置就是SOC编程,其不管是SOC上运行的是Linux,还是Windows,或者是IOS,软件设置的最终结果体现到寄存器上都是一样的。一般地,嵌入式都是C语言开发,而高级处理器的寄存器是统一编址的,因此裸设备驱动外围设备的C语言代码基本是一样的。

在带操作系统运行时,为了安全考虑,系统一般分为用户态和内核态。那么,SOC编程是硬件编程,只能在内核态完成,并且需要向用户态程序提供一个接口以进行调用。对于不同的操作系统而言,从用户态的接口开始到进行最终的SOC编程接口调用的过程中,会经过不同的软件层次。对于Linux操作系统,设备驱动的接口调用过程就是Linux设备驱动框架所决定的。详见《Linux字符设备驱动剖析》、《Linux 设备文件的创建和mdev》、《总线、设备和驱动》和《字符设备驱动、设备驱动模型、sy

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值